Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一摄像机切换问题?_C#_Unity3d_Camera - Fatal编程技术网

C# 统一摄像机切换问题?

C# 统一摄像机切换问题?,c#,unity3d,camera,C#,Unity3d,Camera,大家好,我正在做一个炮弹模式,玩家将有一个UI面板,看起来像一个狙击屏幕。这台摄像机将跟随敌人,而在常规游戏中,有另一台摄像机用于正常游戏模式(这台摄像机保持在位)。然而,当我在两者之间切换时,当我以“E”退出时,无论加农炮摄影机移动到哪里,它都会停留在移动的位置。是否有任何方法可以手动将摄像头的位置恢复到原位 公共类摄像机跟随:单一行为 { 公共转型目标; 公共浮动平滑速度=0.125f; 公共矢量3偏移量; 公共游戏对象范围覆盖; 公共游戏机; 无效固定更新() { if(Input.Get

大家好,我正在做一个炮弹模式,玩家将有一个UI面板,看起来像一个狙击屏幕。这台摄像机将跟随敌人,而在常规游戏中,有另一台摄像机用于正常游戏模式(这台摄像机保持在位)。然而,当我在两者之间切换时,当我以“E”退出时,无论加农炮摄影机移动到哪里,它都会停留在移动的位置。是否有任何方法可以手动将摄像头的位置恢复到原位

公共类摄像机跟随:单一行为
{
公共转型目标;
公共浮动平滑速度=0.125f;
公共矢量3偏移量;
公共游戏对象范围覆盖;
公共游戏机;
无效固定更新()
{
if(Input.GetKeyDown(“d”))
{
Camera.SetActive(假);
scopeOverlay.SetActive(true);
矢量3所需位置=目标位置+偏移量;
Vector3平滑位置=Vector3.Lerp(transform.position,desiredPosition,smoothSpeed);
transform.position=平滑位置;
transform.LookAt(目标);
}
if(Input.GetKeyDown(“e”))
{
Camera.SetActive(真);
scopeOverlay.SetActive(false);//禁用它
}
}
}

保存初始转换值,并按此方式恢复它们

private Vector3 initialPosition;
private Quaternion initialRotation;

private void Start ()
{
    // Save initial transform values
    initialPosition = transform.position;
    initialRotation = transform.rotation;
}

void FixedUpdate ()
{
    if (Input.GetKeyDown("d"))
    {
        Camera.SetActive(false);
        scopeOverlay.SetActive(true);
        Vector3 desiredPosition = target.position + offset;
        Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
        transform.position = smoothedPosition;

        transform.LookAt(target);
    }

    if (Input.GetKeyDown("e"))
    {
        // Restore transform values
        transform.position = initialPosition;
        transform.rotation = initialRotation;

        Camera.SetActive(true);
        scopeOverlay.SetActive(false); //To disable it
    }
}

保存初始变换值并按此方式恢复它们

private Vector3 initialPosition;
private Quaternion initialRotation;

private void Start ()
{
    // Save initial transform values
    initialPosition = transform.position;
    initialRotation = transform.rotation;
}

void FixedUpdate ()
{
    if (Input.GetKeyDown("d"))
    {
        Camera.SetActive(false);
        scopeOverlay.SetActive(true);
        Vector3 desiredPosition = target.position + offset;
        Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
        transform.position = smoothedPosition;

        transform.LookAt(target);
    }

    if (Input.GetKeyDown("e"))
    {
        // Restore transform values
        transform.position = initialPosition;
        transform.rotation = initialRotation;

        Camera.SetActive(true);
        scopeOverlay.SetActive(false); //To disable it
    }
}