protected override void OnUpdate()
            {
                var geneticTrainerID = new List <GeneticTrainerIDComponentData>(10);

                EntityManager.GetAllUniqueSharedComponentData(geneticTrainerID);

                var transforms = geneticTrainerGroup.GetComponentArray <Transform>();

                for (int i = 0, length = transforms.Length; i < length; ++i)
                {
                    var geneticTrainer = transforms[i].GetComponent <GeneticTrainerComponent>();
                    deadNetworkGroup.SetFilter(geneticTrainerID[i]);                    //may need to change if more than one
                    if (deadNetworkGroup.GetEntityArray().Length != 0)
                    {
                        if (deadNetworkGroup.GetEntityArray().Length == geneticTrainer.pool.Length)
                        {
                            for (int j = 0, entityCount = deadNetworkGroup.GetEntityArray().Length; deadNetworkGroup.GetEntityArray().Length != 0;)
                            {
                                var entity = deadNetworkGroup.GetEntityArray()[j];
                                geneticTrainer.scores[deadNetworkGroup.GetComponentDataArray <PointComponentData>()[j].PointValue] = entity;
                                EntityManager.AddComponentData(entity, new ResetComponentData());
                                EntityManager.RemoveComponent(entity, ComponentType.Create <DeadComponentData>());
                            }
                        }
                    }
                }
            }
Exemplo n.º 2
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            Debug.Log("Remove Octree Instance.");

            int i_groupLength = group.CalculateLength();

            var removeInstanceJob = new RemoveInstanceJob
            {
                a_octreeEntities = group.GetEntityArray(),

                // Contains a list of instances to add, with its properties.
                removeInstanceBufferElement = GetBufferFromEntity <RemoveInstanceBufferElement> (),

                a_rootNodeData = GetComponentDataFromEntity <RootNodeData> (),

                nodeSparesBufferElement          = GetBufferFromEntity <NodeSparesBufferElement> (),
                nodeBufferElement                = GetBufferFromEntity <NodeBufferElement> (),
                nodeInstancesIndexBufferElement  = GetBufferFromEntity <NodeInstancesIndexBufferElement> (),
                nodeChildrenBufferElement        = GetBufferFromEntity <NodeChildrenBufferElement> (),
                instanceBufferElement            = GetBufferFromEntity <InstanceBufferElement> (),
                instancesSpareIndexBufferElement = GetBufferFromEntity <InstancesSpareIndexBufferElement> ()
            }.Schedule(i_groupLength, 8, inputDeps);



            var completeRemoveInstanceJob = new CompleteRemoveInstanceJob
            {
                ecb = barrier.CreateCommandBuffer().ToConcurrent(),
                a_octreeEntities = group.GetEntityArray()
            }.Schedule(i_groupLength, 8, removeInstanceJob);

            return(completeRemoveInstanceJob);
        }
Exemplo n.º 3
0
 protected override JobHandle OnUpdate(JobHandle inputDeps)
 {
     return(new GridSystemJob
     {
         Array = _componentGroup.GetEntityArray()
     }.Schedule(_componentGroup.GetEntityArray().Length, 64, inputDeps));
 }
    protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        _componentGroup = GetComponentGroup(typeof(CircleCollider), typeof(Position), typeof(Tag));
        var array = _componentGroup.GetEntityArray();

        for (int i = 0; i < array.Length; i++)
        {
            try
            {
                EntityManager.GetBuffer <CollisionList>(array[i]);
            }
            catch (Exception e)
            {
                EntityManager.AddBuffer <CollisionList>(_componentGroup.GetEntityArray()[i]);
            }
        }

        return(new CircleColliderJob()
        {
            PositionArray = _componentGroup.GetComponentDataArray <Position>(),
            CircleColliderArray = _componentGroup.GetComponentDataArray <CircleCollider>(),
            TagArray = _componentGroup.GetComponentDataArray <Tag>(),
            Buffer = GetBufferFromEntity <CollisionList>()
        }
               .Schedule(this, inputDeps));
    }
    protected override void OnUpdate()
    {
        var defaultComponent = EntityManager.GetSharedComponentData <RenderMesh>(group.GetEntityArray()[0]);
        int length           = group.GetEntityArray().Length;
        var entities         = group.GetEntityArray().ToArray();

        for (int i = 0; i < length; ++i)
        {
            var newComponent = new RenderMesh();
            newComponent.layer    = defaultComponent.layer;
            newComponent.mesh     = defaultComponent.mesh;
            newComponent.material = new Material(defaultComponent.material);
            newComponent.subMesh  = defaultComponent.subMesh;
            var entity = entities[i];
            newComponent.material.color = Random.ColorHSV();
            if (newComponent.material.color.r < 0.2f &&
                newComponent.material.color.g < 0.2f &&
                newComponent.material.color.b < 0.2f)
            {
                newComponent.material.color += Random.ColorHSV();
            }
            EntityManager.SetSharedComponentData(entity, newComponent);
            EntityManager.RemoveComponent <RandomizeColorData>(entity);
        }
    }
