protected void OnClickSceneItem(SceneItem _sceneItem) { if (_sceneItem == null || target == null) { return; } if (target.CurFSMState == MainPlayer.EventType.AI_FIGHT_CTRL) //应策划要求,自动战斗时的点击,不能直接跳转到普通,而只是临时执行。 { target.BreakAutoFight(); } else { target.GoNormal(); } target.CancelCommands(); Command_MoveTo cmdMoveTo = new Command_MoveTo(); cmdMoveTo.destPos = _sceneItem.gameObject.transform.position; cmdMoveTo.maxDistance = 0f; target.commandMng.PushCommand(cmdMoveTo); switch (_sceneItem.IsTouchType) { case TouchType.TOUCH: GameCenter.curMainPlayer.CurTarget = _sceneItem; CommandTriggerTarget trigCmd = new CommandTriggerTarget(); trigCmd.target = _sceneItem; target.commandMng.PushCommand(trigCmd); break; default: break; } }
protected void OnClickNpc(NPC _npc) { if (_npc == null || target == null) { return; } target.CurTarget = _npc; target.GoNormal(); if (isDragingRockerItem) { return; } // target.autoAttak = MainPlayer.AttackType.NONE; target.CancelCommands(); Command_MoveTo cmdMoveTo = new Command_MoveTo(); Vector3 npcPos = _npc.gameObject.transform.position; Vector3 myPos = target.transform.position; cmdMoveTo.destPos = npcPos - Vector3.Normalize(npcPos - myPos) * 2.0f; cmdMoveTo.maxDistance = 0f; target.commandMng.PushCommand(cmdMoveTo); CommandTriggerTarget cmdMoveToTarget = new CommandTriggerTarget(); cmdMoveToTarget.minDistance = 3.5f; cmdMoveToTarget.target = _npc; target.commandMng.PushCommand(cmdMoveToTarget); }
protected virtual void UpdateCollectState(fsm.State _curState) { if (!CheckTask()) { thisPlayer.GoNormal(); return; } if (curTarSceneItem == null || curTarSceneItem.isDead) { curTarSceneItem = GetTarSceneItem(); } else if (!thisPlayer.commandMng.HasCommand() && !thisPlayer.IsCollecting && !GameCenter.mainPlayerMng.IsWaitTouchSceneItemMsg) { thisPlayer.CurTarget = curTarSceneItem; Command_MoveTo moveCmd = new Command_MoveTo(); moveCmd.destPos = curTarSceneItem.transform.position; thisPlayer.commandMng.PushCommand(moveCmd); CommandTriggerTarget trigCmd = new CommandTriggerTarget(); trigCmd.target = curTarSceneItem; thisPlayer.commandMng.PushCommand(trigCmd); } }