如何编写C#中的Button按钮来触发另一个事件?

时间:2015-03-11 02:57:41

标签: c# unity3d vuforia virtual-reality

我在使用Vuforia的Unity工作。

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

我的班级开头是这样的:

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);
    }

1 个答案:

答案 0 :(得分:1)

想出怎么做,这是一个关于我的发现的小教程

首先,您首先要注册按钮:

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();}
    }

如果您希望按钮控制Gameobject,那么请继续将GameObject声明为类中的公共变量,以便可以在Inspector中访问它并进行相应的分配。

public GameObject human;

GameObject是变量类型,human是我们用作参考的变量名

就这么简单。

  

Vuforia日志的记录非常糟糕,因此您几乎从不这样做   从那里得到答案,所以我希望这会有所帮助。