Exemplo n.º 1
0
    public void ArrowTaken(int index, SelectEnterEventArgs args)
    {
        if (bow.debugLog)
        {
            VRDebug.Log("Arrow taken " + index);
        }
        arrowsSpawned[index].transform.localScale = Vector3.one;
        int killed = menuItems[index].transform.DOKill();

        killed += DOTween.Kill(menuItems[index]);
        if (bow.debugLog)
        {
            Debug.Log("select killed " + killed);
        }
        // ? todo dont remove all listeners
        arrowsSpawned[index].selectEntered.RemoveAllListeners();
        // make sure arrow is already unparented
        if (arrowsSpawned[index].transform.parent == menuItems[index].transform)
        {
            VRDebug.Log("Arrow taken not unparented!");
            arrowsSpawned[index].transform.SetParent(null);
        }
        // remove the menu item
        Destroy(menuItems[index]);
        menuItems.RemoveAt(index);
        arrowsSpawned.RemoveAt(index);
        // recreate it, with a new arrow
        CreateMenuItem(index);
        // disable menu for now
        HideMenuItems();
    }
Exemplo n.º 2
0
 protected override void OnSelectEntering(SelectEnterEventArgs args)
 {
     Debug.Log("First Grab Enter");
     base.OnSelectEntering(args);
     gunRay.GradientCheck(false);
     attachInitialRotation = args.interactor.attachTransform.localRotation;
 }
    protected override void OnSelectEntered(SelectEnterEventArgs selectEnterEventArgs)
    {
        base.OnSelectEntered(selectEnterEventArgs);

        m_GrabbedOffset      = selectEnterEventArgs.interactor.transform.position - transform.position;
        m_GrabbingInteractor = selectEnterEventArgs.interactor;
    }
Exemplo n.º 4
0
 protected virtual void OnGrabInteractable(SelectEnterEventArgs args)
 {
     foreach (Collider c in args.interactable.colliders)
     {
         Physics.IgnoreCollision(_characterController, c, true);
     }
 }
Exemplo n.º 5
0
    private void CreateAndSelectArrow(SelectEnterEventArgs args)
    {
        // Create arrow, force into interacting hand
        Arrow arrow = CreateArrow(args.interactor.transform);

        interactionManager.ForceSelect(args.interactor, arrow);
    }
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        base.OnSelectEntered(args);

        // Set interactor for measurement
        pullingInteractor = args.interactor;
    }
Exemplo n.º 7
0
 protected virtual void Grab(SelectEnterEventArgs args)
 {
     if (!handsVisible)
     {
         TryHideHand(args.interactor, false);
     }
 }
 private void OnSelectEntered(SelectEnterEventArgs selectEnterEventArgs)
 {
     if (Time.realtimeSinceStartup - this.awakeTime > 1.0f)
     {
         this.networkIdentity.RequestOwnership();
     }
 }
Exemplo n.º 9
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        base.OnSelectEntered(args);
        // need to force hand to go on the string otherwise it could select something else
        // VRDebug.Log("Forcing hand string connection");
        // if (bow.offHand.selectTarget != null && bow.offHand.selectTarget != bowString)
        // {
        //     interactionManager.CancelInteractorSelection(bow.offHand);
        // }
        // interactionManager.SelectEnter(bow.offHand, bowString);
        // interactionManager.ForceSelect(bow.offHand, bowString);

        if (!(args.interactable is ArrowInteractable))
        {
            VRDebug.Log("wrong interaction " + args.interactable.name, 5);
        }

        // get arrow
        currentArrow = args.interactable as ArrowInteractable;
        if (bow.debugLog)
        {
            VRDebug.Log("Arrow '" + currentArrow.gameObject.name + "' notched");
        }
        isArrowArmed = false;
        currentArrow.ArrowSet();
        currentArrow.SetBow(bow);
        bow.ArrowSet();
    }
 protected override void OnSelectEntered(SelectEnterEventArgs args)
 {
     base.OnSelectEntered(args);
     if (args.interactor is XRDirectInteractor)
     {
         Climber.climbingHand = args.interactor.GetComponent <ActionBasedController>();
     }
 }
