美文网首页
2D小游戏——敌人攻击

2D小游戏——敌人攻击

作者: GZoO | 来源:发表于2019-03-17 16:00 被阅读0次
    简单射击
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Attack : MonoBehaviour {
        public GameObject bullet;//存放子弹的预制件
    
        private GameObject m_player;//玩家
        // Use this for initialization
        void Start () {
            m_player = GameObject.FindWithTag(Tags.Player);
    
            Invoke("GoAttack",2);
        }
    
        private void GoAttack()
        {
            ShowTheBullet(m_player.transform.position);
            //不定时启动攻击动作
            Invoke("GoAttack", Random.Range(0.5f, 3f));
        }
    
        //射击
        private void ShowTheBullet(Vector3 target)
        {
            GameObject _bullet = Instantiate(bullet, transform.position, Quaternion.identity);
            //子弹的行进方向为自身到玩家的向量,以此方向给子弹一个大小为25的力
            _bullet.GetComponent<Rigidbody2D>().AddForce((target - _bullet.transform.position) * 25);
        }
    }
    
    

    变化一


       private void GoAttack()
        {
            //一次性发射固定数量的子弹
            for (int i = 0; i < 5; ++i)
            {
                Vector3 temp = m_player.transform.position;
                temp.x += i * 0.5f;
                ShowTheBullet(temp);
            }
    
            Invoke("GoAttack", Random.Range(0.5f, 3f));
        }
    

    变化二

        private int count;
        private void GoAttack()
        {
            Vector3 temp = m_player.transform.position;
            temp.x += count * 0.3f;
            count++;
            ShowTheBullet(temp);
            if (count == 5)
            {
                count = 0;
                Invoke("GoAttack", Random.Range(1f, 3f));
            }
            else
            {
                Invoke("GoAttack", 0.15f);
            }
        }
    

    相关文章

      网友评论

          本文标题:2D小游戏——敌人攻击

          本文链接:https://www.haomeiwen.com/subject/fskumqtx.html