コード例 #1
0
        /**
            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);
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
		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");
			}
		}