示例#1
0
 private void OnTransformUpdate(WorldTransform.Update update)
 {
     if (!CurrentlyBeingHeld() && !WorldTransformReader.HasAuthority)
     {
         if (update.position.HasValue)
         {
             transform.position = update.position.Value.ToVector3();
         }
         if (update.rotation.HasValue)
         {
             transform.rotation = MathUtils.ToUnityQuaternion(update.rotation.Value);
         }
     }
 }
示例#2
0
 private void OnComponentUpdated(WorldTransform.Update update)
 {
     if (!WorldTransformReader.HasAuthority)
     {
         if (update.position.HasValue)
         {
             transform.position = update.position.Value.ToVector3();
         }
         if (update.rotation.HasValue)
         {
             var rotation = update.rotation.Value;
             transform.rotation = new Quaternion(rotation.x, rotation.y, rotation.z, rotation.w);
         }
     }
 }
示例#3
0
 // Callback for whenever one or more property of the WorldTransform component is updated
 void OnComponentUpdated(WorldTransform.Update update)
 {
     /*
      * Only update the transform if this component is on a worker which isn't authorative over the
      * entity's WorldTransform component.
      * This synchronises the entity's local representation on the worker with that of the entity on
      * whichever worker is authoritative over its WorldTransform and is responsible for its movement.
      */
     if (!WorldTransformReader.HasAuthority)
     {
         if (update.position.HasValue)
         {
             transform.position = update.position.Value.ToVector3();
         }
     }
 }
示例#4
0
        private void Update()
        {
            var transformUpdate = new WorldTransform.Update();
            var newPosition     = transform.position.ToCoordinates();
            var newRotation     = transform.rotation;

            var updatedTransform = false;

            if (PositionNeedsUpdate(newPosition))
            {
                transformUpdate.SetPosition(newPosition);
                updatedTransform = true;
            }
            if (RotationNeedsUpdate(newRotation))
            {
                transformUpdate.SetRotation(MathUtils.ToNativeQuaternion(transform.rotation));
                updatedTransform = true;
            }

            if (updatedTransform)
            {
                WorldTransformWriter.Send(transformUpdate);
            }
        }
示例#5
0
 private void WorldTransformWriter_ComponentUpdated(WorldTransform.Update obj)
 {
     Debug.Log("WorldTransformWriter_ComponentUpdated!!");
 }