void OnTriggerEnter(Collider other) { //Detect if Fireball hits player C_PlayerCharacter player = other.GetComponent <C_PlayerCharacter> (); if (player != null) { Debug.Log("Player hit"); player.Hurt(1); } Debug.Log("hit other object"); Destroy(this.gameObject); }
// Update is called once per frame void Update() { if (alive) { //move enemy forward transform.Translate(0, 0, speed * Time.deltaTime); Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; if (Physics.SphereCast(ray, 0.75f, out hit)) { GameObject hitObj = hit.transform.gameObject; C_PlayerCharacter playerChar = hitObj.GetComponent <C_PlayerCharacter>(); if (shouldShoot == true) { if (playerChar != null) { //shoot player if (fireball == null) { fireball = Instantiate(fireballPrefab) as GameObject; fireball.transform.position = transform.TransformPoint(Vector3.forward * 1.5f); fireball.transform.rotation = transform.rotation; } } //Rotate enemy when almost hit wall/ obstacle else if (hit.distance < obstacleDistance) { float angle = Random.Range(-110, 110); transform.Rotate(0, angle, 0); } //To prevent player from instant death shouldShoot = false; StartCoroutine(shouldShootTimer()); } } } }