Exemplo n.º 6
0
            protected override JobHandle OnUpdate(JobHandle inputDeps)
            {
                var geneticTrainerID = new List <GeneticTrainerIDComponentData>(10);

                EntityManager.GetAllUniqueSharedComponentData(geneticTrainerID);

                var transforms = geneticTrainerGroup.GetComponentArray <Transform>();

                for (int i = 0, length = transforms.Length; i < length; ++i)
                {
                    var geneticTrainer = transforms[i].GetComponent <GeneticTrainerComponent>();
                    neuralNetworkToResetGroup.SetFilter(geneticTrainerID[i]);                    //may need to change if more than one
                    if (neuralNetworkToResetGroup.GetEntityArray().Length != 0)
                    {
                        if (neuralNetworkToResetGroup.GetEntityArray().Length == geneticTrainer.pool.Length)
                        {
                            var neuralNetwork = EntityManager.GetSharedComponentData <NeuralNetworkComponentData>(neuralNetworkToResetGroup.GetEntityArray()[0]);
                            ComputeBestNetwork(geneticTrainer, neuralNetwork);
                            var           randomNumbers = new NativeArray <float>(neuralNetwork.Connections.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
                            var           randomRanges  = new NativeArray <float>(neuralNetwork.Connections.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
                            var           rangeByGain   = (geneticTrainer.Value.maxPoint / geneticTrainer.bestOverall[0].Item1) * neuralNetwork.WeightRange;
                            System.Random random        = new System.Random();
                            for (int j = 0, numberCount = neuralNetwork.Connections.Length; j < numberCount; ++j)
                            {
                                var weightA = geneticTrainer.bestOverall[0].Item2[j % neuralNetwork.ConnectionCountPerNetwork];
                                var weightB = geneticTrainer.bestOverall[1].Item2[j % neuralNetwork.ConnectionCountPerNetwork];
                                randomNumbers[j] = (float)random.NextDouble();
                                randomRanges[j]  = UnityEngine.Random.Range(math.min(weightA - rangeByGain, weightB - rangeByGain),
                                                                            math.max(weightA + rangeByGain, weightB + rangeByGain));
                            }
                            var percentA = geneticTrainer.bestOverall[0].Item1 / (geneticTrainer.bestOverall[0].Item1 + geneticTrainer.bestOverall[1].Item1);
                            var percentB = 1.0f - percentA;
                            var job      = new FusionBestNeuralNetwork {
                                Connections      = neuralNetwork.Connections,
                                Mutation         = geneticTrainer.Value.Mutation,
                                PercentA         = percentA,
                                PercentB         = percentB,
                                RandomNumbers    = randomNumbers,
                                RandomRanges     = randomRanges,
                                ScoreConnectionA = geneticTrainer.bestOverall[0],
                                ScoreConnectionB = geneticTrainer.bestOverall[1]
                            };

                            Utils.Utils.ScheduleBatchedJobAndComplete(job.ScheduleBatch(neuralNetwork.Connections.Length, neuralNetwork.ConnectionCountPerNetwork, inputDeps));

                            geneticTrainer.scores.Clear();
                            EntityManager.AddComponentData(geneticTrainer.GetComponent <GameObjectEntity>().Entity, new ResetPoolFromPresetComponentData());
                            var data = geneticTrainer.Value;
                            data.Generation     += 1;
                            geneticTrainer.Value = data;
                            geneticTrainer.generationCount.text = (data.Generation).ToString();
                        }
                    }
                }
                return(inputDeps);
            }
        private JobHandle ScheduleMembershipDebugJob(JobHandle inputDeps)
        {
            var handle = inputDeps;
            var length = _membershipDebugGroup.CalculateLength();

            if (length > 0)
            {
                handle = new MembershipDebugJob
                {
                    EntityArray   = _membershipDebugGroup.GetEntityArray(),
                    PhysicsObject = _membershipDebugGroup.GetSharedComponentDataArray <PhysicsObject>()[0]
                }.Schedule(length, 64, inputDeps);
            }
            return(handle);
        }
Exemplo n.º 8
0
    protected override void OnUpdate()
    {
        // Remove all predicted projectiles that should have been acknowledged by now
        var predictedProjectileArray       = PredictedProjectileGroup.GetComponentDataArray <PredictedProjectile>();
        var predictedProjectileEntityArray = PredictedProjectileGroup.GetEntityArray();

        for (var i = 0; i < predictedProjectileArray.Length; i++)
        {
            var predictedEntity = predictedProjectileArray[i];

            if (predictedEntity.startTick >= m_world.lastServerTick)
            {
                continue;
            }

            var entity = predictedProjectileEntityArray[i];
            PostUpdateCommands.AddComponent(entity, new DespawningEntity());

//            var gameObject = EntityManager.GetComponentObject<Transform>(predictedProjectileEntityArray[i]).gameObject;
//            m_world.RequestDespawn(gameObject, PostUpdateCommands);

            if (ProjectileModuleClient.logInfo.IntValue > 0)
            {
                GameDebug.Log(string.Format("<color=red>Predicted projectile {0} destroyed as it was not verified. startTick:{1}]</color>", entity, predictedEntity.startTick));
            }
        }
    }
Exemplo n.º 9
0
    protected override void OnUpdate()
    {
        Profiler.BeginSample("HandleCharacterSpawnRequests");
        var requestArray = SpawnGroup.GetComponentDataArray <CharacterSpawnRequest>();

        if (requestArray.Length == 0)
        {
            return;
        }

        var requestEntityArray = SpawnGroup.GetEntityArray();

        // Copy requests as spawning will invalidate Group
        var spawnRequests = new CharacterSpawnRequest[requestArray.Length];

        for (var i = 0; i < requestArray.Length; i++)
        {
            spawnRequests[i] = requestArray[i];
            PostUpdateCommands.DestroyEntity(requestEntityArray[i]);
        }

        for (var i = 0; i < spawnRequests.Length; i++)
        {
            var request     = spawnRequests[i];
            var playerState = EntityManager.GetComponentObject <PlayerState>(request.playerEntity);
            var character   = SpawnCharacter(m_world, playerState, request.position, request.rotation, request.characterType, m_ResourceManager);
            playerState.controlledEntity = character.gameObject.GetComponent <GameObjectEntity>().Entity;
        }
        Profiler.EndSample();
    }
Exemplo n.º 10
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var transforms = m_InitialTransformGroup.GetTransformAccessArray();
            var entities   = m_InitialTransformGroup.GetEntityArray();

            var transformStashes   = new NativeArray <TransformStash>(transforms.length, Allocator.TempJob);
            var stashTransformsJob = new StashTransforms
            {
                transformStashes = transformStashes
            };

            var stashTransformsJobHandle = stashTransformsJob.Schedule(transforms, inputDeps);

            var copyTransformsJob = new CopyTransforms
            {
                positions        = m_Positions,
                rotations        = m_Rotations,
                localPositions   = m_LocalPositions,
                localRotations   = m_LocalRotations,
                transformStashes = transformStashes,
                entities         = entities
            };

            var copyTransformsJobHandle = copyTransformsJob.Schedule(transformStashes.Length, 64, stashTransformsJobHandle);

            var removeComponentsJob = new RemoveCopyInitialTransformFromGameObjectComponent
            {
                entities            = entities,
                entityCommandBuffer = m_EndFrameBarrier.CreateCommandBuffer()
            };
            var removeComponentsJobHandle = removeComponentsJob.Schedule(copyTransformsJobHandle);

            return(removeComponentsJobHandle);
        }
Exemplo n.º 11
0
        protected override void OnUpdate()
        {
            var p_entity        = player.GetEntityArray();
            var p_movementInput = player.GetComponentDataArray <MovementInput> ();
            var p_walkSpeed     = player.GetComponentDataArray <WalkSpeed> ();
            var p_rigidBody2d   = player.GetComponentArray <Rigidbody2D> ();

            var dt = Time.deltaTime;

            for (int i = 0; i < player.CalculateLength(); i++)
            {
                if (p_movementInput[i].Value.Equals(Vector2.zero))
                {
                    continue;
                }

                p_rigidBody2d[i].velocity = new Vector2(
                    p_movementInput[i].Value.x * p_walkSpeed[i].Value,
                    p_rigidBody2d[i].velocity.y
                    );
                // Debug.Log(p_rigidBody2d[i].velocity);

                // Old Movement System:
                // p_transform[i].position = Vector3.Lerp(
                //   p_transform[i].position,
                //   p_transform[i].position + new Vector3(p_movementInput[i].Value.x, p_movementInput[i].Value.y, 0),
                //   p_walkSpeed[i].Value * dt
                // );
            }
        }
    protected override void OnUpdate()
    {
        // Add entities that needs change to buffer (as we cant destroy/create while iterating)
        var gameEntityTypeArray = Group.GetComponentDataArray <PresentationOwnerData>();
        var entityArray         = Group.GetEntityArray();

        m_entityBuffer.Clear();
        m_typeDataBuffer.Clear();
        for (int i = 0; i < gameEntityTypeArray.Length; i++)
        {
            var typeData = gameEntityTypeArray[i];

            if (typeData.variation == typeData.currentVariation)
            {
                continue;
            }

            m_entityBuffer.Add(entityArray[i]);
            m_typeDataBuffer.Add(typeData);
        }

        for (int i = 0; i < m_entityBuffer.Count; i++)
        {
            var entity   = m_entityBuffer[i];
            var typeData = m_typeDataBuffer[i];

            var replicatedData = EntityManager.GetComponentData <ReplicatedEntityData>(entity);

            WeakAssetReference presentationGuid;
            var found = m_presentationRegistry.GetPresentation(replicatedData.assetGuid, out presentationGuid);

            if (!found)
            {
                continue;
            }



//            var registryEntry = m_assetRegistry.GetEntry(replicatedData.assetGuid);
//
//            if (registryEntry == null)
//                continue;
//
//            if (registryEntry.factory == null)
//                continue;

            //var presentation = registryEntry.factory.CreateVariation(EntityManager, m_resourceManager, m_world, entity, 0);

            var presentation = m_resourceManager.CreateEntity(presentationGuid);
            GameDebug.Assert(presentation != Entity.Null, "failed to create presentation");


            typeData.currentVariation       = typeData.variation;
            typeData.currentVariationEntity = presentation;
            EntityManager.SetComponentData(entity, typeData);

            var presentationEntity = EntityManager.GetComponentObject <PresentationEntity>(presentation);
            presentationEntity.ownerEntity = entity;
        }
    }
Exemplo n.º 13
0
        protected override void OnUpdate()
        {
            var positions = _teleportComponentGroup.GetComponentDataArray <VrTeleportPosition>();

            if (positions.Length == 0)
            {
                return;
            }

            var vrPlayerPos      = _vrPlayerGroup.GetComponentDataArray <Position>();
            var vrPlayerPosition = vrPlayerPos[0];
            var vrCameraPos      = _vrCameraGroup.GetComponentDataArray <Position>();
            var diff             = vrCameraPos[0].Value - vrPlayerPosition.Value;

            diff.y = 0f;
            var newPosition = positions[0].position - diff;

            newPosition.y = vrPlayerPosition.Value.y;
            // Update pos
            vrPlayerPos[0] = new Position()
            {
                Value = newPosition
            };
            // Delete entity
            PostUpdateCommands.DestroyEntity(_teleportComponentGroup.GetEntityArray()[0]);
        }
    protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        if (!initialized)
        {
            Initialize();
            initialized = true;
        }

        sphereRequestsGroup = GetComponentGroup(typeof(SphereRequest));
        if (sphereRequestsGroup.CalculateLength() == 0)
        {
            return(inputDeps);
        }

        ComponentDataArray <SphereRequest> sphereRequests = sphereRequestsGroup.GetComponentDataArray <SphereRequest>();
        JobHandle sgj = new SphereGenerateSystem.SphereGenerateJob {
            requests      = sphereRequests,
            commandBuffer = generateBarrier.CreateCommandBuffer().ToConcurrent(),
        }.Schedule(sphereRequests.Length, 64, inputDeps);

        EntityArray sphereRequestEntities = sphereRequestsGroup.GetEntityArray();
        JobHandle   srcj = new SphereRequestCleanupJob {
            entities      = sphereRequestEntities,
            commandBuffer = cleanupBarrier.CreateCommandBuffer().ToConcurrent(),
        }.Schedule(sphereRequestEntities.Length, 64, sgj);

        return(srcj);
    }
