Exemple #1
0
    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();
        }
    }
Exemple #2
0
 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 ();
     }
 }
Exemple #3
0
 public override void Initialize()
 {
     _arena         = GetComponentInParent <TrainingArena>();
     _rigidBody     = GetComponent <Rigidbody>();
     _rewardPerStep = maxStep > 0 ? -1f / maxStep : 0;
 }