コード例 #1
0
    public override bool Check()
    {
        MonsterFsm fsm = m_CurState.CurFsm as MonsterFsm;

        if (Vector3.Distance(fsm.Player.position, fsm.Trans.position) < 2)
        {
            return(true);
        }
        return(false);
    }
コード例 #2
0
    public override bool Check()
    {
        MonsterFsm fsm = MyState.MyFsm as MonsterFsm;

        if (Vector3.Distance(fsm.Player.position, fsm.MyAIMgr.transform.position) < 2)
        {
            return(true);
        }
        return(false);
    }
コード例 #3
0
    public override void MakeFsm()
    {
        m_Fsm          = new MonsterFsm(player);
        m_Fsm.m_DoDraw = true;

        MonsterState_RunWay run = new MonsterState_RunWay(path);

        run.AddTransition(new Tr_Run_RunWay2FollowPlay());
        m_Fsm.AddState(run);

        MonsterState_FollowPlayer follow = new MonsterState_FollowPlayer();

        follow.AddTransition(new Tr_Run_FollowPlay2RunWay());
        m_Fsm.AddState(follow);
    }
コード例 #4
0
    public override void MakeFsm()
    {
        m_Fsm          = new MonsterFsm(player);
        m_Fsm.m_DoDraw = true;

        MonsterState_Idle idle = new MonsterState_Idle();

        idle.AddTransition(new Tr_Idle_Idle2RunWay());
        m_Fsm.AddState(idle);

        MonsterState_RunWay run = new MonsterState_RunWay(path);

        run.AddTransition(new Tr_Idle_RunWay2Idle());
        m_Fsm.AddState(run);
    }
コード例 #5
0
    public override void MakeFsm()
    {
        CurFsm          = new MonsterFsm(player);
        CurFsm.m_DoDraw = true;

        MonsterState_Idle idle = new MonsterState_Idle(MonsterStateID.Idle.GetHashCode());

        idle.AddTransition(new Tr_Idle_Idle2RunWay(MonsterStateID.RunWay.GetHashCode()));
        CurFsm.AddState(idle);

        MonsterState_RunWay run = new MonsterState_RunWay(MonsterStateID.RunWay.GetHashCode(), path);

        run.AddTransition(new Tr_Idle_RunWay2Idle(MonsterStateID.Idle.GetHashCode()));
        CurFsm.AddState(run);
    }
コード例 #6
0
    public override void MakeFsm()
    {
        CurFsm          = new MonsterFsm(player);
        CurFsm.m_DoDraw = true;

        MonsterState_RunWay run = new MonsterState_RunWay(MonsterStateID.RunWay.GetHashCode(), path);

        run.AddTransition(new Tr_Run_RunWay2FollowPlay(MonsterStateID.FollowPlayer.GetHashCode()));
        CurFsm.AddState(run);

        MonsterState_FollowPlayer follow = new MonsterState_FollowPlayer(MonsterStateID.FollowPlayer.GetHashCode());

        follow.AddTransition(new Tr_Run_FollowPlay2RunWay(MonsterStateID.RunWay.GetHashCode()));
        CurFsm.AddState(follow);
    }
コード例 #7
0
    public override void Update()
    {
        base.Update();

        MonsterFsm mgr = m_Fsm as MonsterFsm;

        Vector3 moveDir = mgr.Player.position - mgr.Trans.position;

        if (moveDir.magnitude < 0.1f)
        {
            return;
        }
        mgr.Trans.rotation = Quaternion.LookRotation(moveDir);
        mgr.Trans.position = mgr.Trans.position + mgr.Trans.forward * 0.01f;
    }
コード例 #8
0
    public override void Update()
    {
        base.Update();

        if (path == null || path.Length <= 0)
        {
            return;
        }

        MonsterFsm mgr = m_Fsm as MonsterFsm;

        Vector3 moveDir = path[curIdx].position - mgr.Trans.position;

        if (moveDir.magnitude < 0.1f)
        {
            curIdx  = (curIdx + 1) % path.Length;
            moveDir = path[curIdx].position - mgr.Trans.position;
        }
        mgr.Trans.rotation = Quaternion.LookRotation(moveDir);
        mgr.Trans.position = mgr.Trans.position + mgr.Trans.forward * 0.01f;
    }
コード例 #9
0
    public override void OnUpdate()
    {
        base.OnUpdate();

        time += Time.deltaTime;
        if (time > dur)
        {
            time = 0f;
            //Debug.Log("MonsterState_FollowPlayer");
        }

        MonsterFsm fsm = MyFsm as MonsterFsm;

        Vector3 moveDir = fsm.Player.position - MyAIMgr.transform.position;

        if (moveDir.magnitude < 0.1f)
        {
            return;
        }
        MyAIMgr.transform.rotation = Quaternion.LookRotation(moveDir);
        MyAIMgr.transform.position = MyAIMgr.transform.position + MyAIMgr.transform.forward * 0.01f;
    }