Ejemplo n.º 1
0
        private void Update()
        {
            if (fireball != null)
            {
                AnimatorStateInfo  animationState = animator.GetCurrentAnimatorStateInfo(0);
                AnimatorClipInfo[] myAnimatorClip = animator.GetCurrentAnimatorClipInfo(0);
                if (myAnimatorClip[0].clip.name == "Throw")
                {
                    float myTime = myAnimatorClip[0].clip.length * animationState.normalizedTime;
                    if (myTime >= 0.9f)
                    {
                        Ray     ray    = RectTransformUtility.ScreenPointToRay(Camera.main, reticle.position);
                        Vector3 lookAt = ray.origin + Camera.main.transform.forward * 3;

                        fireball.gameObject.SetActive(false);
                        fireball.transform.position = fireball.transform.position + (fireball.transform.right * 1.0f);
                        fireball.transform.SetParent(null);
                        fireball.transform.LookAt(ray.GetPoint(50));
                        Debug.DrawLine(ray.origin, ray.GetPoint(50));

                        DamageDealer dealer = fireball.GetComponentInChildren <DamageDealer>();
                        if (dealer != null)
                        {
                            dealer.overrideDamageSource = true;
                            dealer.damageSource         = statsCog.gameObject;
                        }

                        fireball.IsReleased = true;
                        fireball.gameObject.SetActive(true);
                        fireball = null;
                    }
                }
            }
        }