/** Update the ray Draw a ray from Psmove to retrieve the object selected. */ private void updateRay(ref UniMoveController move, ref MoveController moveObj) { Transform sphereTransform = moveObj.transform.Find("Sphere"); Transform capsuleTransform = moveObj.transform.Find("Capsule"); Vector3 heading = sphereTransform.position - capsuleTransform.transform.position; Vector3 direction = heading.normalized; RaycastHit hit; Ray ray = new Ray(sphereTransform.position, direction); Boolean haveCollision = Physics.Raycast(ray, out hit); if (haveCollision && move.GetButtonDown(PSMoveButton.Move)) { if (objectSelected == null || objectSelected != hit.collider.gameObject) { GameObject obj = hit.collider.gameObject; selectCollisionObject(ref obj); this.moveAction = new MoveAction(obj); } else { if (this.objectSelected != null) { Vector3 position = this.objectSelected.transform.localPosition; this.moveAction.NewLocation = new Vector3(position.x, position.y, position.z); base.managerListener.doAction(this.moveAction); } deselectCollisionObject(); } } if (this.objectSelected != null && buttonTriggerIsDown) { float distance = Vector3.Distance(moveObj.transform.position, this.objectSelected.transform.position); float z = this.objectSelected.transform.localPosition.z; Vector3 location = moveObj.transform.position + direction * distance; location.z = z; this.objectSelected.transform.localPosition = location; } Debug.DrawRay(sphereTransform.position, direction * 10, Color.green); }
private void InputMoveAction() { if (UnityEngine.Input.GetKey(KeyCode.LeftArrow)) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.left * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetKey(KeyCode.RightArrow)) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.right * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetKey(KeyCode.UpArrow)) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.up * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetKey(KeyCode.DownArrow)) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.down * translateSpeed * Time.deltaTime; } if (!UnityEngine.Input.GetKeyUp(KeyCode.UpArrow) && !UnityEngine.Input.GetKeyUp(KeyCode.DownArrow) && !UnityEngine.Input.GetKeyUp(KeyCode.RightArrow) && !UnityEngine.Input.GetKeyUp(KeyCode.LeftArrow) && this.move != null) { Vector3 position = this.select.transform.localPosition; this.move.NewLocation = new Vector3(position.x, position.y, position.z); base.managerListener.doAction(move); move = null; print("moveaction"); } }
private void InputMoveAction() { // joystick pour deplacer un objet if (UnityEngine.Input.GetAxis("Horizontal") == 1) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.left * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetAxis("Horizontal") == -1) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.right * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetAxis("Vertical") == 1) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.up * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetAxis("Vertical") == -1) { if (move == null) move = new MoveAction(this.select); this.select.transform.position += Vector3.down * translateSpeed * Time.deltaTime; } if (UnityEngine.Input.GetAxis("Vertical") != 1 && UnityEngine.Input.GetAxis("Vertical") != -1 && UnityEngine.Input.GetAxis("Horizontal") != 1 && UnityEngine.Input.GetAxis("Horizontal") != -1 && this.move != null) { Vector3 position = this.select.transform.localPosition; this.move.NewLocation = new Vector3(position.x, position.y, position.z); base.managerListener.doAction(move); move = null; print("moveaction"); } }