Files
ihob/Assets/PegLegIo/scripts/EnemyController_Dummy.cs

73 lines
2.2 KiB
C#
Raw Permalink Normal View History

2026-02-21 17:04:05 -08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyController_Dummy : MonoBehaviour {
[SerializeField] Rigidbody2D body;
[SerializeField] float waitTime = 5f;
[SerializeField] float smoothness = 1f;
[SerializeField] int border = 64;
[SerializeField] GameObject bullet;
float intentX = 0;
float intentY = 0;
AudioSource audioSource;
PLIGameController game;
bool slow = false;
// Start is called before the first frame update
void Start() {
body = GetComponent<Rigidbody2D>();
game = GameObject.FindGameObjectWithTag("PegLegIoGame").GetComponent<PLIGameController>();
audioSource = game.GetComponent<AudioSource>();
StartCoroutine(PickSomewhere());
StartCoroutine(GoCraCy());
}
IEnumerator PickSomewhere() {
for (int i = 0; i < 5; i++) {
intentX = ((transform.position.x > 0) ? 1 : -1) * Random.Range(0f, 170f);
intentY = Random.Range(0f, 100f);
yield return new WaitForSeconds(waitTime);
}
slow = true;
intentX = transform.position.x;
intentY = -300;
yield return new WaitForSeconds(waitTime);
Destroy(gameObject);
}
IEnumerator GoCraCy() {
yield return new WaitForSeconds(3.0f);
while (true) {
float bulletsPerRevolution = 15f;
float bulletSpeed = 100f;
int c = 0;
float a = 0f;
while (c < 30) {
c++;
GameObject b1 = Instantiate(bullet);
b1.transform.position = transform.position;
b1.GetComponent<Rigidbody2D>().velocity = new Vector2(
bulletSpeed * Mathf.Cos(a),
bulletSpeed * Mathf.Sin(a));
a += 2 * Mathf.PI / bulletsPerRevolution;
yield return new WaitForSeconds(0.01f);
}
yield return new WaitForSeconds(5f);
}
}
// Update is called once per frame
void FixedUpdate() {
Vector2 vel = body.velocity;
Vector2.SmoothDamp(transform.position,
new Vector2(intentX, intentY),
ref vel,
(slow?5:smoothness));
body.velocity = vel;
}
}