Exemplo n.º 11
0
 protected override void OnSelectEntered(SelectEnterEventArgs args)
 {
     if (args.interactable.CompareTag(targetTag))
     {
         isUsing = true;
     }
     base.OnSelectEntered(args);
 }
    /// <inheritdoc />
    protected override void OnSelectEntering(SelectEnterEventArgs args)
    {
        base.OnSelectEntering(args);

        XRBaseInteractor interactor = args.interactor;

        OnSelectEntering(interactor);
    }
 public void OnSecondGrabbableEnter(SelectEnterEventArgs args)
 {
     if (selectingInteractor && selectingInteractor is XRDirectInteractor)
     {
         secondInteractor     = args.interactor;
         second               = secondInteractor.transform?.Find("Mesh");
         initalRotationOffset = Quaternion.Inverse(GetTwoHandRotation()) * selectingInteractor.attachTransform.rotation;
     }
 }
Exemplo n.º 14
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        base.OnSelectEntered(args);

        if (args.interactor is XRDirectInteractor)
        {
            Player.instance.climbingHand = args.interactor.GetComponent <XRController>();
        }
    }
Exemplo n.º 15
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        base.OnSelectEntered(args);

        if (teleportTrigger == TeleportTrigger.OnSelectEntered)
        {
            StartCoroutine(FadeSequence(base.OnSelectEntered, args));
        }
    }
Exemplo n.º 16
0
 public void OnSecondHandGrab(SelectEnterEventArgs args)
 {
     if (args.interactor != null)
     {
         if (selectingInteractor)
         {
             initialRotationOffset = Quaternion.Inverse(GetTwoHandRotation()) * selectingInteractor.attachTransform.rotation;
         }
     }
 }
Exemplo n.º 17
0
 protected override void OnSelectEntering(SelectEnterEventArgs args)
 {
     if (args.interactor is XRDirectInteractor)
     {
         // arrow was grabbed by player
         ArrowDisplay(false);
         arrowLogic.ArrowGrabbed();
     }
     base.OnSelectEntering(args);
 }
    /// <inheritdoc />
    protected override void OnSelectEntering(SelectEnterEventArgs args)
    {
        base.OnSelectEntering(args);

        XRBaseInteractor interactor = args.interactor;

        initialAttachPosition = interactor.attachTransform.localPosition;
        initialAttachRotation = interactor.attachTransform.localRotation;

        interactor.attachTransform.SetPositionAndRotation(transform.position, transform.rotation);
    }
Exemplo n.º 19
0
    protected override void OnSelectEntering(SelectEnterEventArgs args)
    {
        // Do this first, so we get the right physics values
        if (args.interactor is XRDirectInteractor)
        {
            Clear();
        }

        // Make sure to do this
        base.OnSelectEntering(args);
    }
Exemplo n.º 20
0
 protected override void OnSelectEntered(SelectEnterEventArgs args)
 {
     base.OnSelectEntered(args);
     if (handPos)
     {
         if (selectingInteractor.transform.Find("Mesh"))
         {
             hand = selectingInteractor.transform.Find("Mesh");
         }
     }
 }
Exemplo n.º 21
0
 protected override void OnSelectEntered(SelectEnterEventArgs args)
 {
     if (bow.debugLog)
     {
         VRDebug.Log("String Grabbed");
     }
     // bowstring grabbed by player
     base.OnSelectEntered(args);
     pullingInteractor = args.interactor;
     bowNotch.Grabbed();
     UpdateLine();
 }
Exemplo n.º 22
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        VRDebug.Log("Quiver new arrow");
        base.OnSelectEntered(args);
        // spawn arrow
        Transform          interT = args.interactor.transform;
        GameObject         arrow  = Instantiate(arrowPrefab, interT.position, interT.rotation);
        XRBaseInteractable arrInt = arrow.GetComponent <XRBaseInteractable>();

        // force select it
        interactionManager.ForceSelect(args.interactor, arrInt);
    }
Exemplo n.º 23
0
    protected override void OnSelectEntering(SelectEnterEventArgs args)
    {
        base.OnSelectEntering(args);

        args.interactor.transform.GetChild(0).gameObject.SetActive(false);

        rigidBody.useGravity = false;

        positionOffset = args.interactor.transform.position - rigidBody.position;

        interactorLastPosition = args.interactor.transform.position;
        interactorLastRotation = args.interactor.transform.rotation;
    }
        private void HandleObjectSnapped(SelectEnterEventArgs arguments)
        {
            XRBaseInteractable interactable = arguments.interactable;

            SnappedObject = interactable.gameObject.GetComponent <SnappableProperty>();
            if (SnappedObject == null)
            {
                Debug.LogWarningFormat("SnapZone '{0}' received snap from object '{1}' without XR_SnappableProperty", SceneObject.UniqueName, interactable.gameObject.name);
            }
            else
            {
                EmitSnapped();
            }
        }
