建造后相机不跟随玩家

时间:2014-10-02 06:40:50

标签: c# unity3d unityscript

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

相机跟随玩家汽车脚本:

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);    
        }
    }
}

这里的相机抖动脚本是:

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;
}

我不明白为什么在构建游戏后将相机安装在Android设备中后不跟随。

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些常见漏洞。您应该尝试修复第一个

  1. cam定义了两次?一次作为GameObject,一次作为相机。如果您想要相机,请尝试仅使用相机。
  2. Camera cam = GetComponent();在更新中运行?!别! ,在启动函数中运行它而不是
  3. 你的获取组件没有相机可以关闭他的组件。如果您只使用1个摄像头,请尝试使用cam = Camera.Main
  4. 除非你在其他地方或在运行2D游戏时对你的相机进行选择,否则机芯将无法工作,因为它只能在X轴上移动并保持相机在Y和Z轴上的当前变换