49 lines
1.0 KiB
C#
49 lines
1.0 KiB
C#
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
public class BulletSpawner : MonoBehaviour
|
||
|
|
{
|
||
|
|
public GameObject prefab;
|
||
|
|
|
||
|
|
public float bulletSpeed = 8f;
|
||
|
|
|
||
|
|
Transform target;
|
||
|
|
|
||
|
|
|
||
|
|
public float min = 0.5f;
|
||
|
|
public float max = 3f;
|
||
|
|
|
||
|
|
float rate;
|
||
|
|
float time;
|
||
|
|
|
||
|
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||
|
|
void Start()
|
||
|
|
{
|
||
|
|
time = 0f;
|
||
|
|
rate = Random.Range(min, max);
|
||
|
|
|
||
|
|
target = FindFirstObjectByType<PlayerController>().transform;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Update is called once per frame
|
||
|
|
void Update()
|
||
|
|
{
|
||
|
|
time += Time.deltaTime;
|
||
|
|
|
||
|
|
if(time >= rate)
|
||
|
|
{
|
||
|
|
time = 0f;
|
||
|
|
|
||
|
|
rate = Random.Range(min, max);
|
||
|
|
|
||
|
|
GameObject obj = Instantiate(prefab, transform.position, transform.rotation);
|
||
|
|
obj.transform.LookAt(target);
|
||
|
|
|
||
|
|
Bullet bulletScript = obj.GetComponent<Bullet>();
|
||
|
|
if (bulletScript != null)
|
||
|
|
{
|
||
|
|
bulletScript.speed = bulletSpeed;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|