예제 #1
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            inputDeps = new FireInputJob
            {
                endCommandBuffer = endBarrier.CreateCommandBuffer().ToConcurrent(),
            }
            .Schedule(this, inputDeps);

            endBarrier.AddJobHandleForProducer(inputDeps);
            return(inputDeps);
        }
예제 #2
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            //
            if (enterGameQuery.IsEmptyIgnoreFilter == false)
            {
                EntityManager.AddComponent <PlayerShipMoveInputNetMessage>(enterGameQuery);
                EntityManager.AddComponent <PlayerShipFireInputNetMessage>(enterGameQuery);
            }

            //
            inputDeps = base.OnUpdate(inputDeps);


            //
            using (var moveInputCommandBuffer = new SampleCommandBuffer <ShipMoveInput>(Allocator.TempJob))
                using (var weaponInputCommandBuffer = new SampleCommandBuffer <WeaponInput>(Allocator.TempJob))
                {
                    var inputDepsA = new MoveInputJob
                    {
                        shipDisableMoveInputFromEntity = GetComponentDataFromEntity <ShipLostInputState>(true),

                        moveInputCommandBuffer = moveInputCommandBuffer.ToConcurrent(),
                    }
                    .Schedule(this, inputDeps);

                    var inputDepsB = new FireInputJob
                    {
                        shipDisableFireInputFromEntity = GetComponentDataFromEntity <ShipLostInputState>(true),

                        weaponInstalledStateFromEntity = GetComponentDataFromEntity <WeaponInstalledState>(true),
                        weaponControlFromEntity        = GetComponentDataFromEntity <WeaponControl>(true),

                        translationFromEntity = GetComponentDataFromEntity <Translation>(true),
                        rotationFromEntity    = GetComponentDataFromEntity <Rotation>(true),

                        weaponInputCommandBuffer = weaponInputCommandBuffer.ToConcurrent(),
                    }
                    .Schedule(this, inputDeps);

                    moveInputCommandBuffer.Playback(EntityManager, inputDepsA);
                    weaponInputCommandBuffer.Playback(EntityManager, inputDepsB);
                }

            return(inputDeps);
        }