SendSyncPoseMessage() public method

public SendSyncPoseMessage ( Komodo.Runtime.Position pos ) : void
pos Komodo.Runtime.Position
return void
        /// <summary>
        /// Meant to convert our Physics GameObject data send  data to follow our POSITION struct to be sent each update
        /// </summary>
        /// <param name="Net_Register_GameObject container of data"></param>
        public void SendPhysicsGameObjectUpdatesToNetwork(NetworkedGameObject eContainer)
        {
            int entityID = default;
            NetworkEntityIdentificationComponentData entityIDContainer = default;

            entityIDContainer = entityManager.GetComponentData <NetworkEntityIdentificationComponentData>(eContainer.Entity);
            entityID          = entityIDContainer.entityID;

            //make sure that we setup the reference to our rigidBody of our physics object that we are using to send data from
            if (!rigidbodyFromEntityId.ContainsKey(entityID))
            {
                rigidbodyFromEntityId.Add(entityID, eContainer.GetComponent <Rigidbody>());
            }
            var rb = rigidbodyFromEntityId[entityID];

            if (!rb)
            {
                Debug.LogError("There is no rigidbody in netobject entity id DICTIONARY: " + entityID);
                return;
            }

            Position coords = default;

            if (!rb.isKinematic && rb.IsSleeping() || entityManager.HasComponent <TransformLockTag>(eContainer.Entity))
            {
                physicsnRGOToRemove.Add(eContainer);

                //Send a last update for our network objects to be remove their physics funcionality to sync with others.
                StopPhysicsUpdates(eContainer);
            }

            coords = new Position
            {
                clientId    = entityIDContainer.clientID,
                entityId    = entityIDContainer.entityID,
                entityType  = (int)entityIDContainer.current_Entity_Type,
                rot         = eContainer.transform.rotation,
                pos         = eContainer.transform.position,
                scaleFactor = eContainer.transform.lossyScale.x,
            };

            netUpdateHandler.SendSyncPoseMessage(coords);
        }
Example #2
0
        public void SendSyncPosition(Entity_Type entityType, Vector3 position, Quaternion rotation)
        {
            Position coords = GeneratePosition(this, entityType, position, rotation);

            netUpdateHandler.SendSyncPoseMessage(coords);
        }