如何在 C# 中编写按钮按下脚本以触发另一个事件?

How to script a Button press in C#, to trigger another event?

我正在使用 Vuforia 开发 Unity。

我有虚拟按钮,我需要像键盘上的 Up/Down 箭头一样移动不在其图像目标中的对象,所以我正在寻找基础知识。

我的class是这样开始的:

public void OnButtonPressed(VirtualButtonAbstractBehaviour vb){
...
}

我需要在其中添加什么才能使其像向上按钮一样工作?

如果没有这些虚拟按钮,我的脚本会像这样移动对象:

void FixedUpdate(){
        float moveHortizonal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");

        Vector3 movement = new Vector3 (moveHortizonal, 0, moveVertical);

        rigidbody.AddForce (movement * speed);
    }

弄清楚了如何去做,这里有一个关于我的发现的小教程

首先,您从注册按钮开始:

void Start () {
        VirtualButtonBehaviour[] vbs = transform.GetComponentsInChildren<VirtualButtonBehaviour> ();

        for (int i=0; i < vbs.Length; ++i) {
            vbs[i].RegisterEventHandler(this);
        }

现在你继续从按钮的功能开始

   public void OnButtonPressed(VirtualButtonAbstractBehaviour vb){
    //specify which button you want to function by using the if statement
    if(vb.name=="ButtonName") { callButtonfunction();}
    }

同样,如果您希望按钮在释放时执行某些操作:

   public void OnButtonReleased(VirtualButtonAbstractBehaviour vb){
    //specify which button you want to function by using the if statement
    if(vb.name=="ButtonName") { callButtonfunction();}
    }

如果你想让你的按钮控制一个游戏对象,那么继续在 class 中将游戏对象声明为一个 public 变量,这样它就可以在 Inspector 中访问并相应地分配.

public GameObject human;

其中GameObject是变量类型,human是我们引用的变量名

就这么简单。

The Vuforia logs are very badly documented and so you can almost never get an answer from there, so I hope this helps.