protected override void OnCreateManager( )
        {
            base.OnCreateManager( );


            // Test octrees
            // Many octrees, to ray pair
            // Where each octree has one ray entity target.
            // Results return number of colliding instance
            // index to list of the colliding instances IDs,
            // and distance to the nearest instance.

            // Toggle manually only one example systems at the time
            if (!(ExampleSelector.selector == Selector.GetCollidingRayInstancesSystem_Octrees2Ray))
            {
                return;                                                                                          // Early exit
            }
            Debug.Log("Start Test Get Colliding Ray Instances System");


            // Create new octree
            // See arguments details (names) of _CreateNewOctree and coresponding octree readme file.
            EntityCommandBuffer ecb = barrier.CreateCommandBuffer();



            // Many octrees, to single, or many rays
            // Where each octree has one ray entity target.

            // ***** Example Ray Components For Collision Checks ***** //

            // Test ray entity
            // for each octree
            Entity rayEntity = EntityManager.CreateEntity();

            EntityManager.AddComponentData(rayEntity, new IsActiveTag());
            EntityManager.AddComponentData(rayEntity, new RayData());
            EntityManager.AddComponentData(rayEntity, new RayMaxDistanceData()
            {
                f = 1000f
            });



            // ***** Initialize Octree ***** //

            int i_octreesCount = 1;  // Example of x octrees.
            // int i_octreesCount = 100 ; // Example of x octrees.

            NativeArray <Entity> a_entities = new NativeArray <Entity> (i_octreesCount, Allocator.Temp);

            for (int i_octreeEntityIndex = 0; i_octreeEntityIndex < i_octreesCount; i_octreeEntityIndex++)
            {
                ecb = barrier.CreateCommandBuffer();
                Entity newOctreeEntity = EntityManager.CreateEntity( );

                AddNewOctreeSystem._CreateNewOctree(ecb, newOctreeEntity, 8, float3.zero, 1, 1, 1);

                EntityManager.AddComponent(newOctreeEntity, typeof(GetCollidingRayInstancesTag));

                EntityManager.AddComponentData(newOctreeEntity, new IsCollidingData());      // Check bounds collision with octree and return colliding instances.
                EntityManager.AddBuffer <CollisionInstancesBufferElement> (newOctreeEntity);


                // Assign target ray entity, to octree entity
                Entity octreeEntity = newOctreeEntity;

                // Check bounds collision with octree and return colliding instances.
                EntityManager.AddComponentData(octreeEntity, new RayEntityPair4CollisionData()
                {
                    ray2CheckEntity = rayEntity
                });



                // ***** Example Components To Add / Remove Instance ***** //

                // Example of adding and removing some instanceses, hence entity blocks.


                // Add

                int i_instances2AddCount = ExampleSelector.i_generateInstanceInOctreeCount;  // Example of x octrees instances. // 10000
                NativeArray <Entity> a_instanceEntities = Common._CreateInstencesArray(EntityManager, i_instances2AddCount);

                // Request to add n instances.
                // User is responsible to ensure, that instances IDs are unique in the octrtree.
                EntityManager.AddBuffer <AddInstanceBufferElement> (octreeEntity);    // Once system executed and instances were added, buffer will be deleted.
                BufferFromEntity <AddInstanceBufferElement> addInstanceBufferElement = GetBufferFromEntity <AddInstanceBufferElement> ();

                Common._RequesAddInstances(ecb, octreeEntity, addInstanceBufferElement, ref a_instanceEntities, i_instances2AddCount);



                // Remove

                EntityManager.AddBuffer <RemoveInstanceBufferElement> (octreeEntity);    // Once system executed and instances were removed, component will be deleted.
                BufferFromEntity <RemoveInstanceBufferElement> removeInstanceBufferElement = GetBufferFromEntity <RemoveInstanceBufferElement> ();

                // Request to remove some instances
                // Se inside method, for details
                int i_instances2RemoveCount = ExampleSelector.i_deleteInstanceInOctreeCount = 53;  // Example of x octrees instances / entities to delete. // 53
                Common._RequestRemoveInstances(ecb, octreeEntity, removeInstanceBufferElement, ref a_instanceEntities, i_instances2RemoveCount);


                // Ensure example array is disposed.
                a_instanceEntities.Dispose();
            } // for
        }