Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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_Unityscript - Fatal编程技术网

C# 相机在构建后不跟随玩家

C# 相机在构建后不跟随玩家,c#,unity3d,unityscript,C#,Unity3d,Unityscript,我这里有个情况。我正在无尽的路上做一个赛车游戏。在远程主摄像头工作正常,但当我建立游戏的摄像头不跟随玩家的汽车。 当游戏者的车与大型车辆相撞时,我摇动主摄像机。 这两个脚本都是: 摄像机遵循玩家汽车脚本: GameObject cam ; public GameObject[] Follow; int i = CarSelectScript.playerCarIndex; void Update() { Follow [i].SetActive (true); Camera ca

我这里有个情况。我正在无尽的路上做一个赛车游戏。在远程主摄像头工作正常,但当我建立游戏的摄像头不跟随玩家的汽车。 当游戏者的车与大型车辆相撞时,我摇动主摄像机。 这两个脚本都是:

摄像机遵循玩家汽车脚本:

GameObject cam ;
public GameObject[] Follow;
int i = CarSelectScript.playerCarIndex;
void Update()
{
    Follow [i].SetActive (true);
    Camera cam = GetComponent<Camera>();
    if (cam !=null) 
    {
        if (Follow[i]) 
        {
            cam.transform.position = new Vector3(Follow[i].transform.position.x -40.0f, cam.transform.position.y, cam.transform.position.z);    
        }
    }
}

我不明白为什么在我构建游戏并将其安装到android设备上后,摄像头没有跟随我。

您的代码中有很多常见的缺陷。你应该先把它们修好

  • cam定义了两次?一次作为游戏对象,一次作为相机。如果你想要照相机,试着只使用照相机
  • 摄像头摄像头=GetComponent();在更新中运行?!不要,改为在start函数中运行它
  • “获取”组件没有相机可以将其组件取下。如果只使用一个摄像头,请尝试使用cam=代替
  • 除非您将相机放置在其他位置或运行2d游戏,否则移动将不起作用,因为它将仅在其X轴上移动,并在Y轴和Z轴上保持相机的当前变换

  • 1) 耐心点。2) 您是否检查过GetComponent()是否返回null?3) 您是否检查过Follow[i]是否为null?您应该会收到错误,请先修复这些错误:/这就是我想要的。我想让相机跟随X轴上的follow[I]游戏对象。那么第四点就可以了。但是其他3个仍然站着。但是这个东西没有在我的手机和标签上运行。。。主摄像机没有跟随玩家的车。。。我实在受够了,今天我已经毁了我的生活:(@MX-DJust试着把你的相机和你想跟随的对象结合起来。
    var startingShakeDistance : float = 0.8f;
    var decreasePercentage : float = 0.5f;
    var shakeSpeed : float = 50;
    var numberOfShakes : int = 10;
    var cam: Camera;
    function CamerShake()
    {
    
    
    var hitTime : float = Time.time;
    var OriginalPosition : float = cam.transform.localPosition.z;
    var shake = numberOfShakes;
    var shakeDistance : float = startingShakeDistance;
    
    while(shake)
    {
        var timer : float = (Time.time - hitTime) * shakeSpeed;
        cam.transform.localPosition.z = OriginalPosition + Mathf.Sin(timer) * hakeDistance;
        if(timer> Mathf.PI * 2)
        {
            hitTime = Time.time;
            shakeDistance *= decreasePercentage;
            shake--;
        }
        yield;
    }
    cam.transform.localPosition.z = OriginalPosition;
    }