2015-02-23 109 views
0

我一直在爲此工作幾天而沒有成功。我做了一個精靈動畫,拍動它的翅膀。我想讓鳥兒飛到樹上的特定地點。樹是一個圖像,它有一個附有動畫的兒童圖像。動畫工作正常,但我想將它移動到樹上的一個分支。下面列出的班級附在兒童圖像上,但是鳥不會移向分支。正確使用Unity 4.6 MoveTowards

using UnityEngine; 
using UnityEngine.UI; 
using System.Collections; 

public class FlyBird : MonoBehaviour { 

    public Transform target; // Target is empty game object defined in the inspector 
    public float MoveSpeed; // Set to 10 in the inspector 

    // Script is attached to an Image object and the child of the image is a sprite animation 

    void FixedUpdate() 
    { 
     transform.position = Vector2.MoveTowards(transform.position, target.position, MoveSpeed * Time.deltaTime); 
     Debug.Log(transform.position.x); 
    } 
} 
+0

嗯......不知道你是什麼樣的行爲你期待的只是測試這個腳本和它的作品就好了,發生了什麼嗎? – dege 2015-02-23 18:35:34

回答

0

我不知道你目前的行爲是什麼,但有可能的是,你繼續前進FixedUpdate(),所以你應該使用,而不是Time.deltaTime

+0

我將其更改爲Time.fixedDeltaTime,並沒有任何區別。 – jadkins4 2015-02-23 18:22:13

+0

我明白了。我會做出另一個答案。我相信這是因爲你正在使用一個Image對象。 – jbernardo 2015-02-23 22:26:28

0

你」 Time.fixedDeltaTime如果我在編輯後正確使用UI圖像,請重新使用它。 對於這種類型的對象,您應該使用它的RectTransform而不是Transform。 試試這個:

rectTransform.position = Vector2.MoveTowards(rectTransform.position, target.rectTransform.position, MoveSpeed * Time.deltaTime); 

假如你可以從目標對象獲得rectTransform,當然。另一種方法可以是操縱rectTransform.anchoredPosition。有關此類型矩形的

檢查的詳細信息變換位置:http://docs.unity3d.com/460/Documentation/ScriptReference/RectTransform.html

+0

Vector2.MoveTowards中的第二個參數target.RectTransform.position創建一個錯誤。我甚至試圖讓目標另一個圖像。然後我試着將它作爲一個空的遊戲對象,並使用target.transform.position作爲第二個參數,並仍然產生一個錯誤。 – jadkins4 2015-02-24 17:34:17

+0

@ jadkins4的目標也是一個UI組件或具有正常轉換而不是RectTransform的常規對象? – jbernardo 2015-02-24 17:52:40

+0

目標是一個空的遊戲對象。我使用target.transform.position作爲第二個參數。這沒有用。我也嘗試了一個用戶界面圖像作爲目標,並使用target.RectTransform.position,也沒有工作。有沒有更好的方法讓動畫精靈移動到某個位置? – jadkins4 2015-02-24 19:43:11