有人知道如何在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) 请看这段代码:
<!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.那么,为什么我没有收到消息的异常?