Beispiel #1
0
        public Entity Unregister(int entityId)
        {
            var entity = replicatedData[entityId].Entity;

            if (entity == Entity.Null)
            {
                return(Entity.Null);
            }
            GameDebug.Assert(entity != Entity.Null, "Unregister. ReplicatedData has has entity set");

            if (showInfo.IntValue > 0)
            {
                if (entityManager.HasComponent <Transform>(entity))
                {
                    GameDebug.Log("RepEntity UNREGISTER NetID:" + entityId + " Entity:" + entity + " GameObject:" +
                                  entityManager.GetComponentObject <Transform>(entity).name);
                }
                else
                {
                    GameDebug.Log("RepEntity UNREGISTER NetID:" + entityId + " Entity:" + entity);
                }
            }

            replicatedData[entityId] = new ReplicatedData();
            return(entity);
        }
Beispiel #2
0
    public void Register(int entityId, Entity entity, INetworkSerializable[] serializableArray)
    {
        // Grow to make sure there is room for entity
        if (entityId >= m_replicatedData.Count)
        {
            var count     = entityId - m_replicatedData.Count + 1;
            var emptyData = new ReplicatedData();
            for (var i = 0; i < count; i++)
            {
                m_replicatedData.Add(emptyData);
            }
        }

        GameDebug.Assert(m_replicatedData[entityId].entity == Entity.Null, "ReplicatedData has entity set:{0}", m_replicatedData[entityId].entity);

        // Sort serializables by type name so server and client agree on order
        networkSerializables.Clear();
        networkSerializables.AddRange(serializableArray);
        networkSerializables.Sort((p1, p2) => p1.GetType().Name.CompareTo(p2.GetType().Name));

        var data = new ReplicatedData
        {
            entity            = entity,
            serializableArray = networkSerializables.ToArray()
        };

        m_replicatedData[entityId] = data;
    }
Beispiel #3
0
    public Entity Unregister(int entityId)
    {
        var entity = m_replicatedData[entityId].entity;

        GameDebug.Assert(entity != Entity.Null, "Unregister. ReplicatedData has has entity set");

        m_replicatedData[entityId] = new ReplicatedData();
        return(entity);
    }
Beispiel #4
0
    public void Register(EntityManager entityManager, int entityId, Entity entity)
    {
        if (m_showInfo.IntValue > 0)
        {
            if (entityManager.HasComponent <Transform>(entity))
            {
                GameDebug.Log("RepEntity REGISTER NetID:" + entityId + " Entity:" + entity + " GameObject:" + entityManager.GetComponentObject <Transform>(entity).name);
            }
            else
            {
                GameDebug.Log("RepEntity REGISTER NetID:" + entityId + " Entity:" + entity);
            }
        }


        // Grow to make sure there is room for entity
        if (entityId >= m_replicatedData.Count)
        {
            var count     = entityId - m_replicatedData.Count + 1;
            var emptyData = new ReplicatedData();
            for (var i = 0; i < count; i++)
            {
                m_replicatedData.Add(emptyData);
            }
        }

        GameDebug.Assert(m_replicatedData[entityId].entity == Entity.Null, "ReplicatedData has entity set:{0}", m_replicatedData[entityId].entity);

        netSerializables.Clear();
        netPredicted.Clear();
        netInterpolated.Clear();

        var go = entityManager.HasComponent <Transform>(entity)
            ? entityManager.GetComponentObject <Transform>(entity).gameObject
            : null;


        FindSerializers(entityManager, entity);

        if (entityManager.HasComponent <EntityGroupChildren>(entity))
        {
            var buffer = entityManager.GetBuffer <EntityGroupChildren>(entity);
            for (int i = 0; i < buffer.Length; i++)
            {
                var childEntity = buffer[i].entity;
                if (m_showInfo.IntValue > 0)
                {
                    GameDebug.Log(" ReplicatedEntityChildren: " + i + " = " + childEntity);
                }
                FindSerializers(entityManager, childEntity);
            }
        }

        var data = new ReplicatedData
        {
            entity            = entity,
            gameObject        = go,
            serializableArray = netSerializables.ToArray(),
            predictedArray    = netPredicted.ToArray(),
            interpolatedArray = netInterpolated.ToArray(),
        };

        m_replicatedData[entityId] = data;
    }