Exemplo n.º 15
0
        protected override void OnUpdate()
        {
            var b_entity   = boost.GetEntityArray();
            var b_timer    = boost.GetComponentDataArray <Boosting>();
            var b_cooldown = boost.GetComponentDataArray <BoostCooldown>();

            for (int i = 0; i < boost.CalculateLength(); i++)
            {
                if (b_timer[i].Value > 0)
                {
                    continue;
                }

                PostUpdateCommands.RemoveComponent <Boosting>(b_entity[i]);
                PostUpdateCommands.AddComponent <BoostEnd>(
                    b_entity[i],
                    new BoostEnd {
                    Value = b_cooldown[i].Value
                }
                    );


                /* ----------------- DEVELOPER SETTINGS - REMOVE ME -------------------- */
                if (Bootstrap.DeveloperSettings.DebugBoostState)
                {
                    Debug.Log($"<color=green>{this.GetType()}</color> BoostEnd");
                }
                /* ----------------- DEVELOPER SETTINGS - REMOVE ME -------------------- */
            }
        }
Exemplo n.º 16
0
    protected override void OnUpdate()
    {
        var requestArray = Group.GetComponentDataArray <NameboardSpawnRequest>();
        var entityArray  = Group.GetEntityArray();

        var spawnRequests = new NameboardSpawnRequest[requestArray.Length];

        for (var i = 0; i < requestArray.Length; i++)
        {
            spawnRequests[i] = requestArray[i];
            PostUpdateCommands.DestroyEntity(entityArray[i]);
        }

        for (var i = 0; i < spawnRequests.Length; i++)
        {
            var request = spawnRequests[i];
            GameObjectEntity nameboardGOE = m_world.Spawn <GameObjectEntity>(ResMgr.GetInstance().GetPrefab("Nameboard"));
            nameboardGOE.transform.SetParent(nameboardCanvas);
            var    nameboardBehav = nameboardGOE.GetComponent <Nameboard>();
            var    uid            = EntityManager.GetComponentData <UID>(request.Owner);
            string name           = SceneMgr.Instance.GetNameByUID(uid.Value);
            nameboardBehav.Name = name;
            var isMainRole = RoleMgr.GetInstance().IsMainRoleEntity(request.Owner);
            nameboardBehav.CurColorStyle = isMainRole ? Nameboard.ColorStyle.Green : Nameboard.ColorStyle.Red;
            if (EntityManager.HasComponent <NameboardData>(request.Owner))
            {
                var nameboardData = EntityManager.GetComponentData <NameboardData>(request.Owner);
                nameboardData.UIEntity   = nameboardGOE.Entity;
                nameboardData.UIResState = NameboardData.ResState.Loaded;
                EntityManager.SetComponentData(request.Owner, nameboardData);
            }
        }
    }
    private void NetworkManager_OnDisconnect()
    {
        ComponentGroup group = GetComponentGroup(ComponentType.Create <NetworkSyncState>(), ComponentType.Create <NetworkSync>());
        ComponentDataArray <NetworkSyncState> networkSyncStateComponents = group.GetComponentDataArray <NetworkSyncState>();
        ComponentDataArray <NetworkSync>      networkSyncComponents      = group.GetComponentDataArray <NetworkSync>();
        EntityArray entities = group.GetEntityArray();

        for (int i = 0; i < entities.Length; i++)
        {
            Entity entity = entities[i];
            PostUpdateCommands.RemoveComponent <NetworkSyncState>(entity);
            if (networkSyncStateComponents[i].actorId != networkManager.LocalPlayerID && networkSyncComponents[i].authority != Authority.Scene)
            {
                PostUpdateCommands.DestroyEntity(entity);
                if (EntityManager.HasComponent <Transform>(entity))
                {
                    gameObjectsToDestroy.Add(EntityManager.GetComponentObject <Transform>(entity).gameObject);
                }
            }
            else if (EntityManager.HasComponent <NetworktAuthority>(entity))
            {
                PostUpdateCommands.RemoveComponent <NetworktAuthority>(entity);
            }
            for (int j = 0; j < RemoveComponentOnDestroyEntityMethods.Count; j++)
            {
                RemoveComponentOnDestroyEntityMethods[j].Invoke(this, entity);
            }
        }
    }
