请问Unity3D如何实现两个相机高频的切换?

已经可以实现通过按键切换两台相机,但是不知道如何让两个camera自动地高频地(比如60Hz,120Hz)来回切换。请问用代码的话如何实现?或者其他什么可行方法?希望能详解一下,谢谢!
最新回答
烟花巷陌ヾ

2024-09-23 06:14:37

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraChange : MonoBehaviour
{

    [Header("第一个摄像机")]
    public GameObject m_FirstCamera;
    [Header("第二个摄像机")]
    public GameObject m_SecondCamera;

    [Header("HZ")]
    public float m_HZNum;               //HZ
    private float m_waitTime;

    void Start()
    {
        if (m_FirstCamera == null)
        {
            Debug.LogError("缺少第一个摄像机");
        }
        if (m_SecondCamera == null)
        {
            Debug.LogError("缺少第二个摄像机");
        }
        if (m_HZNum <= 0)
        {
            Debug.LogError("HZ数不能小于等于0");
        }

        m_waitTime = 1 / m_HZNum;

        m_FirstCamera.SetActive(true);
        m_SecondCamera.SetActive(false);
        
        //想在什么地方开始切换,就在什么地方开始下面的协成
        StartCoroutine(ChangeCamera());
    }

    IEnumerator ChangeCamera()
    {
        //如果想要关闭,就将true变成一个可控的bool值,什么时候想关闭,就将bool值换成false。
        while (true)
        {
            yield return new WaitForSeconds(m_waitTime);

            //频繁切换活跃不是很好,你也可以改成自己的改变摄像机的方法,或者改摄像机的ViewPort Rect也可以
            m_FirstCamera.SetActive(!m_FirstCamera.activeSelf);
            m_SecondCamera.SetActive(!m_SecondCamera.activeSelf);
        }
    }
}

场景中建一个空物体,然后挂载这个脚本,把两个照相机拖进去,然后再给设置HZ数。

而且太快太快的话,可能也不行。

紫萌雨

2024-09-23 09:53:30

这是要做裸眼3d啊