void Interact()
 {
     if (Input.GetButtonDown("Interact"))
     {
         if (heldObject != null)
         {
             UnsetHeldObject();
         }
         else
         {
             if (false)
             {
                 //TODO: in future look for buttons/levers to interact
             }
             else
             {
                 var t = CameraRaycast(MAX_INTERACT);
                 if (t != null && ItemAttributes.AttOrDefault(t).Grabbable)
                 {
                     SetHeldObject(t);
                 }
             }
         }
     }
     if (Input.GetKeyDown("i"))
     {
         RotateHeldObject(0, 90);
     }
     if (Input.GetKeyDown("j"))
     {
         RotateHeldObject(90, 0);
     }
     if (Input.GetKeyDown("k"))
     {
         RotateHeldObject(0, -90);
     }
     if (Input.GetKeyDown("l"))
     {
         RotateHeldObject(-90, 0);
     }
 }
    void HandleTooltips()
    {
        //find text objects
        Transform hit = CameraRaycast(MAX_LOOK);

        if (hit != null)
        {
            var atts = ItemAttributes.AttOrDefault(hit);
            if (atts.TextApparent)
            {
                tooltipAssembly.SetActive(true);

                tooltip.GetComponent <Text>().text = atts.Text;
                var width = tooltip.GetComponent <Text>().preferredWidth;
                width = Mathf.Min(width, TOOLTIP_MAX_WIDTH);

                var r  = tooltip.GetComponent <RectTransform>();
                var r1 = tooltip.transform.parent.GetComponent <RectTransform>();
                var r2 = tooltip.transform.parent.parent.GetComponent <RectTransform>();
                //set width of tooltip
                r.sizeDelta = new Vector2(width, r.sizeDelta.y);

                r.anchoredPosition = new Vector2(-width / 2, r.anchoredPosition.y);
                //set width of tooltip marker
                r1.sizeDelta = new Vector2(width + TOOLTIP_OFFSET, r1.sizeDelta.y);
                //set position of assembly
                r2.position = cam.GetComponent <Camera>().WorldToScreenPoint(hit.transform.position);
            }
            else
            {
                tooltipAssembly.SetActive(false);
            }
        }
        else
        {
            tooltipAssembly.SetActive(false);
        }
    }
Exemplo n.º 3
0
 private bool IsGrabbableObject(Transform t)
 {
     return(ItemAttributes.AttOrDefault(t).Grabbable);
 }