Exemplo n.º 18
0
    protected override void OnUpdate()
    {
        // Debug.Log("on OnUpdate role looks system");
        var requestArray = SpawnGroup.GetComponentDataArray <RoleLooksSpawnRequest>();

        if (requestArray.Length == 0)
        {
            return;
        }

        var requestEntityArray = SpawnGroup.GetEntityArray();

        // Copy requests as spawning will invalidate Group
        var spawnRequests = new RoleLooksSpawnRequest[requestArray.Length];

        for (var i = 0; i < requestArray.Length; i++)
        {
            spawnRequests[i] = requestArray[i];
            PostUpdateCommands.DestroyEntity(requestEntityArray[i]);
        }

        for (var i = 0; i < spawnRequests.Length; i++)
        {
            var request = spawnRequests[i];
            // var playerState = EntityManager.GetComponentObject<RoleState>(request.ownerEntity);
            var looksInfo = EntityManager.GetComponentData <LooksInfo>(request.ownerEntity);
            int career    = request.career;
            int body      = request.body;
            int hair      = request.hair;
            Debug.Log("body : " + body + " hair:" + hair);
            int bodyID = 1000 + career * 100 + body;
            int hairID = 1000 + career * 100 + hair;
            // string careerPath = UnityMMO.GameConst.GetRoleCareerResPath(career);
            string roleResPath = "Assets/AssetBundleRes/role";
            string bodyPath    = roleResPath + "/body/body_" + bodyID + "/model_body_" + bodyID + ".prefab";
            string hairPath    = roleResPath + "/hair/hair_" + hairID + "/model_hair_" + hairID + ".prefab";
            Debug.Log("SpawnRoleLooks bodyPath : " + bodyPath);
            XLuaFramework.ResourceManager.GetInstance().LoadAsset <GameObject>(bodyPath, delegate(UnityEngine.Object[] objs) {
                if (objs != null && objs.Length > 0)
                {
                    GameObject bodyObj        = objs[0] as GameObject;
                    GameObjectEntity bodyOE   = m_world.Spawn <GameObjectEntity>(bodyObj);
                    var parentTrans           = EntityManager.GetComponentObject <Transform>(request.ownerEntity);
                    parentTrans.localPosition = request.position;
                    bodyOE.transform.SetParent(parentTrans);
                    bodyOE.transform.localPosition = Vector3.zero;
                    bodyOE.transform.localRotation = Quaternion.identity;
                    LoadHair(hairPath, bodyOE.transform.Find("head"));
                    Debug.Log("load ok role model");
                    looksInfo.CurState    = LooksInfo.State.Loaded;
                    looksInfo.LooksEntity = bodyOE.Entity;
                    EntityManager.SetComponentData <LooksInfo>(request.ownerEntity, looksInfo);
                }
                else
                {
                    Debug.LogError("cannot fine file " + bodyPath);
                }
            });
        }
    }
