51 lines
1.7 KiB
C#
51 lines
1.7 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class ShootyEnemyWeaponController : GoombaAI {
|
|
|
|
public GameObject weaponPrefab;
|
|
public float Range;
|
|
|
|
private GameObject weapon;
|
|
private GameObject player;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
weapon = Instantiate(weaponPrefab);
|
|
weapon.name = "Weapon";
|
|
weapon.transform.SetParent(gameObject.transform, true);
|
|
weapon.transform.position = gameObject.transform.position;
|
|
//weapon.transform.localScale = new Vector3(1, 1, 1);
|
|
Destroy(weapon.GetComponent<BoxCollider2D>());
|
|
Destroy(weapon.GetComponent<Rigidbody2D>());
|
|
|
|
player = findPlayer();
|
|
}
|
|
|
|
// Update is called once per frame
|
|
protected void Update()
|
|
{
|
|
float horizontalDirection = (player.transform.position - gameObject.transform.position).x;
|
|
float verticalDirection = (player.transform.position - gameObject.transform.position).y;
|
|
//weapon.GetComponent<Weapon>().aim(horizontalDirection);
|
|
|
|
weapon.GetComponent<SpriteRenderer>().flipX = false;
|
|
gameObject.transform.rotation = Quaternion.Euler(new Vector3(0, horizontalDirection > 0 ? 0 : 180, 0));
|
|
if(Mathf.Abs(horizontalDirection) < Range && Mathf.Abs(verticalDirection) < 2f) {
|
|
weapon.GetComponent<Weapon>().shoot();
|
|
}
|
|
}
|
|
|
|
private GameObject findPlayer() {
|
|
GameObject player = null;
|
|
foreach(GameObject go in FindObjectsOfTypeAll(typeof(GameObject))){
|
|
if (go.name.Equals("Player")) {
|
|
Debug.Log("Found player");
|
|
player = go;
|
|
}
|
|
}
|
|
return player;
|
|
}
|
|
}
|