Witam. Jak sprawić, aby po każdym strzale były 2s przerwy? Próbowałem tak, i nie działa, a głowa mi już pęka :/:
using UnityEngine;
using System.Collections;
public class ShootingSystem : MonoBehaviour
{
CharacterController controller;
ChangeWeapon wpn;
GameObject sphere;
Vector3 weaponPos;
public Rigidbody bullet;
public float power = 1500f;
private float mousePress = 0;
private void Start()
{
sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.AddComponent<Rigidbody>();
bullet = sphere.GetComponent<Rigidbody>();
controller = GetComponent<CharacterController>();
wpn = GetComponent<ChangeWeapon>();
}
IEnumerator Waiter()
{
if (controller.isGrounded && wpn.weaponInHand == true && Input.GetKey(KeyCode.Mouse0) && Input.GetKey(KeyCode.Mouse1))
{
mousePress++;
weaponPos = new Vector3(wpn.hand.transform.position.x, wpn.hand.transform.position.y, wpn.hand.transform.position.z + 1);
Rigidbody instance = Instantiate(bullet, weaponPos, transform.rotation);
//instance.transform.localScale = new Vector3(0.02f, 0.02f, 0.1f);
for (int i = 0; i <= mousePress; i++)
{
instance.name = "Sphere(Clone)" + i;
if (GameObject.Find("Sphere(Clone)" + i).GetComponent<destroyProjectile>() == false)
GameObject.Find("Sphere(Clone)" + i).AddComponent<destroyProjectile>();
}
Vector3 fwd = 0.1f * Vector3.MoveTowards(wpn.hand.transform.position, GameObject.Find("Target").transform.position, 25);
instance.AddForce(fwd * power);
}
yield return new WaitForSeconds(2f);
}
void Update()
{
StartCoroutine(Waiter());
}
}