小编ask*_*r22的帖子

如何在Unity3d中使用C#打开/关闭Android手电筒

有人知道如何在Unity中使用C#打开/关闭Android手电筒吗?我不喜欢插件,我也不想制作自己的插件.是否有原因让我的设备使用纯C#打开或关闭手电筒?

我试图将此脚本添加到主摄像头,但它只是没有做到这一点:(

private bool Active;
private AndroidJavaObject camera1;

void FL_Start()
{
    AndroidJavaClass cameraClass = new AndroidJavaClass("android.hardware.Camera");       
    WebCamDevice[] devices = WebCamTexture.devices;

    int camID = 0;
    camera1 = cameraClass.CallStatic<AndroidJavaObject>("open", camID);

    if (camera1 != null)
    {
        AndroidJavaObject cameraParameters = camera1.Call<AndroidJavaObject>("getParameters");
        cameraParameters.Call("setFlashMode", "torch");
        camera1.Call("setParameters", cameraParameters);
        Active = true;
    }
    else
    {
        Debug.LogError("[CameraParametersAndroid] Camera not available");
    }

}

void OnDestroy()
{
    FL_Stop();
}

void FL_Stop()
{

    if (camera1 != null)
    {
        camera1.Call("stopPreview");
        camera1.Call("release");
        Active = false;
    }
    else
    {
        Debug.LogError("[CameraParametersAndroid] Camera not available");
    }

} …
Run Code Online (Sandbox Code Playgroud)

c# android unity-game-engine

1
推荐指数
1
解决办法
8006
查看次数

为什么在调用缺少的函数时会捕获错误,而不是在错误的语句上?

请看这段代码:

<!DOCTYPE html>
<html>
<body>

<p id="P1"></p>

<script>
try {
    alllllllert("Hello.........!");
}
catch(err) {
    document.getElementById("P1").innerHTML = err.message;
}
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当此代码运行时,错误是警告,我进入catch块.

但是,为什么这不满足以下代码:

<!DOCTYPE html>
<html>
<body>

<p id="P1"></p>

<script>
try {
    int n = 3;
    document.getElementById("P1").innerHTML = n;

}
catch(err) {
    document.getElementById("P1").innerHTML = err.message;

}
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

编写int n = 3无法在JavaScript上编译,我知道我需要编写var n = 3.那么,为什么我没有收到消息的异常?

javascript

1
推荐指数
1
解决办法
61
查看次数

标签 统计

android ×1

c# ×1

javascript ×1

unity-game-engine ×1