0
我有发生碰撞的场景。一旦碰撞发生,我希望摄像机从对象1移动到对象2.我试图在碰撞脚本中编写代码,但后来我意识到摄像头脚本总是会覆盖它,跟在对象1之后。现在我正试图将它写入相机脚本中,但我不确定如何。在碰撞时移动摄像头
这是我的尝试:
public class CameraController : MonoBehaviour {
public GameObject player;
public GameObject player2;
private Vector3 offset;
// Use this for initialization
void Start() {
offset = transform.position - player.transform.position;
}
void OnCollisionEnter (Collision col) {
if (col.gameObject.name == "triggerCube") {
//SceneManager.LoadScene ("test2");
transform.position = player2.transform.position + offset;
}
else {
transform.position = player.transform.position;
}
}
}
即如果碰撞发生时,转换为播放器2的位置,但如果没有碰撞发生的事情,留在玩家然而,C#不允许这里面无效一个无效的东西,所以我希望有人对我有更好的解决方案?
我可以使它在没有包含在lateupdate中的情况下工作,但据我了解,在lateupdate中使用它对于相机工作非常重要。
有一个GO成员变量,将其称为“targetToFollow”或其他内容,然后在cam的LateUpdate()中执行。在碰撞时,将变量分配的GO更改为另一个对象(可能通过公共属性)。问题是你想如何应用这种改变?一个很酷的动画重新聚焦到一个新的目标或类似的东西,或只是换出后续的对象?这种解决方案适用于后者的情况 – 2016-08-23 07:32:46
它是否必须是GO变量?我对c#很陌生,而且我没有和那些人一起工作过。不过,你的想法很有道理。 – user3078100