private void SendDropRequest(EntityId heldObjectId)
        {
            var update           = new Grab.Update();
            var dropRequestEvent = new DropRequestEvent(heldObjectId);

            update.AddDropRequest(dropRequestEvent);
            GrabWriter.Send(update);
        }
Esempio n. 2
0
        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();
            }
        }