Ejemplo n.º 1
0
        /// <summary>
        /// Shoots out raycast-if item is interactable- interacts with the item.
        /// </summary>
        private void InteractWith()
        {
            RaycastHit targetHit;

            if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out targetHit, rayDistance))
            {
                selectedItem = GetObject(Camera.main.transform.position, Camera.main.transform.forward, targetHit);
                var itemTag = selectedItem.tag.ToString();

                if (itemTag.Contains("object"))
                {
                    if (itemTag.Contains("openable"))
                    {
                        currentAction = InteractStates.isPulling;
                    }
                    else if (itemTag.Contains("effects"))
                    {
                        InvokeTurnOnInteraction();
                    }
                    else // Normal object
                    {
                        Freeze(selectedItem);
                        currentAction = InteractStates.isHolding;
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Releases held object- changes player state to not interacting
 /// </summary>
 public void Drop()
 {
     if (selectedItem.GetComponent <Rigidbody>())
     {
         Unfreeze(selectedItem);
     }
     currentAction = InteractStates.isNotInteracting;
     selectedItem  = null;
 }
Ejemplo n.º 3
0
        void Start()
        {
            currentAction = InteractStates.isNotInteracting;

            try
            {
                hover = GetComponent <Hover>();
            }

            catch
            {
                Debug.Log("Cant find Hover Script");
            }
        }
Ejemplo n.º 4
0
        public void Freeze(string objName)
        {
            var goalObj = GameObject.Find(objName);

            selectedItem = goalObj;
            Vector3 freeze_position = Camera.main.transform.position + Camera.main.transform.forward * holdDistance;

            goalObj.transform.position = freeze_position;
            goalObj.transform.parent   = Camera.main.transform;
            Rigidbody rigidbody = goalObj.GetComponent <Rigidbody>();

            rigidbody.constraints = RigidbodyConstraints.FreezeAll;
            goalObj.layer         = 13;
            currentAction         = InteractStates.isHolding;
        }
Ejemplo n.º 5
0
 private void AutoPull()
 {
     try
     {
         Open door = selectedItem.GetComponent <Open>();
         if (door.hType == HingeType.slideOut)
         {
             if (door.isClosed)
             {
                 //door.AutoSlideOut(2f);
             }
             else
             {
                 currentAction = InteractStates.isNotInteracting;
             }
         }
     }
     catch (Exception ex)
     {
         Debug.Log(ex.ToString());
     }
 }