Exemplo n.º 19
0
        protected override void OnUpdate()
        {
            var entities         = cubeGroup.GetEntityArray();
            var cubeVelocityData = cubeGroup.GetComponentDataArray <CubeTargetVelocity.Component>();

            for (var i = 0; i < cubeVelocityData.Length; i++)
            {
                var rigidbody     = EntityManager.GetComponentObject <Rigidbody>(entities[i]);
                var cubeComponent = cubeVelocityData[i];

                if (cubeComponent.TargetVelocity.X > 0 && rigidbody.position.x - origin.x > 10)
                {
                    cubeComponent.TargetVelocity = new Vector3f {
                        X = -2.0f
                    };
                    cubeVelocityData[i] = cubeComponent;
                }
                else if (cubeComponent.TargetVelocity.X < 0 && rigidbody.position.x - origin.x < -10)
                {
                    cubeComponent.TargetVelocity = new Vector3f {
                        X = 2.0f
                    };
                    cubeVelocityData[i] = cubeComponent;
                }

                rigidbody.MovePosition(rigidbody.position + cubeComponent.TargetVelocity.ToUnityVector() * Time.fixedDeltaTime);
            }
        }
            protected override JobHandle OnUpdate(JobHandle inputDeps)
            {
                var neuralNetworks = new List <NeuralNetworkComponentData>(20);

                EntityManager.GetAllUniqueSharedComponentData(neuralNetworks);
                for (int i = 0, length = neuralNetworks.Count; i < length; ++i)
                {
                    var neuralNetwork = neuralNetworks[i];
                    NeuralNetworkGroup.SetFilter(neuralNetwork);
                    if (NeuralNetworkGroup.GetEntityArray().Length != 0)
                    {
                        var job = new UpdateNeuralNetwork {
                            ResultCountPerNetwork = neuralNetwork.ResultCountPerNetwork,
                            Inputs               = neuralNetwork.Inputs,
                            Connections          = neuralNetwork.Connections,
                            Results              = neuralNetwork.Results,
                            Poise                = neuralNetwork.Poise,
                            hiddenLayerFunction  = neuralNetwork.HiddenLayerThresholdFunction,
                            outputLayerFunction  = neuralNetwork.OutputThresholdFunction,
                            PerceptronPerLayer   = neuralNetwork.PerceptronPerLayerCount,
                            ConnectionPerNetwork = neuralNetwork.ConnectionCountPerNetwork,
                            NeuralNetworkIDs     = NeuralNetworkGroup.GetComponentDataArray <NeuralNetworkIDComponentData>()
                        };
                        Utils.Utils.ScheduleBatchedJobAndComplete(job.Schedule(NeuralNetworkGroup.GetComponentDataArray <NeuralNetworkIDComponentData>().Length, 64, inputDeps));
                    }
                }
                return(inputDeps);
            }
