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); }
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); }
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); }
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); }
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); }
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); }
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; }
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; }
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; }