2015-12-15 97 views
1

我是Unity新手,提前對不起,如果這是問題是基本的,但我嘗試在網上尋找類似的問題答案的答案。我有一個遊戲物件,它有一個向前移動,當一個變量設置爲true我希望那個gameobject回移X個單位,但是當回退false我希望gameObject tot返回到前一個移動。我編寫的代碼使gameObject向前移動,但是當被變量觸發時,它不會回退。你能告訴我我做錯了什麼嗎?如何保持gameObject向前移動,但是當觸發向後移動時,然後返回向前移動

public MonsterTarget monTarget; 
public BandageTarget banTarget; 

public Transform target; 
public float speed; 
public float backSpeed; 

public bool back; 


// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 
    back = monTarget.targetMove; 

    if (target.position.x > -11) 
    { 
     target.Translate(speed, 0, 0); 

     if (back == true) 
     { 
      Debug.Log("MOVE BACK"); 
      target.Translate(backSpeed, 0, 0); 
     } 
     monTarget.targetMove = false; 
    } 

} 

回答

0

我知道在C#中,一個布爾值的默認值是假的,你要爲它真正的地方爲if (back == true)聲明開始?

此外,您的target.Translate(speed, 0, 0);正在運行,而您的Target.Translate (backspeed, 0 , 0);正在運行,可能會取消彼此。確保你的變量已經分配好了,也許試試這個。

if (back == true) { 
    target.Translate(backspeed , 0 , 0); 
} else { 
    target.Translate(speed, 0 , 0) 
} 
+0

你可以省略'== true',因爲back是一個bool本身。 –