private void onPlayerMoved(PositionData positionData, Vector3 newPosition)
        {
            if (positionData == null)
            {
                return;
            }
            positionData.PlayerMoved -= onPlayerMoved;
            if (base.gameObject.IsDestroyed())
            {
                return;
            }
            DataEntityHandle entityByComponent = dataEntityCollection.GetEntityByComponent(positionData);

            if (DataEntityHandle.IsNullValue(entityByComponent))
            {
                return;
            }
            GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(entityByComponent);

            if (component != null)
            {
                GameObject remotePlayer = component.GameObject;
                if (!remotePlayer.IsDestroyed())
                {
                    placeRemotePlayer(remotePlayer, entityByComponent, newPosition);
                }
            }
        }
Example #2
0
        private void setupLocalPlayer()
        {
            DataEntityHandle localPlayerHandle = dataEntityCollection.LocalPlayerHandle;
            AvatarDataHandle avatarDataHandle  = LocalPlayerGameObject.AddComponent <AvatarDataHandle>();

            avatarDataHandle.SetHandle(localPlayerHandle, isLocalPlayer: true);
            GameObjectReferenceData gameObjectReferenceData = dataEntityCollection.AddComponent <GameObjectReferenceData>(localPlayerHandle);

            gameObjectReferenceData.GameObject = LocalPlayerGameObject;
        }
Example #3
0
        protected Transform getTransform(long sessionId)
        {
            DataEntityHandle dataEntityHandle = dataEntityCollection.FindEntity <SessionIdData, long>(sessionId);

            if (!dataEntityHandle.IsNull)
            {
                GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(dataEntityHandle);
                if (component != null && component.GameObject != null)
                {
                    return(component.GameObject.transform);
                }
            }
            return(null);
        }
        public void AssignAvatarView(AvatarView avatarView, DataEntityHandle remotePlayerHandle, GameObject remotePlayerGO)
        {
            GameObjectReferenceData component = dataEntityCollection.GetComponent <GameObjectReferenceData>(remotePlayerHandle);

            component.GameObject = remotePlayerGO;
            if (avatarView.IsReady)
            {
                onAvatarIsReady(avatarView);
            }
            else
            {
                avatarView.OnReady += onAvatarIsReady;
            }
            PositionData component2 = dataEntityCollection.GetComponent <PositionData>(remotePlayerHandle);

            if (component2.Position != Vector3.zero)
            {
                placeRemotePlayer(remotePlayerGO, remotePlayerHandle, component2.Position);
            }
            else
            {
                component2.PlayerMoved += onPlayerMoved;
            }
        }