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