示例#1
0
    void UpdateData(bool grabbed, int grabOwner, Vector3 position, Quaternion rotation, Vector3 velocity, Vector3 angularVelocity, int parentId, string parentPath)
    {
        // Parenting
        var actualNref = NetworkReference.FromTransform(transform.parent);
        var newNref    = NetworkReference.FromIdAndPath(parentId, parentPath);

        Debug.Log("Parenting: " + actualNref + "  NewRef: " + newNref + " Grabbed: " + grabbed);

        if (actualNref != newNref)
        {
            //Debug.Log("Reparenting from " + actualNref + " to " + newNref);
            GameObject newParent = newNref.FindObject();
            //Debug.Log("New parent " + newParent);
            transform.parent = newParent != null ? newParent.transform : null;
        }

        interactableObject.isKinematic = grabbed;
        SetState(grabOwner);

        if (rigidBody != null)
        {
            rigidBody.velocity        = velocity;
            rigidBody.angularVelocity = angularVelocity;
        }

        transform.position = position;
        transform.rotation = rotation;
    }
示例#2
0
 void OnEnable()
 {
     io.InteractableObjectSnappedToDropZone     += HandleSnappedToDropZone;
     io.InteractableObjectUnsnappedFromDropZone += HandleUnsnappedFromDropZone;
     if (io.IsInSnapDropZone())
     {
         dropZone       = io.GetStoredSnapDropZone();
         dropZoneNetRef = NetworkReference.FromTransform(dropZone.transform);
     }
     else
     {
         dropZone       = null;
         dropZoneNetRef = NetworkReference.INVALID;
     }
 }
示例#3
0
    void UpdateDataToAllClients(bool grabbed, Rigidbody givenControllerAttachPoint)
    {
        NetworkReference parentNetworkReference = NetworkReference.FromTransform(transform.parent);

        Debug.Log("PARENT: " + parentNetworkReference);

        PhotonView.Get(this).RPC("UpdateData", PhotonTargets.OthersBuffered,
                                 grabbed,
                                 grabOwner,
                                 transform.position,
                                 transform.rotation,
                                 grabbed ? Vector3.zero : rigidBody.velocity,
                                 grabbed ? Vector3.zero : rigidBody.angularVelocity,
                                 parentNetworkReference.parentHandleId,
                                 parentNetworkReference.pathFromParent);
    }
示例#4
0
 private void HandleSnappedToDropZone(object sender, InteractableObjectEventArgs e)
 {
     dropZone       = io.GetStoredSnapDropZone();
     dropZoneNetRef = NetworkReference.FromTransform(dropZone.transform);
 }