我如何告诉相机只遵循游戏对象 x 方向

用户9666156

大家好,这里的初学者,我正在研究移动车辆挑战,我可以让相机跟随卡车,也可以让相机在视图(驾驶员视图/后视图)之间切换问题是当我切换到后视图时初始 x相机的旋转设置为 0,所以我希望相机在驱动程序视图中跟随玩家 x 方向,这样我就不会丢失后视图方向,你可以在下面看到我的代码和项目包的链接谢谢你

using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class FollowPlayer : MonoBehaviour
 {
     //Player GameObject variable (the vehicle)
     public GameObject player;
     //Fixing the camera vertical position
     private Vector3 offset = new Vector3(0, 5, -7);
     private Vector3 offset2 = new Vector3(0, 2.5f, 0.3f);
     private int currentTarget;
     public bool camController;
     // Start is called before the first frame update
     void Start()
     {
         
     }
 
     // Update is called once per frame
     void LateUpdate()
     {
         camController = Input.GetButtonDown("Fire1");
         if (camController) { 
             if (offset == offset2)
             {
                 currentTarget = 2;
                 
             } else
             {
                 currentTarget = 1;
                
             }
  
             switch(currentTarget)
             {
                 case 1:
                     offset = offset2;
                     break;
                 case 2:
                     offset = new Vector3(0, 5, -7);
                     break;
             }
         }
         //Offset the camera behind the player by adding to the player's position
         transform.position = player.transform.position + offset;
         transform.rotation = player.transform.rotation;
         Debug.Log(camController);
     }
 }
泽诺网

我认为拥有多个相机并在它们之间切换会更容易。因此,创建您的 2 个摄像头,为它们添加父约束并根据需要进行设置。然后创建一个脚本来启用和禁用摄像头,如下所示:

using UnityEngine;
public class SwitchCams : MonoBehaviour
{
    public GameObject cam1;
    public GameObject cam2;

    bool isCam1 = true;
    
    void Start(){
        cam1.SetActive(true);
        cam1.SetActive(false);
    } 

    void Update(){
        bool shouldSwitch = Input.GetButtonDown("Fire1");
        if(shouldSwitch){
            isCam1 = !isCam1;
            cam1.SetActive(isCam1);
            cam2.SetActive(!isCam1);
        } 
    } 
} 

出于某种原因,在摄像机之间切换的最简单方法是启用和禁用它们。所以这个脚本就是这样做的。请记住将您的相机拖到检查器中脚本的插槽 cam1 和 cam2 中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章