void Update() { if (Input.GetButtonDown(GameplayStatics.RepairerInputLookup[RepairerInput.Repairer_UseItem])) { if (HeldItem == null) { Ray mouseToWorldRay = mainCamera.ScreenPointToRay(Input.mousePosition); int layerMask = LayerMask.GetMask(GameplayStatics.REPAIRER_INTERACTIBLE_OBJECTS_LAYER_NAME); var InteractableItemsUnderMouse = Physics.RaycastAll(mouseToWorldRay, 200f, layerMask); foreach (var InteractableObject in InteractableItemsUnderMouse) { Debug.Log(InteractableObject.collider.gameObject.name); HeldItem = InteractableObject.collider.gameObject.GetComponent <DragableObject>(); if (HeldItem != null) { HeldItem.AttachToMouse(); break; } } } } else if (Input.GetButtonDown(GameplayStatics.RepairerInputLookup[RepairerInput.Repairer_DropItem]) && HeldItem != null) { HeldItem?.DropItem(); HeldItem = null; } }
public void AddBehaviour(DragableObject dragableObject) { for (int i = 0; i < barSquares.Count - dragableObject.size + 1; i++) { if (barSquares[i].contained != null || barSquares[i].locked || barSquares[i].erased) { continue; } if (dragableObject.size == 1) { barSquares[i].OnAdd(dragableObject); return; } for (int j = 0; j < dragableObject.size - 1; j++) { if (barSquares[i].followingSquares[j].locked || barSquares[i].followingSquares[j].erased) { break; } if (j == dragableObject.size - 2) { barSquares[i].OnAdd(dragableObject); return; } } } }
// Use this for initialization void Start () { obj = GetComponent<DragableObject>(); fader = GetComponent<AudioFader>(); obj.OnDragStart += OnDragStart; obj.OnDragStop += OnDragStop; glowObj = new GameObject ("glow"); glowObj.transform.parent = this.transform; glow = glowObj.AddComponent<SpriteRenderer> (); glow.sprite = GetComponent<SpriteRenderer> ().sprite; glow.GetComponent<Renderer>().enabled = false; }
public static void DeselectObject(GameObject obj) { DragableObject dragScript = obj.GetComponent <DragableObject>(); if (!dragScript) { Debug.Log("ERROR NO DRAG SCRIPT ON DESELECT", obj); return; } dragScript.StopDragging(); currentlyHeld = null; }
private void Rotate(Vector2 offset, Vector3 newMousePosition, DragableObject o) { _currentRotation -= Time.deltaTime * offset.x * 10000 * rotationSpeed; _currentRotation = Mathf.Clamp(_currentRotation, rotatableObjectSO.minAngle, rotatableObjectSO.maxAngle); SetRotation(); if ((_isOn && _currentRotation == rotatableObjectSO.closedAngle) || (!_isOn && _currentRotation == rotatableObjectSO.openedAngle)) { _isOn = !_isOn; NotifyOnStateChanged(); } }
public void next() { DragableObject dragableObject = enigmes[status].GetComponentInChildren <DragableObject>(); if (dragableObject != null) { dragableObject.isDragable = false; } else { SpinObject spinObject = enigmes[status].GetComponentInChildren <SpinObject>(); if (spinObject != null) { spinObject.isDragable = false; } else { PorteEnigme enigmeObject = enigmes[status].GetComponentInChildren <PorteEnigme>(); if (enigmeObject != null) { enigmeObject.isDragable = false; } } } if (status < enigmes.Length - 1) { enigmes[status + 1].SetActive(true); if (idEnigme == 1 && status == 1) { enigmes[0].SetActive(false); enigmes[1].SetActive(false); for (int i = 0; i < objectsToChange.Length; i++) { objectsToChange[i].sprite = correspondinNewSprites[i]; } } } else { StartCoroutine(End()); } VFXSource.PlayOneShot(successClips[status]); status++; }
public void OnAdd(DragableObject objectToAdd) { OnRemove(); GameObject draggedObj = Instantiate(objectToAdd.gameObject, transform.position, transform.rotation, transform.parent); draggedObj.GetComponent <RectTransform>().sizeDelta = new Vector2(100, 100); contained = draggedObj.GetComponent <DragableObject>(); contained.dragged = false; contained.transform.SetSiblingIndex(0); //Unlock for (int i = 0; i < followingSquares.Count; i++) { if (followingSquares[i].locked) { followingSquares[i].Unlock(); } else { break; } } //Lock for (int i = 0; i < Mathf.Min(followingSquares.Count, contained.size - 1); i++) { followingSquares[i].Lock(); if (followingSquares[i].contained != null) { Destroy(followingSquares[i].contained.gameObject); } } Image[] imagesDragged = contained.GetComponentsInChildren <Image>(); for (int i = 0; i < imagesDragged.Length; i++) { imagesDragged[i].raycastTarget = false; } OnPointerExit(null); CharacterBehaviourManager.instance.AddBehaviour(contained.action); }
public void OnBeginDrag(PointerEventData eventData) { if (Input.GetMouseButton(2)) { return; } GameObject draggedObj = Instantiate(gameObject, transform.position, transform.rotation, transform.parent); DragableObject dra = draggedObj.GetComponent <DragableObject>(); dra.dragged = true; Image[] imagesDragged = dra.GetComponentsInChildren <Image>(); for (int i = 0; i < imagesDragged.Length; i++) { imagesDragged[i].raycastTarget = false; } MemoryBarManager.instance.dragedObject = dra; }
public static void ObjectClicked(GameObject obj) { if (currentlyHeld == obj) { DeselectObject(currentlyHeld); return; } if (currentlyHeld != null) { DeselectObject(currentlyHeld); } DragableObject dragScript = obj.GetComponent <DragableObject>(); if (!dragScript) { Debug.Log("ERROR NO DRAG SCRIPT ON SELECT", obj); return; } currentlyHeld = obj; dragScript.StartDragging(); }
/// <summary> /// Moves parent object when dragableObject is dragged /// </summary> /// <param name="offset">Mouse offset</param> /// <param name="newMousePosition"></param> /// <param name="dragableObject">Object being dragged by user</param> public void Move(Vector2 offset, Vector3 newMousePosition, DragableObject dragableObject) { var pos = GetNewWorldPosition(newMousePosition); if (IsOverlapping(pos)) { return; } transform.position = pos; if (((transform.position - closedTransform.position).magnitude >= movableObjectSO.distanceToOpened || (transform.position - closedTransform.position).magnitude > movableObjectSO.precision) && !_isOn) { ChangeStateAndNotify(); } else if ((transform.position - closedTransform.position).magnitude <= movableObjectSO.precision && _isOn) { transform.position = closedTransform.position; ChangeStateAndNotify(); } }
// Update is called once per frame void Update() { if (!mdb.gameStarted) { return; } if (!isPlaying) { return; } if (!mdb.hasTimeLeft() && !allClothClean) { isPlaying = false; mdb.EndedGameLose(); return; } allClothClean = true; for (int i = 0; i < dishes.Count; i++) { DragableObject obj = dishes [i].GetComponent <DragableObject> (); if (obj.isAtDestination == false) { allClothClean = false; break; } } if (allClothClean) { EndGame(); } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DragableObject obj = value as LineBez; return(obj != null? Visibility.Visible : Visibility.Hidden); }
/// <summary> /// Saves offset to dragable object on start drag /// </summary> /// <param name="mousePosition"></param> /// <param name="dragableObject"></param> public void OnStartMove(Vector3 mousePosition, DragableObject dragableObject) { _offsetToObj = transform.position - GetMouseWorldPoint(mousePosition); }