Я пытался узнать, как это сделать с помощью gamesplusjames на YouTube, но это не очень хорошо получается. Я почти уверен, что это что-то незначительное, но я не могу понять, что это такое. По сути, мой персонаж целится из лука и стрел и стреляет, когда я отпускаю клавишу C. Но мне нужна задержка, чтобы она не стреляла быстрее, чем могут двигаться ее анимации. Кто-нибудь может сказать мне, где я уронил мяч? Я упростил свой код, чтобы избавиться от всего прочего хлама, не связанного со стрельбой или прицеливанием. Спасибо.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class tulMove : MonoBehaviour {
public Transform arrowSpawn;
public GameObject arrowPrefab;
private bool aim = false;
private bool shot = false;
public float shotDelay;
private float shotDelayCounter;
private Rigidbody2D rb;
private Animator anim;
void Start ()
{
anim = GetComponent<Animator>();
rb = GetComponent<Rigidbody2D>();
}
void Update(){
if (!aim && Input.GetKeyDown (KeyCode.C))
{
aim = true;
anim.SetTrigger ("aim");
}
if (aim && !shot && Input.GetKeyUp (KeyCode.C))
{
shot = true;
aim = false;
anim.SetTrigger ("shot");
Instantiate (arrowPrefab, arrowSpawn.position, arrowSpawn.rotation);
shotDelayCounter = shotDelay;
}
if (aim && !shot && Input.GetKeyUp (KeyCode.C))
{
shotDelayCounter -= Time.deltaTime;
if (shotDelayCounter <= 0)
{
shotDelayCounter = shotDelay;
shot = true;
aim = false;
anim.SetTrigger ("shot");
Instantiate (arrowPrefab, arrowSpawn.position, arrowSpawn.rotation);
}
}
}
}