Exemplo n.º 21
0
        protected override void OnUpdate()
        {
            m_mapDataEntities = m_mapDataGroup.GetEntityArray();
            m_DataGroupIndex  = m_mapDataGroup.GetComponentDataArray <MapIndexComponent>();
            m_DataGroupData   = m_mapDataGroup.GetComponentDataArray <MapDataComponent>();

            for (int i = 0; i < 128 * 128; i++)
            {
                m_rawFloatData[m_DataGroupIndex[i].Value.x, m_DataGroupIndex[i].Value.y]    = m_DataGroupData[i].Value;
                m_entityIndexData[m_DataGroupIndex[i].Value.x, m_DataGroupIndex[i].Value.y] = i;
            }

            for (int w = 0; w < 128; w++)
            {
                for (int h = 0; h < 128; h++)
                {
                    //------ INNER LOOP ------
                    for (int wx = -1; wx <= 1; wx++)
                    {
                        for (int hx = -1; hx <= 1; hx++)
                        {
                        }
                    }
                    //------ INNER LOOP ------
                }
            }

            m_mapDataGroup.Dispose();

            Unity.Entities.World.Active.GetExistingManager <MetaDataSystem>().Enabled = false;
        }
Exemplo n.º 22
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var transforms = m_TransformGroup.GetTransformAccessArray();
            var entities   = m_TransformGroup.GetEntityArray();

            var transformStashes   = new NativeArray <TransformStash>(transforms.Length, Allocator.TempJob);
            var stashTransformsJob = new StashTransforms
            {
                transformStashes = transformStashes
            };

            var stashTransformsJobHandle = stashTransformsJob.Schedule(transforms, inputDeps);

            var copyTransformsJob = new CopyTransforms
            {
                positions        = m_Positions,
                rotations        = m_Rotations,
                localPositions   = m_LocalPositions,
                localRotations   = m_LocalRotations,
                transformStashes = transformStashes,
                entities         = entities
            };

            return(copyTransformsJob.Schedule(transformStashes.Length, 64, stashTransformsJobHandle));
        }
