大家好,这里的初学者,我正在研究移动车辆挑战,我可以让相机跟随卡车,也可以让相机在视图(驾驶员视图/后视图)之间切换问题是当我切换到后视图时初始 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] 删除。
我来说两句