private void AttemptGrab(GrabRequestEvent request) { var grabbableGameObject = LocalEntities.Instance.Get(request.grabbedEntityId).UnderlyingGameObject; if (grabbableGameObject == null) { Debug.LogWarning("Player grab attempt couldn't find targeted grabbable entity object with id: " + request.grabbedEntityId); return; } GameObject controllerGameObject = gameObject.GetComponent <PlayerControllers>().GetController(request.controllerSide); if (controllerGameObject == null) { Debug.LogWarning("Player grab attempt failed; no controller game object for " + request.controllerSide + " controller side"); return; } // Make grab request GrabbableRequestHandler grabbableRequestHandler = grabbableGameObject.GetComponent <GrabbableRequestHandler>(); // GrabbableRequestHandler will be disabled on workers not authoritative over grabbed object's Grabbable component if (grabbableRequestHandler != null && grabbableRequestHandler.isActiveAndEnabled) { grabbableRequestHandler.HandleGrabRequest(gameObject.EntityId(), request.controllerSide, controllerGameObject); } }
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(); } }