Flashlight切换脚本在启动时启动Flash

时间:2019-08-27 20:02:01

标签: c# unity3d

在启动时,手电筒切换脚本模式会切换ON / OFF,我不确定该如何打补丁。

我相信它来自IEnumerator Start(),但是,我尝试将yield return new WaitForSeconds更改为0,但这并没有改变。

using System;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using Vuforia;

public class FlashlightAPI : MonoBehaviour
{
    IEnumerator Start()
    {

        yield return new WaitForSeconds(0);

        hasTorch = CameraDevice.Instance.SetFlashTorchMode(true);
        yield return new WaitForSeconds(0.000f);
        CameraDevice.Instance.SetFlashTorchMode(false);
    }

    bool torchState = true, hasTouch = false;
    public bool hasTorch;

    public FlashlightAPI(bool torchState, bool hasTorch)
    {
        this.torchState = torchState;
        this.hasTorch = hasTorch;
    }
} 

1 个答案:

答案 0 :(得分:0)

零太长了

Wait使Unity等到条件过后的下一帧。在这种情况下,它等待至少0秒后等待第一帧,这意味着它等待1帧。

如果您希望它立即发生,则需要完全删除Wait

void Start()
{
    hasTorch = CameraDevice.Instance.SetFlashTorchMode(true);
    CameraDevice.Instance.SetFlashTorchMode(false);
}

但是,当您摆弄外部设备(手机的摄像头)时,这仍然可能导致指示灯闪烁,因此您应该参考文档来解决此问题。由于CameraDevice不是Unity类,所以我不能为您这样做。