2016-04-09 53 views
1

嗯,我正在學習如何在Unity中使用動畫參數(我來自Flash AS3背景)。正如你可以看到下面我的目標是讓我的GameObject的動畫狀態jump。我將創建的動畫參數Boo設置爲false,我的目的是在Unityscript代碼中將其更改爲true。 GameObject的動畫控制器的名字簡直就是controllerenter image description hereUnityscript動畫參數UCE0001:';'預計

enter image description here

但控制檯是告訴我,他們期待一個分號!正如你所看到的,我的腳本中並不缺少分號。這裏有什麼問題?如果有任何其他信息可能對解決此問題有幫助,我將很樂意發佈。

+1

你真的很短碼)),我認爲它必須是一個長一點'VAR動畫:動畫; animator.SetBool(「Boo」,true);'........'animator' ....不是'controller',因爲它不是Component ........ http:// docs.unity3d.com/ScriptReference/Animator.html –

+0

@AlexeyShimansky這並沒有解決任何問題仍然得到同樣的錯誤,但謝謝你反正 – DrakeTruber

+0

@AlexeyShimansky,我假設你上面的代碼是在我的情況正確的上下文嗎?或者這僅僅是我想達到的一個例子。如果是這樣,我將如何定義新的變量動畫?它會是「無功控制器:控制器」? – DrakeTruber

回答

1

在第3行和第4行,您試圖以C#樣式導入庫,而不是Javascript樣式。

所以,相反的using你應該使用import

import UnityEngine; 
import System.Collections; 
... etc. 

和錯誤會自行消失。但警告將來臨))爲什麼?使用UnityEngine(C#)或進口UnityEngine(unityscript) 和System.Collection.Generic

默認情況下會自動添加到 腳本頂部,但你看不到它。

所以你可以刪除這個導入,或者它給你:BCW0008: WARNING: Duplicate namespace: 'UnityEngine'BCW0008: WARNING: Duplicate namespace: 'System.Collections'


另外Unity3d沒有Controller組件。但它有Animator組件http://docs.unity3d.com/ScriptReference/Animator.html

在你的情況最少的代碼將是:

function Start() { 
    GetComponent(Animator).SetBool("Boo", true); //(GetComponent("Animator") as Animator).SetBool("Boo", true); 
} 

但對於全球使用該組件,你應該聲明變量動畫的Animator類型。然後你可以在文件中的任何地方使用它。

例(JavaScript的tstyle):

#pragma strict 

var anim : Animator; 

function Start() { 
    anim = GetComponent(Animator); // GetComponent("Animator"); 
} 

function Update() { 

    if (Input.GetKeyDown(KeyCode.Space))  
     anim.SetBool("Boo", true); 
} 

更多例如單擊this link

+0

謝謝阿列克謝,這樣做更有意義。但是我仍然有點困惑,爲什麼我們要說「(GetComponent(」Animator「)作爲Animator)...「而不是」(GetComponent(Animator))「? – DrakeTruber

+0

@DrakeSwartzy哦,你是對的)我更新了我的答案>>>>>>>>>你可以使用'GetComponent(Animator).SetBool(」Boo「,true );'沒有引號.....或'(GetComponent(「Animator」)作爲Animator).SetBool(「Boo」,true);'用引號和類型轉換 –

+0

做得很好,謝謝你的辛勤工作! – DrakeTruber