IEnumerator PeckRoutine() { TrainingArena ta = GameObject.FindWithTag("TrainingArena").GetComponent <TrainingArena>(); float initProgress = ta.GetProgress(); pecking = true; bool peckingPhase = true; float time = 0; float peckProgress = 0; Vector3 initialPosition = transform.localPosition; while (peckingPhase) { peckProgress = time / peckDuration; if (peckProgress > 1) { peckingPhase = false; peckProgress = 1; } transform.RotateAround(transform.parent.transform.position, transform.parent.transform.right, (peckAngle / peckDuration) * Time.deltaTime); yield return(null); time += Time.deltaTime; } peckingPhase = true; time = 0; peckProgress = 0; while (peckingPhase) { peckProgress = time / peckDuration; if (peckProgress > 1) { peckingPhase = false; peckProgress = 1; } transform.RotateAround(transform.parent.transform.position, -transform.parent.transform.right, (peckAngle / peckDuration) * Time.deltaTime); yield return(null); time += Time.deltaTime; } transform.localPosition = initialPosition; pecking = false; if (initProgress == ta.GetProgress()) { ta.DiminishProgress(); GetComponent <AudioSource>().Play(); } }
void OnTriggerEnter(Collider __collider) { if (__collider.gameObject.tag == "Head") { TrainingArena ta = GameObject.FindWithTag("TrainingArena").GetComponent <TrainingArena>(); bool learning = ta.peckedOn(colorName); //__collider.gameObject.GetComponent<Bullet>().Die(); if (learning) { GetComponent <AudioSource>().Play(); } isAlive = false; //Destroy (); } }
public override void Initialize() { _arena = GetComponentInParent <TrainingArena>(); _rigidBody = GetComponent <Rigidbody>(); _rewardPerStep = maxStep > 0 ? -1f / maxStep : 0; }