private void SendDropRequest(EntityId heldObjectId) { var update = new Grab.Update(); var dropRequestEvent = new DropRequestEvent(heldObjectId); update.AddDropRequest(dropRequestEvent); GrabWriter.Send(update); }
private void AttemptDrop(DropRequestEvent request) { GameObject droppedGameObject = LocalEntities.Instance.Get(request.droppedEntityId).UnderlyingGameObject; if (droppedGameObject == null) { Debug.LogWarning("Player drop attempt couldn't find targeted grabbable entity object with id: " + request.droppedEntityId); return; } // Make drop request GrabbableRequestHandler grabbableRequestHandler = droppedGameObject.GetComponent <GrabbableRequestHandler>(); // GrabbableRequestHandler will be disabled on workers not authoritative over dropped object's Grabbable component if (grabbableRequestHandler != null && grabbableRequestHandler.isActiveAndEnabled) { grabbableRequestHandler.HandleDropRequest(); } }