如何在 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.
我正在使用 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.