public void AddToSlot(GameObject o) { if (slotItem.Value) { var oldItem = slotItem.Value; var oldRb = slotItemRb; oldItem.transform.position = new Vector3(0, 5, 0); oldRb.isKinematic = false; ReleaseSlot(); } slotItem.SetValue(o); slotItemRb = o.GetComponent <Rigidbody> (); slotItemRb.isKinematic = true; slotItemRb.transform.DOScale(Vector3.one / 2, 0.3f); slotItemRb.transform.position = transform.position; }
void Update() { var mx = Input.mousePosition.x; var my = cam.pixelHeight - Input.mousePosition.y; //for perspective cam var mz = cam.nearClipPlane; if (cam.orthographic) // for ortho { my = Input.mousePosition.y; mz = 0; } var screenPoint = cam.ScreenToWorldPoint(new Vector3(mx, my, mz)); mouseCursorWorld.SetValue(screenPoint); mousePositionCanvas.SetValue(Input.mousePosition); mouseRay = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(mouseRay, out hit, Mathf.Infinity, layerHit)) { if (hitPoint) { hitPoint.SetValue(hit.point); } if (hitObject) { hitObject.SetValue(hit.collider.gameObject); } // print ("hitpoint: " + hitPoint.Value); // if (hitObject && hitObject.Value.tag != "Item") print ("hitObject: " + hitObject.Value.name); } else { if (hitObject) { hitObject.SetValue(null as GameObject); } } }
public void GrabThis() { transform.DORotate(originalRotation.eulerAngles, 0.3f, RotateMode.Fast); transform.DOScale(Vector3.one * 1.25f, 0.3f); isGrabbed = true; rb.isKinematic = true; isGrabbing.SetValue(true); grabbedItem.SetValue(gameObject); // TODO refactor this with CSV var itemParams = GetComponent <ItemParams> (); toolTip.TriggerTooltip(itemParams.Description); if (mouseCursorHoverUI.Value && mouseCursorHoverUI.Value.tag == "Slot") { var slot = mouseCursorHoverUI.Value.GetComponent <SlotBehavior> (); slot.ReleaseSlot(); return; } }