我是Unity的新手
使用Unity Inspector我已经设置了一个回调函数的按钮(OnClick),它工作正常但只有一次,再次激活动作我需要释放并再次单击按钮
只要按下按钮,我怎么能让功能一直反复运行? (像机枪)
public void MoveLeft ( )
{
transform.RotateAround(Camera.main.transform.position, Vector3.up, -rotation / 4 * Time.deltaTime);
infopanel.RotateAround(Camera.main.transform.position, Vector3.up, -rotation / 4 * Time.deltaTime);
}
问候......
答案 0 :(得分:2)
OnClick
不能这样做。使用OnPointerDown
和OnPointerUp
。在这些函数中分别设置一个布尔变量为true / false,然后检查Update
函数中的布尔变量
附加到UI按钮对象:
public class UIPresser : MonoBehaviour, IPointerDownHandler,
IPointerUpHandler
{
bool pressed = false;
public void OnPointerDown(PointerEventData eventData)
{
pressed = true;
}
public void OnPointerUp(PointerEventData eventData)
{
pressed = false;
}
void Update()
{
if (pressed)
MoveLeft();
}
public void MoveLeft()
{
transform.RotateAround(Camera.main.transform.position, Vector3.up, -rotation / 4 * Time.deltaTime);
infopanel.RotateAround(Camera.main.transform.position, Vector3.up, -rotation / 4 * Time.deltaTime);
}
}
您可以找到其他事件函数here。