我建議你處理動畫和動畫師,使水平動畫在動畫浮點型變量,(所以當它被處理-1動畫走左邊,1動畫走右邊)。
所以你需要製作3個腳本。 //這將處理動畫獲得字符的速度從MovingHandler AnimationHandler.cs
//這基於輸入處理程序 MovingHandler.cs
//你可以在這裏聽到的實際移動字符輸入 InputHandler.cs
並且爲了使角色不會移動到屏幕之外,您需要在MovingHandler上獲取屏幕限制,並在移動角色之前進行檢查,如果它位於x中的相同位置作爲屏幕的邊界,你將會返回;如果它要走到左邊,並且字符是< =比左邊界更靠後,則返回;和右邊界相同> =然後返回; 事情是這樣的:
Transform charTransform;
float leftHorizontalBound;
float rightHorizontalBound;
void Start()
{
charTransform = this.transform;
leftHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (0,0, camera.nearClipPlane)).x;
rightHorizontalBound= camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;
}
void Update()
{
if(charTransform.position.x <= leftHorizontalBound)
{
charTransform.position = new vector2(leftHorizontalBound + 0.1f);
return;
}
if(charTransform.position.x >= rightHorizontalBound)
{
charTransform.position = new vector2(rightHorizontalBound - 0.1f);
return;
}
//MAKE HERE YOUR MOVEMENT BASED ON INPUT.
}
不要使用該代碼只是使用的想法,因爲我沒有測試它,我只是在這裏代碼時。
我希望它有幫助。
Charecter通過場景的邊界移動,在調試時說,charecter總是有0 0 0個座標,爲什麼? – Drukalo 2015-02-10 22:13:34