void Update() { if (target != null) { targetDir = target.position - transform.position; //shootTimeLeft = Time.time - startTime; state = ALLY.ALLYATTACK; animator.SetTrigger("Attack"); moveSpeed = 0.0f; } /* * //if (enemyPos != null) { * enemyPos = GameObject.FindGameObjectWithTag ("Enemy").transform; * trMonster = this.gameObject.GetComponent<Transform> (); * * // 적이 죽지 않으면 스테이트 검사를 진행한다. * float _fDist = enemyPos.position.x - trMonster.position.x; * // 적이 사정거리에 들어옴 * if ((_fDist < fAttackDist && _fDist > 0)) { * state = ALLY.ALLYATTACK; * animator.SetTrigger ("Attack"); * moveSpeed = 0.0f; * } else { * state = ALLY.ALLYRUN; * animator.SetTrigger ("Run"); * moveSpeed = realmoveSpeed; * } * //Debug.Log (_fDist); * // }*/ }
void getClosestEnemy() { GameObject[] taggedEnemys = GameObject.FindGameObjectsWithTag(targetTag); float closestDistSqr = Mathf.Infinity; closestEnemy = null; foreach (GameObject taggedEnemy in taggedEnemys) { objectPos = taggedEnemy.transform.position; dist = (objectPos - transform.position).sqrMagnitude; if (dist < fAttackDist) { closestDistSqr = dist; closestEnemy = taggedEnemy.transform; } else { state = ALLY.ALLYRUN; animator.SetTrigger("Run"); moveSpeed = realmoveSpeed; } } target = closestEnemy; }
public void Hurt() { // Reduce the number of hit points by one. state = ALLY.ALLYHURT; animator.SetTrigger("Hurt"); HP--; }
void Death() { state = ALLY.ALLYDEATH; // Find all of the sprite renderers on this object and it's children. SpriteRenderer[] otherRenderers = GetComponentsInChildren <SpriteRenderer>(); animator.SetTrigger("Death"); // Disable all of them sprite renderers. foreach (SpriteRenderer s in otherRenderers) { s.enabled = false; } // Re-enable the main sprite renderer and set it's sprite to the deadEnemy sprite. ren.enabled = true; ren.sprite = deadEnemy; // Increase the score by 100 points score.score += 100; // Set dead to true. dead = true; // Allow the enemy to rotate and spin it by adding a torque. rigidbody2D.fixedAngle = false; rigidbody2D.AddTorque(Random.Range(deathSpinMin, deathSpinMax)); // Find all of the colliders on the gameobject and set them all to be triggers. Collider2D[] cols = GetComponents <Collider2D>(); foreach (Collider2D c in cols) { c.isTrigger = true; } // Play a random audioclip from the deathClips array. int i = Random.Range(0, deathClips.Length); AudioSource.PlayClipAtPoint(deathClips[i], transform.position); // Create a vector that is just above the enemy. Vector3 scorePos; scorePos = transform.position; scorePos.y += 1.5f; // Instantiate the 100 points prefab at this point. Instantiate(hundredPointsUI, scorePos, Quaternion.identity); }