Esempio n. 1
0
 void Start()
 {
     healthManager         = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerHealthManager>();
     healthSlider.minValue = MinHealth;
     healthSlider.maxValue = MaxHealth;
     playTime.text         = Archive.CurrentArchive.PlayTimeToStr;
     sceneName.text        = Scene.GetScene(Archive.CurrentArchive.SceneId).SceneName;
 }
Esempio n. 2
0
        void Update()
        {
            if (GameManager.Instance.CurrentGameState != GameManager.GameState.Play)
            {
                return;
            }
            if (motionController.CurrentMotionState != MotionState.Attacking)
            {
                return;
            }
            Transform player = sensorController.GetNearByPlayer();

            if (player == null)
            {
                return;
            }
            AnimatorStateInfo state = animator.GetCurrentAnimatorStateInfo(0);

            if (state.IsName("BaseLayer.Attack"))
            {
                if (state.normalizedTime > 0.3f && state.normalizedTime < 0.5f)
                {
                    if (attackFlag)
                    {
                        return;
                    }
                    if (Vector3.Distance(player.position, transform.position) > attackRadius)
                    {
                        return;
                    }
                    Vector3 direction = player.position - transform.position;
                    float   angle     = Vector3.Angle(transform.forward, direction);
                    if (angle <= attackRightSideAngle && angle >= attackLeftSideAngle)
                    {
                        PlayerHealthManager playerHealth = player.GetComponent <PlayerHealthManager>();
                        playerHealth.ReduceHealth(transform.position, damage);
                        attackFlag = true;
                    }
                }
                if (state.normalizedTime > 0.9f)
                {
                    attackFlag = false;
                }
            }
        }
        void Update()
        {
            if (GameManager.Instance.CurrentGameState != GameManager.GameState.Play)
            {
                return;
            }
            Transform player = sensorController.GetNearByPlayer();

            if (player == null)
            {
                return;
            }
            if (attackFlag)
            {
                return;
            }
            if (motionController.CurrentMotionState == MotionState.Attacking)
            {
                AnimatorStateInfo state = animator.GetCurrentAnimatorStateInfo(0);
                if (state.IsName("BaseLayer.Attack"))
                {
                    if (state.normalizedTime >= 0.2 && state.normalizedTime <= 0.4)
                    {
                        if (Vector3.Distance(player.position, transform.position) > attackRadius)
                        {
                            return;
                        }
                        Vector3 direction = player.position - transform.position;
                        float   angle     = Vector3.Angle(transform.forward, direction);
                        if (angle <= attackAngle / 2 && angle >= -attackAngle / 2)
                        {
                            if (playerHealth == null)
                            {
                                playerHealth = player.GetComponent <PlayerHealthManager>();
                            }
                            playerHealth.WasHitFly(transform.position, hitFlyDistance, damage);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
        void Start()
        {
            GameObject player = GameObject.FindGameObjectWithTag("Player");

            healthManager = player.GetComponent <PlayerHealthManager>();
        }