コード例 #1
0
    public void Init(BattleType type, string mapName, int playerNumber)
    {
        _running = true;

        _type = type;

        _navmeshQuery = new LunaNavmeshQuery();
        string filePath = "Navmesh/" + mapName + ".xml";

        _navmeshQuery.Initialize(filePath);
    }
コード例 #2
0
ファイル: Battle.cs プロジェクト: Zindow/My-MMORPG-game-Demo
    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
        {
        }
    }
コード例 #3
0
    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.");
        }
    }
コード例 #4
0
    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.");
        }
    }
コード例 #5
0
 public void InitNavmeshAgent(LunaNavmeshQuery navmesh)
 {
     // 初始化导航代理
     _navmeshAgent = new LunaNavAgent();
     _navmeshAgent.Init(navmesh, _transform, Idle, Moving);
 }
コード例 #6
0
 public void InitNavmeshAgent(LunaNavmeshQuery navmesh)
 {
     // 初始化导航代理
     _navmeshAgent = new LunaNavAgent();
     _navmeshAgent.Init(_transform, navmesh);
 }