我有一个触发代码,想要重复代码,同时按下虚拟按钮,我必须做什么? 有没有解决办法呢? 提前谢谢。
答案 0 :(得分:2)
你是否想在游戏中设计自动枪械?
如果是,那么:
using UnityEngine;
public class Autof : MonoBehaviour {
float fireDelay = 0f; // the delay between shots
// Assume that the function below is your code to fire your weapon:
void FireWeapon()
{
Debug.Log("Fire!!!");
}
// The function below activates the FireWeapon function
void AutoFire(float fireRate)
{
if (fireDelay < fireRate)
{
fireDelay += Time.deltaTime;
}
if (fireDelay >= fireRate)
{
FireWeapon();
fireDelay = 0f;
}
}
void Update()
{
AutoFire(0.2f);
}
}
答案 1 :(得分:0)
使用OnPointerDown
和OnPointerUp
功能。调用适当的函数时,将变量设置为true
或false
,然后在true
函数中检查该变量是否为Update
。将下面的代码附加到您要检测按下的Image
上。
public class Pressed : MonoBehaviour, IPointerDownHandler,IPointerUpHandler
{
bool pressed = false;
public void OnPointerDown(PointerEventData eventData)
{
pressed = true;
}
public void OnPointerUp(PointerEventData eventData)
{
pressed = false;
}
void Update()
{
if (pressed)
{
Debug.Log("Pressed Down!");
//Put Code to repeat here
}
}
}
请注意,如果Image
不是图片组件而只是SpriteRenderer
,则必须将Collider 2D
附加到SpriteRenderer
,然后将Physics 2D Raycaster
附加到prototype
相机。