Exemplo n.º 23
0
    private void AddedComponents <T>() where T : struct, IComponentData
    {
        ComponentType          componentType = ComponentType.Create <T>();
        ComponentGroup         group         = GetComponentGroup(ComponentType.Create <NetworkSyncState>(), componentType, ComponentType.Subtractive <NetworkComponentState <T> >(), ComponentType.Create <NetworktAuthority>());
        ComponentDataArray <T> components    = group.GetComponentDataArray <T>();
        ComponentDataArray <NetworkSyncState> networkSyncStateComponents = group.GetComponentDataArray <NetworkSyncState>();
        EntityArray entities = group.GetEntityArray();

        NetworkMemberInfo[] networkMemberInfos = reflectionUtility.GetNetworkMemberInfo(componentType);

        for (int i = 0; i < entities.Length; i++)
        {
            NetworkSyncState       networkSyncState = networkSyncStateComponents[i];
            ComponentDataContainer componentData    = new ComponentDataContainer {
                ComponentTypeId = reflectionUtility.GetComponentTypeID(componentType)
            };

            T component = components[i];
            for (int j = 0; j < networkMemberInfos.Length; j++)
            {
                componentData.MemberData.Add(new MemberDataContainer {
                    MemberId = j,
                    Data     = (networkMemberInfos[j] as NetworkMemberInfo <T>).GetValue(component),
                });
            }


            ownNetworkSendMessageUtility.AddComponent(entities[i], networkSyncState.actorId, networkSyncState.networkId, componentData);
            AllNetworkSendMessageUtility.AddComponent(entities[i], networkSyncState.actorId, networkSyncState.networkId, componentData);

            int numberOfMembers = reflectionUtility.GetNumberOfMembers(componentType.GetManagedType());
            networkFactory.CreateNetworkComponentData <T>(entities[i], numberOfMembers);
            PostUpdateCommands.AddComponent(entities[i], new NetworkComponentState <T>());
        }
    }
Exemplo n.º 24
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            // Debug.LogWarning ( "Col" ) ;
            Bounds checkBounds = new Bounds()
            {
                center = new float3(10, 2, 10),
                size   = new float3(1, 1, 1) * 5  // Total size of boundry
            };


            EntityArray a_entities     = group.GetEntityArray();
            Entity      rootNodeEntity = a_entities [0];

            ComponentDataArray <RootNodeData> a_rootNodeData = group.GetComponentDataArray <RootNodeData> ( );
            RootNodeData rootNodeData = a_rootNodeData [0];

            BufferFromEntity <NodeBufferElement> nodeBufferElement = GetBufferFromEntity <NodeBufferElement> ();
            DynamicBuffer <NodeBufferElement>    a_nodesBuffer     = nodeBufferElement [rootNodeEntity];



            Bounds maxBouds = _GetOctreeMaxBounds(rootNodeData, a_nodesBuffer);


            return(base.OnUpdate(inputDeps));
        }
Exemplo n.º 25
0
    protected override void OnUpdate()
    {
        var time                = m_world.worldTime;
        var entityArray         = ProjectileGroup.GetEntityArray();
        var projectileDataArray = ProjectileGroup.GetComponentDataArray <ProjectileData>();

        for (var i = 0; i < projectileDataArray.Length; i++)
        {
            var projectileData = projectileDataArray[i];

            if (projectileData.impactTick > 0)
            {
                if (m_world.worldTime.DurationSinceTick(projectileData.impactTick) > 1.0f)
                {
                    PostUpdateCommands.AddComponent(entityArray[i], new DespawningEntity());
                }
                continue;
            }

            var age   = time.DurationSinceTick(projectileData.startTick);
            var toOld = age > projectileData.maxAge;
            if (toOld)
            {
                PostUpdateCommands.AddComponent(entityArray[i], new DespawningEntity());
            }
        }
    }
