public void Init(BattleType type, string mapName, int playerNumber) { _running = true; _type = type; _navmeshQuery = new LunaNavmeshQuery(); string filePath = "Navmesh/" + mapName + ".xml"; _navmeshQuery.Initialize(filePath); }
public void Initialize() { SceneCfg sceneCfg = ConfigManager.instance.GetSceneCfgs(DataCache.instance.currentCharacter.mapid); // 读取导航数据,并初始化导航网格信息 _navmeshQuery = new LunaNavmeshQuery(); _navmeshQuery.Initialize("Navmesh/" + sceneCfg.Scene); if (!isonline) { ReqCharacterOnline req = new ReqCharacterOnline(); req.characterid = DataCache.instance.currentCharacter.id; Net.instance.Send <ReqCharacterOnline>((int)MsgID.CHAR_ONLINE_CREQ, req); } else { } }
public void Init(LunaNavmeshQuery navmesh, Transform transform, System.Action idle, System.Action move) { _navQuery = navmesh; _transform = transform; _reached = idle; _move = move; if (_navQuery != null) { _navMeshQuery = _navQuery._navMeshQuery; filter = _navQuery.filter; crowd = _navQuery.Crowd; param = new CrowdAgentParams { Radius = Radius, Height = Height, MaxAcceleration = MaxAcceleration, MaxSpeed = MaxSpeed, CollisionQueryRange = CollisionQueryRange, PathOptimizationRange = PathOptimizationRange, UpdateFlags = UpdateFlags, ObstacleAvoidanceType = ObstacleAvoidanceType, SeparationWeight = SeparationWeight }; Vector3 pos = _transform.position; AgentId = _navQuery.Crowd.AddAgent(new[] { pos.x, pos.y, pos.z }, param); //ResetTarget(); _crowdAgent = crowd.GetAgent(AgentId); float[] resetpos = _crowdAgent.npos; _transform.position = new Vector3(resetpos[0], resetpos[1], resetpos[2]); } else { UnityEngine.Debug.LogError("Scene does not have a Nav Mesh Query, one must be added."); } }
public void Init(RoleTransform transform, LunaNavmeshQuery navmeshQuery) { _navQuery = navmeshQuery; _transform = transform; if (_navQuery != null) { _navMeshQuery = _navQuery._navMeshQuery; filter = _navQuery.filter; crowd = _navQuery.Crowd; param = new CrowdAgentParams { Radius = Radius, Height = Height, MaxAcceleration = MaxAcceleration, MaxSpeed = MaxSpeed, CollisionQueryRange = CollisionQueryRange, PathOptimizationRange = PathOptimizationRange, UpdateFlags = UpdateFlags, ObstacleAvoidanceType = ObstacleAvoidanceType, SeparationWeight = SeparationWeight }; Luna3D.Vector3 pos = _transform.GetPosition(); AgentId = _navQuery.Crowd.AddAgent(new[] { pos.x, pos.y, pos.z }, param); //ResetTarget(); _crowdAgent = crowd.GetAgent(AgentId); float[] resetpos = _crowdAgent.npos; _transform.SetPosition(new Vector3(resetpos[0], resetpos[1], resetpos[2])); } else { System.Console.WriteLine("Scene does not have a Nav Mesh Query, one must be added."); } }
public void InitNavmeshAgent(LunaNavmeshQuery navmesh) { // 初始化导航代理 _navmeshAgent = new LunaNavAgent(); _navmeshAgent.Init(navmesh, _transform, Idle, Moving); }
public void InitNavmeshAgent(LunaNavmeshQuery navmesh) { // 初始化导航代理 _navmeshAgent = new LunaNavAgent(); _navmeshAgent.Init(_transform, navmesh); }