0
因此,爲了解釋我想要實現的目標,我使用「E」鍵將照相機繞播放器旋轉90度,然後繼續跟蹤播放器。我不知道該如何順利完成 - 到目前爲止,我已經嘗試了使攝像機跟蹤播放器的動畫,並且一旦動畫完成,動畫就會返回到原始位置。動畫照相機轉動播放器,然後繼續跟蹤播放器
這裏是我當前的代碼:
using UnityEngine;
using System.Collections;
public class TCam : MonoBehaviour {
public Transform target;
private Animator animator;
private Vector3 positionOffset ;
int i =0;
// Use this for initialization
void Start() {
//positionOffset = target.transform.position + transform.position;
positionOffset = new Vector3(-10, 10,0);
animator = GetComponent<Animator>();
animator.enabled = true;
}
// Update is called once per frame
void Update() {
if (Input.GetKeyDown (KeyCode.E)) {
animator.SetTrigger ("switch");
transform.rotation = Quaternion.Euler (45, transform.rotation.eulerAngles.y + 90, 0);
target.transform.rotation = Quaternion.Euler (45, target.transform.rotation.eulerAngles.y + 90, 0);
if (i == 0) {
positionOffset = new Vector3 (0, 10, 10);
i++;
} else if (i == 1) {
positionOffset = new Vector3 (10, 10, 0);
i++;
} else if (i == 2) {
positionOffset = new Vector3 (0, 10, -10);
i++;
} else if (i == 3) {
positionOffset = new Vector3 (-10, 10, 0);
i = 0;
}
} else if (Input.GetKeyDown (KeyCode.Q)) {
transform.Rotate (-45, 0, 0);
transform.Rotate (0, -90, 0);
transform.Rotate (45, 0, 0);
target.transform.Rotate (-45, 0, 0);
target.transform.Rotate (0, -90, 0);
target.transform.Rotate (45, 0, 0);
}
transform.position = target.position + positionOffset;
}
}
只是爲了澄清:你的核心問題是當按下'E'時,順利地在相機周圍旋轉相機;和動畫是一個單獨的事情。我是否正確閱讀? – andeart
@andeart對不起,讓我感到困惑,我的意思是我嘗試從動畫窗口動畫相機,但是當我做了我不能讓它跟蹤播放器,或者如果我可以動畫會搞砸,當它被稱爲從代碼,但是是的,我想一次在相機周圍順暢地旋轉相機90度。 – AlexNotTheLion
您是否嘗試過使用http://docs.unity3d.com/ScriptReference/Transform.RotateAround.html? – andeart