예제 #1
0
    protected override void Start()
    {
        base.Start();
        selfRigidbody = gameObject.GetComponent <Rigidbody2D>();
        anime         = gameObject.GetComponent <EnemyAnime>();
        //加载子弹
        bulletPath      = "Enemy/EnemyClass1/";
        atkBulletPrefab = Resources.Load <GameObject>(bulletPath + "AtkBullet");


        searchTimeDelay = 0;
        atkTimeDelay    = 0;

        rotPositive = new Vector3(0, 0, 0);
        rotNegative = new Vector3(0, 180, 0);

        heroTransform = GameObject.FindGameObjectWithTag("Hero").transform;
    }
예제 #2
0
    protected override void Start()
    {
        //uiplay = GameObject.Find("/UI/UIPlay").GetComponent<UIPlay>();
        mediator = GameObject.Find("/Chapters/ChapterNow/Mediator").GetComponent <Mediator>();

        base.Start();
        selfRigidbody = gameObject.GetComponent <Rigidbody2D>();
        anime         = gameObject.GetComponent <EnemyAnime>();
        //加载子弹
        bulletPath      = "Enemy/EnemyClass1/";
        atkBulletPrefab = Resources.Load <GameObject>(bulletPath + "AtkBullet");

        //设置攻击与搜敌延迟
        searchTimeDelay = searchTime;
        atkTimeDelay    = atkTime;

        rotPositive = new Vector3(0, 0, 0);
        rotNegative = new Vector3(0, 180, 0);

        heroTransform = GameObject.FindGameObjectWithTag("Hero").transform;
        heroCharacter = heroTransform.GetComponent <Character>();
    }
예제 #3
0
    void Start()
    {
        enemyState = this.GetComponent <EnemyState>();
        enemyStatesList.Add(this.GetComponent <EnemyState>());
        agent      = this.GetComponent <NavMeshAgent>();
        enemyAnime = this.GetComponent <EnemyAnime>();
        var player = GameObject.Find("Player_Pack(Clone)");


        foreach (EnemyState state in enemyStatesList)
        {
            enemyState.checkState
            .Where(x => x == EnemyState.SetState.chase)
            .Subscribe(_ => agent.SetDestination(player.transform.position));

            enemyState.checkState
            .Where(x => x == EnemyState.SetState.attack)
            .First()
            .Subscribe(_ =>
            {
                agent.enabled = false;
                enemyAnime.Attack();
                enemyState.checkState.OnNext(EnemyState.SetState.attackAftar);
            }
                       );

            enemyState.checkState
            .Where(x => x == EnemyState.SetState.deth)
            .First()
            .Subscribe(_ =>
            {
                EnemyDead();
                enemyState.checkState.OnCompleted();
            }
                       );
        }
    }