/// <summary> /// Takes an item from the resource pool. /// </summary> /// <returns>Item to take.</returns> public override T Take() { T toTake; if (stack.TryDequeueFirst(out toTake)) { return(toTake); } return(CreateNewResource()); }
protected override void UpdateStage() { EntityStateChange item; while (stateChanges.TryDequeueFirst(out item)) { Entity target = item.target; switch (item.targetField) { case TargetField.Position: target.Position = item.vector; break; case TargetField.Orientation: target.Orientation = item.orientationQuaternion; break; case TargetField.LinearVelocity: target.LinearVelocity = item.vector; break; case TargetField.AngularVelocity: target.AngularVelocity = item.vector; break; } } }