Exemple #1
0
    protected override void Init()
    {
        base.Init();
        m_DirectID = database.GetDataId("direct");
        database.SetData <Vector2>(m_DirectID, new Vector2(1, 0));

        m_timeWaitId = database.GetDataId("timeWait");
        database.SetData <float>(m_timeWaitId, 0);

        CheckPlayer      _checkPlayer      = new CheckPlayer(m_Find);
        CheckAllowAttack _checkAllowAttack = new CheckAllowAttack(m_timeWaitId, timeAttack);

        BTPrecondition2 con = new BTPrecondition2(_checkPlayer, _checkAllowAttack, BTPrecondition2.BTPrecondition2Param.And);

        _root = new BTPrioritySelector();
        BTParallel moveAttack = new BTParallel(BT.BTParallel.ParallelFunction.Or, con);
        float      maxX, maxY;

        maxX = distance.position.x - transform.position.x;
        maxY = 0;
        moveAttack.AddChild(new Move(speed, new Vector2(1, 0), transform.position, maxX, maxY, m_DirectID, null, true));
        moveAttack.AddChild(new Shoot(bulletObject, shooter, new Vector2(0, -1), m_timeWaitId));

        _root.AddChild(moveAttack);
        _root.AddChild(new Move(speed, new Vector2(1, 0), transform.position, maxX, maxY, m_DirectID, null, true));
    }
Exemple #2
0
    protected override void Init()
    {
        base.Init();
        float time       = 0;
        float timeAttack = m_MaxTimeAttack + 1;

        m_timeWaitId = database.GetDataId("timeWait");
        database.SetData <float>(m_timeWaitId, time);

        m_timeAttackId = database.GetDataId("timeAttack");
        database.SetData <float>(m_timeAttackId, timeAttack);

        _root = new BTPrioritySelector();
        CheckPlayer      _checkPlayer      = new CheckPlayer(m_Find);
        CheckAllowAttack _checkAllowAttack = new CheckAllowAttack(m_timeWaitId, m_TimeAttackCooldown);
        CheckAttacking   _checkAttacking   = new CheckAttacking(m_timeAttackId, m_MaxTimeAttack);

        BTPrecondition2 con1 = new BTPrecondition2(_checkAllowAttack, _checkAttacking, BTPrecondition2.BTPrecondition2Param.Or);
        BTPrecondition2 con2 = new BTPrecondition2(_checkPlayer, con1, BTPrecondition2.BTPrecondition2Param.And);

        _root.AddChild(new PlayAnimation("attack", con2));
        _root.AddChild(new PlayAnimation("stand"));
    }
Exemple #3
0
    protected override void Init()
    {
        base.Init();
        float   time       = 0;
        float   timeAttack = m_MaxTimeAttack + 1;
        Vector2 direct     = new Vector2(0, 1);

        m_DirectID = database.GetDataId("direct");
        database.SetData <Vector2>(m_DirectID, direct);

        m_timeWaitId = database.GetDataId("timeWait");
        database.SetData <float>(m_timeWaitId, time);

        m_timeAttackId = database.GetDataId("timeAttack");
        database.SetData <float>(m_timeAttackId, timeAttack);

        _root = new BTPrioritySelector();
        CheckPlayer      _checkPlayer      = new CheckPlayer(m_Find);
        CheckAllowAttack _checkAllowAttack = new CheckAllowAttack(m_timeWaitId, m_TimeAttackCooldown);
        CheckAttacking   _checkAttacking   = new CheckAttacking(m_timeAttackId, m_MaxTimeAttack);

        BTPrecondition2 con1 = new BTPrecondition2(_checkAllowAttack, _checkAttacking, BTPrecondition2.BTPrecondition2Param.Or);
        BTPrecondition2 con2 = new BTPrecondition2(_checkPlayer, con1, BTPrecondition2.BTPrecondition2Param.And);

        BTParallel moveAttack = new BTParallel(BT.BTParallel.ParallelFunction.Or);

        moveAttack.AddChild(new Move(m_Speed, direct, transform.position, 1000f, 0.2f, m_DirectID));

        BTPrioritySelector fight = new BTPrioritySelector();

        fight.AddChild(new PlayAnimation("attack", con2));
        fight.AddChild(new PlayAnimation("fly"));

        moveAttack.AddChild(fight);
        _root.AddChild(moveAttack);
    }