コード例 #1
0
ファイル: GameSurface.cs プロジェクト: henningboat/UbiJam2020
        private void LateUpdate()
        {
            JobHandle localStateHandle  = _localState.Simulate();
            JobHandle syncedStateHandle = _syncronizedState.Simulate();

            JobHandle combinedJobHandle = JobHandle.CombineDependencies(localStateHandle, syncedStateHandle);

            JCompareChangesInLocalState jCompare = new JCompareChangesInLocalState
            {
                SentRPCNumber         = _sentRPCNumber,
                RpcNumberPerNode      = _rpcNumberPerNode,
                LocalStateSurface     = _localState.Surface,
                LastFrameLocalSurface = _localStateBackup,
            };
            JUpdateSyncedToLocalState jUpdateJob = new JUpdateSyncedToLocalState
            {
                ReceivedRpcNumber  = _receivedRpcNumber,
                LocalStateSurface  = _localState.Surface,
                SyncedStateSurface = _syncronizedState.Surface,
                RpcNumberPerNode   = _rpcNumberPerNode,
            };

            combinedJobHandle = jCompare.Schedule(SurfacePieceCount, ParallelJobBatchCount, combinedJobHandle);

            combinedJobHandle = jUpdateJob.Schedule(SurfacePieceCount, ParallelJobBatchCount, combinedJobHandle);

            combinedJobHandle = GameSurfaceRenderingHandler.Instance.ScheduleJobs(_localState, combinedJobHandle);

            combinedJobHandle.Complete();
            _localState.FinishSimulation();
            _syncronizedState.FinishSimulation();
            GameSurfaceRenderingHandler.Instance.Finish(_localState);

            _localState.CopySurfaceTo(_combinedSurface);

            _localState.CopySurfaceTo(_localStateBackup);
        }