Пример #1
0
        IEnumerator delayFire(float delayFireTime)
        {
            yield return(new WaitForSeconds(delayFireTime));

            if (weapon)
            {
                weapon.fire(transform.forward);
            }
        }
Пример #2
0
        public override void handleAttack()
        {
            GameObject playerGo = GameObject.Find("Player");

            if (weapon && playerGo)
            {
                Vector3 vec = playerGo.transform.position - transform.position;
                weapon.fire(vec);
            }
        }
Пример #3
0
        public override void handleAttack()
        {
            if (m_attackTime < 0 && m_hitTime < 0)
            {
                if (m_animator)
                {
                    m_animator.SetBool("Attack", true);
                }
                if (m_agent && m_agent.isOnNavMesh)
                {
                    m_agent.Stop();
                }

                GameObject playerGo = GameObject.Find("Player");
                if (weapon && playerGo)
                {
                    Vector3 vec = playerGo.transform.position - transform.position;

                    weapon.fire(vec);
                }
                m_attackTime = attackTime;
            }
        }
Пример #4
0
        // Update is called once per frame
        void Update()
        {
            float horz = Input.GetAxis("Horizontal");
            float vert = Input.GetAxis("Vertical");

            if (m_dead)
            {
                return;
            }
            Vector3 vec = Vector3.zero;

            updateTimers();
            vec.x = horz;
            vec.z = vert;

            Weapon secondaryWeapon = m_weaponManager.getWeapon();

            if (secondaryWeapon && secondaryWeapon.isEmpty())
            {
                m_weaponManager.closeWeapon();
                m_currentWeapon = weapon;
            }
            Vector3    targetPos;
            RaycastHit rch;
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out rch))
            {
                targetPos   = rch.point;
                targetPos.y = transform.position.y;

                transform.LookAt(targetPos);
            }

            bool moving = false;

            if (m_fireTime < 0)
            {
                if (horz != 0 || vert != 0)
                {
                    moving = true;
                }
                if (m_playerAnimator)
                {
                    //	m_playerAnimator.setShoot(false);
                }
            }
            if (m_playerAnimator)
            {
                m_playerAnimator.setMove(moving);
            }
            if (Input.GetMouseButton(0))
            {
                if (m_fireTime < 0)
                {
                    //	m_playerAnimator.setShoot(true);
                    if (m_currentWeapon)
                    {
                        m_currentWeapon.fire(m_currentWeapon.transform.forward);
                    }
                    m_fireTime = fireTime;
                }
            }
            else
            {
                m_currentWeapon.hideBeam();
            }
            m_controller.Move(vec.normalized * moveSpeed * Time.deltaTime);
            //transform.position += vec.normalized * moveSpeed * Time.deltaTime;



            //		transform.rotation = Quaternion.AngleAxis(m_dir * 90, Vector3.up);
        }