0

unity3d unityscript の GUI ボタン​​を介してユーザー入力を取得したいと考えています。キーボードからユーザー入力を取得するためにこのスクリプトを作成しました

var f_hor : float = Input.GetAxis("Horizontal");
//Get Vertical move - move forward or backward
var f_ver : float = Input.GetAxis("Vertical");
if (f_ver < 0) {
b_isBackward = true;
} else {
b_isBackward = false;
}

その作業は正常に行われ、それに応じて0と1が返されます..しかし、GUIボタンを介して同じアクションが必要です.4つのGUIボタンがある場合のように..そして、それらはこれと同じように機能します... ONGUI機能でGUIボタンを作成できます..しかし、どうすればこの機能を実現できますか...助けてください

4

1 に答える 1

0

それが最善の方法であるかどうかはわかりませんが (Unity の GUI 要素はゲーム内の HUD やメニューには最適ではありません)、これでうまくいくはずです:

private bool buttonPressed = false;

public void Update()
{
    if (buttonPressed)
    {
         //do what you want

         buttonPressed = false;
    }
}

コードを使用して申し訳ありませんC#が、わかりませんJS。タフに翻訳するのは簡単なはずです。

public void OnGui()
{
    Rect rect = new Rect(...); //your button dimension

    if (GUI.Button(rect, "AButton")
    {
        buttonPressed = true;
    }
}

編集:

マウスからの入力を手動で処理したい場合は、 OnMouseDown や OnMouseUp などのMonoBehaviorメソッド使用できます。

Updateまたは、マウス イベントが発生したかどうかを内部から確認することもできます。Input.GetMouseButtonInputまたはクラスの同様のメソッドを参照してください。

于 2013-02-25T18:46:14.423 に答える