Пример #1
0
    public void Excute()
    {
        Vector3 pos = soliderInfo.GetPosition();
        float   dis = BattleUtils.Distance2(pos, targetPos);

        if (dis < 10 * Time.deltaTime)
        {
            soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z);
            soliderInfo.ChangeState("idle");
        }
        else
        {
            pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * 10);
            soliderInfo.SetPosition(pos.x, pos.y, pos.z);
        }
    }
Пример #2
0
    public void Excute()
    {
        Vector3 pos = soliderInfo.GetPosition();
        float   dis = BattleUtils.Distance2(pos, targetPos);

        if (dis < speed * Time.deltaTime)
        {
            soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z);
            soliderInfo.ChangeState("attack", new StateParam(attackInfo));
        }
        else
        {
            pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * speed);
            soliderInfo.SetPosition(pos.x, pos.y, pos.z);
        }
    }
Пример #3
0
    public void Excute()
    {
        Vector3 pos = soliderInfo.GetPosition();
        float   dis = Vector3.Distance(pos, targetPos);

        if (dis < speed * Time.deltaTime)
        {
            soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z);
            CharacterInfo attackInfo = soliderInfo.GetAttackInfo();
            soliderInfo.SetAttackInfo(attackInfo);
            attackInfo.SetAttackInfo(soliderInfo);
            soliderInfo.ChangeState("attack", attackInfo);
            attackInfo.ChangeState("attack", soliderInfo);
        }
        else
        {
            pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * speed);
            soliderInfo.SetPosition(pos.x, pos.y, pos.z);
        }
    }