2016-02-12 47 views
0

我有這樣的代碼:我在Unity 5這個隱形傳輸的代碼,我需要幫助調整

var other : GameObject; 
var destination : Transform; 

function Update() { 
    if (Input.GetKeyDown (KeyCode.G)) { 
     other.transform.position = destination.position; 
    } 
} 

此代碼只有一半完成我想要的東西。當你使用這個代碼時,它會讓你選擇Destination和Other(Player)。所以當我按G時,玩家移動到目的地。

由於我製作了這段代碼,我修改了我的關卡布局。現在,我需要的代碼是:

(邏輯陳述) 當玩家按G玩家向上移動「X」單位數量。當播放機再次按G時,播放機向下移動「X」個單位。

那麼有效,所有的按鈕將做的是移動它們上下兩個面我之間,所以我需要幫助修改上面這段代碼來實現這一點,

此代碼是在統一5中使用項目,並且是UnityScript。

+0

我認爲你的意思的java **腳本**。 – cubrr

+1

這既不是Java也不是C#,但據我所知,沒有任何「函數」關鍵字存在。此外'var'只能在WITHIN方法中使用。我認爲這是與上述任何內容無關的JavaScript。 – HimBromBeere

+2

[我如何寫一個好標題?](http://meta.stackexchange.com/q/10647/158761) –

回答

0

這種上下移動的X單元:

bool isUp; 
float units; 

function Update() 
{ 
    if (Input.GetKeyDown(KeyCode.G)) 
    { 
     if (isUp) 
     { 
      other.transform.position -= other.transform.up * units; 
      isUp = false; 
     } 
     else 
     { 
      other.transform.position += other.transform.up * units; 
      isUp = true; 
     } 
    } 
} 

我使用C#,對不起變量聲明的語法錯誤:P

我不知道什麼是「目的地」變革是爲了,你似乎要求去爭取X部隊。

這個移動的X單元朝向目標,從來沒有得到過它,即使X單位是不是對象之間的距離更大,並再次當按下鍵後回來到原來的位置:

bool isUp; 
float units; 
Vector3 originalPos; 

function Update() 
{ 
    if (Input.GetKeyDown(KeyCode.G)) 
    { 
     if (isUp) 
     { 
      other.transform.position = originalPos; 
      isUp = false; 
     } 
     else 
     { 
      originalPos = other.transform.position; 
      other.transform.position = Vector3.MoveTowards(other.transform.position, destination.position, units); 
      isUp = true; 
     } 
    } 
}