2016-03-28 1 views
0

を持っている機能を認識しないいくつかの理由のために、ユニティUIはこれはで、ボタンのクリックイベントでは表示されませんデフォルトパラメータUIはデフォルトパラメータ

public void PrintButtonName(GameObject go, string button_pressed = "none") 
{ 
    if (button_pressed != "none") 
     Debug.Log(go.name); 

} 

を使用する機能を持って好きではないようです編集者。 デフォルト値を削除した場合、エディタは関数をもう一度 "見る"ことができ、使用することができます。

なぜですか?これはバグですか?オプションのパラメータを使用する必要がありますが、onClickはデフォルトでその関数を表示しないため、できません。

答えて

0

Unity EditorからUIコールバック関数を割り当てるのは、非常にです。です。 Unity UIが出てきたときは、よりののパラメータよりも関数を呼び出すことができませんでした。私はまだこの制限がまだ適用されていると思います。

解決策はコードでこれを行うことです。返信用

public Button newbiezButton; //Drag button to here from Editor 


void OnEnable()(){ 
//Add listener 
newbiezButton.onClick.AddListener(() => PrintButtonName(yourGameObj, yourString)); 
} 

public void PrintButtonName(GameObject go, string button_pressed = "none") 
{ 
    if (button_pressed != "none") 
     Debug.Log(go.name); 

} 

public void OnDisable(){ 
//Remove listener 
newbiezButton.onClick.RemoveAllListeners(); 
} 
+0

感謝。それはシステム自体の限界です。別の関数を記述しない限り、1つのパラメータを強制的に使用することは本当に残念です。ほとんどの場合、コードに複雑さが加わり、何かを混乱させる機会が増えます。説明をありがとう! –

+0

問題ありません。私はあなたの他の質問であなたのコールバック関数のエディタを使用していることに気づいた。 **スイッチ**には制限がないためコードに切り替えます。エディタにはあなたが遭遇する可能性のある多くの制限事項がありますが、ここでは言及しませんでした。 – Programmer

関連する問題