Exemplo n.º 26
0
    protected override void OnUpdate()
    {
        var entityArray  = Group.GetEntityArray();
        var requestArray = Group.GetComponentDataArray <ProjectileRequest>();

        // Copy requests as spawning will invalidate Group
        var requests = new ProjectileRequest[requestArray.Length];

        for (var i = 0; i < requestArray.Length; i++)
        {
            requests[i] = requestArray[i];
            PostUpdateCommands.DestroyEntity(entityArray[i]);
        }

        // Handle requests
        foreach (var request in requests)
        {
            var projectileEntity = m_settings.projectileFactory.Create(EntityManager, -1);

            var projectileData = EntityManager.GetComponentData <ProjectileData>(projectileEntity);

            projectileData.SetupFromRequest(request);
            var projectileRegistry = m_resourceSystem.GetResourceRegistry <ProjectileRegistry>();
            projectileData.Initialize(projectileRegistry);

            PostUpdateCommands.SetComponent(projectileEntity, projectileData);
            PostUpdateCommands.AddComponent(projectileEntity, new UpdateProjectileFlag());
        }
    }
    private void NetworkManager_OnMasterClientChanged(int oldMasterClientId, int newMasterClientId)
    {
        if (networkManager.LocalPlayerID == oldMasterClientId)
        {
            ComponentGroup group    = GetComponentGroup(ComponentType.Create <NetworkSyncState>(), ComponentType.Create <NetworkSync>(), ComponentType.Create <NetworktAuthority>());
            EntityArray    entities = group.GetEntityArray();
            ComponentDataArray <NetworkSync> networkSync = group.GetComponentDataArray <NetworkSync>();
            for (int i = 0; i < entities.Length; i++)
            {
                if (networkSync[i].authority != Authority.Client)
                {
                    PostUpdateCommands.RemoveComponent <NetworktAuthority>(entities[i]);
                }
            }
        }

        if (networkManager.LocalPlayerID == newMasterClientId)
        {
            ComponentGroup group = GetComponentGroup(ComponentType.Create <NetworkSyncState>(), ComponentType.Create <NetworkSync>(), ComponentType.Subtractive <NetworktAuthority>());
            ComponentDataArray <NetworkSync> networkSync = group.GetComponentDataArray <NetworkSync>();
            EntityArray entities = group.GetEntityArray();
            for (int i = 0; i < entities.Length; i++)
            {
                if (networkSync[i].authority != Authority.Client)
                {
                    PostUpdateCommands.AddComponent(entities[i], new NetworktAuthority());
                }
            }
        }
    }
Exemplo n.º 28
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            EntityCommandBuffer ecb        = barrier.CreateCommandBuffer();
            EntityArray         a_entities = group.GetEntityArray();

            for (int i = 0; i < a_entities.Length; ++i)
            {
                Entity entity = a_entities [i];

                // Renderer
                Common.previousMeshInstanceRenderer = entityManager.GetSharedComponentData <MeshInstanceRenderer> (entity);

                // Assign new renderrer
                Unity.Rendering.MeshInstanceRenderer renderer = Bootstrap.highlightRenderer;

                ecb.SetSharedComponent <MeshInstanceRenderer> (entity, renderer);    // replace renderer with material and mesh

                ecb.RemoveComponent <SetHighlightTag> (entity);
            }


            /*
             * JobHandle job = new Job
             * {
             *  ecb = barrier.CreateCommandBuffer (),
             *  entityManager = entityManager,
             *  a_entities = group.GetEntityArray (),
             *
             * }.Schedule (inputDeps) ;
             *
             * return job ;
             */

            return(inputDeps);
        }
Exemplo n.º 29
0
    protected override void OnUpdate()
    {
        // Need a list because slot 0 is for the default value of SharedComponentData.
        // It's only there because of API limitations. We only care about the SharedComponentData in slot 1.
        var uniqueSpawners = new List <HelloSpawner>(2);

        // Get all the spawners in the scene.
        // In this case, there's only 1, but you could potentially have several spawners with, for example, different prefabs.
        EntityManager.GetAllUniqueSharedComponentData(uniqueSpawners);
        HelloSpawner spawner = uniqueSpawners[1];

        // Filter the component group so we're only looking at entities with shared component data we set in the editor.
        // In this case, it's only 1 entity, and it corresponds to the CubeSpawner game object in the scene.
        m_Spawners.SetFilter(spawner);

        // Create an entity from the prefab set on the spawner component.
        // This can't be called from a job, which is why we're doing this in a ComponentSystem on the main thread.
        Entity spawnedCubeEntity = EntityManager.Instantiate(spawner.prefab);

        // Set the position of the newly spawned cube to the origin.
        var position = new Position
        {
            Value = float3.zero
        };

        EntityManager.SetComponentData(spawnedCubeEntity, position);

        // Destroy the spawner so this system only runs once.
        var spawnerEntity = m_Spawners.GetEntityArray()[0];

        EntityManager.DestroyEntity(spawnerEntity);
    }
Exemplo n.º 30
0
    protected override void OnUpdate()
    {
        float dt           = Time.deltaTime;
        var   requestArray = RequestGroup.GetComponentDataArray <SkillSpawnRequest>();

        if (requestArray.Length == 0)
        {
            return;
        }

        var requestEntityArray = RequestGroup.GetEntityArray();

        // Copy requests as spawning will invalidate Group
        var requests = new SkillSpawnRequest[requestArray.Length];

        for (var i = 0; i < requestArray.Length; i++)
        {
            requests[i] = requestArray[i];
            PostUpdateCommands.DestroyEntity(requestEntityArray[i]);
        }

        for (var i = 0; i < requests.Length; i++)
        {
        }
    }