Exemplo n.º 25
0
 protected override void OnSelectEntering(SelectEnterEventArgs args)
 {
     if (args.interactor.CompareTag(Constant.handRight))
     {
         attachTransform.localPosition = rightAttachPos;
         attachTransform.localRotation = Quaternion.Euler(rightAttachrotation.x, rightAttachrotation.y, rightAttachrotation.z);
     }
     else if (args.interactor.CompareTag(Constant.handLeft))
     {
         attachTransform.localPosition = leftAttachPos;
         attachTransform.localRotation = Quaternion.Euler(leftAttachrotation.x, leftAttachrotation.y, leftAttachrotation.z);
     }
     base.OnSelectEntering(args);
 }
Exemplo n.º 26
0
 protected override void OnSelectEntering(SelectEnterEventArgs args)
 {
     if (args.interactor.CompareTag(Constant.handLeft) || args.interactor.CompareTag(Constant.handRight))
     {
         args.interactor.GetComponentInChildren <CustomController>().GetWeapon(this);
         gunRay.GradientCheck(rayCheck);
         isInHolster = false;
     }
     else
     {
         isInHolster = true;
     }
     weaponCollider.isTrigger = true;
     base.OnSelectEntering(args);
 }
Exemplo n.º 27
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        base.OnSelectEntered(args);
        if (args.interactor is XRDirectInteractor)
        {
            Climber.climbingHand = args.interactor.GetComponent <XRController>();
        }

        mesh = args.interactor.transform?.Find("Mesh");
        if (mesh)
        {
            pos = mesh.position;
            rot = mesh.rotation;
        }
    }
    protected override void OnSelectEntering(SelectEnterEventArgs args)
    {
        if (args.interactor is XRDirectInteractor)
        {
            attachTransform.position = args.interactor.transform.position;
            attachTransform.rotation = args.interactor.transform.rotation;
        }
        else
        {
            attachTransform.localPosition = initialAttachLocalPos;
            attachTransform.localRotation = initialAttachLocalRot;
        }

        base.OnSelectEntering(args);
    }
Exemplo n.º 29
0
    protected override void OnSelectEntered(SelectEnterEventArgs args)
    {
        // Once select has occured, scale object to size
        var temp = args.interactable;

        if (temp is TwoHandGrabInteractable)
        {
            two = temp.GetComponent <TwoHandGrabInteractable>();
            two.canTakeByOther = true;

            if (temp.GetComponentInChildren <XRSimpleInteractable>())
            {
                simple         = temp.GetComponentInChildren <XRSimpleInteractable>();
                simple.enabled = false;
            }
        }
        else if (temp is XRItemGrabInteractable)
        {
            item = temp.GetComponent <XRItemGrabInteractable>();
            if (item.GetComponent <DamageSystem>())
            {
                ds         = item.GetComponent <DamageSystem>();
                ds.enabled = false;
            }
            item.canTakeByOther = true;
        }

        if (temp.GetComponentInChildren <XROffsetGrabInteractable>())
        {
            offsetGrab         = temp.GetComponentInChildren <XROffsetGrabInteractable>();
            offsetGrab.enabled = false;
        }
        if (temp.GetComponentInChildren <XRSocketInteractorWithName>())
        {
            socket = temp.GetComponentInChildren <XRSocketInteractorWithName>();
            if (socket.selectTarget)
            {
                var mag = socket.selectTarget.GetComponent <Magazine>();
                player.ammoCount += mag.ammoCount;
                player.SetText(mag.ammoCount, 1);
                Destroy(mag.gameObject);
            }
            socket.showInteractableHoverMeshes = false;
            socket.enabled = false;
        }
        base.OnSelectEntered(args);
        TweenSizeToSocket(temp);
    }
Exemplo n.º 30
0
        private void SelectedSwitch(SelectEnterEventArgs selectEnterEventArgs)
        {
            var socketInteractor = selectEnterEventArgs.interactor as HavenSocketInteractor;

            if (this.CanSocket(socketInteractor) == false)
            {
                return;
            }

            if (this.disableSocketOnSocketed)
            {
                this.ExecuteDelayed(0.1f, () => socketInteractor.socketActive = false);
            }

            this.socketedEvent.Invoke(selectEnterEventArgs);
        }