void Update() { float inputX = Input.GetAxisRaw("Horizontal"); float inputY = Input.GetAxisRaw("Vertical"); float velocityX = inputX * speed; float velocityY = inputY * speed; transform.Translate(Vector2.right * velocityX * Time.deltaTime, Space.World); transform.Translate(Vector2.up * velocityY * Time.deltaTime, Space.World); if (Input.GetMouseButtonDown(0)) { Ray mouseRay = GenerateMouseRay(); RaycastHit hit; if (Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit)) { //Destroy(hit.transform.gameObject); gObj = hit.transform.gameObject; objPlane = new Plane(Camera.main.transform.forward * -1, gObj.transform.position); //calc mouse offset Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition); float rayDistance; objPlane.Raycast(mRay, out rayDistance); mO = gObj.transform.position - mRay.GetPoint(rayDistance); } } else if (Input.GetMouseButton(0) && gObj) { Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition); float rayDistance; if (objPlane.Raycast(mRay, out rayDistance)) { gObj.transform.position = mRay.GetPoint(rayDistance) + mO; } } else if (Input.GetMouseButtonUp(0) && gObj) { gObj = null; } if (Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { Ray mouseRay = GenerateMouseRay(Input.GetTouch(0).position); RaycastHit hit; if (Physics.Raycast(mouseRay.origin, mouseRay.direction, out hit)) { gObj = hit.transform.gameObject; objPlane = new Plane(Camera.main.transform.forward * -1, gObj.transform.position); //calc touch offset Ray mRay = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); float rayDistance; objPlane.Raycast(mRay, out rayDistance); mO = gObj.transform.position - mRay.GetPoint(rayDistance); } } else if (Input.GetTouch(0).phase == TouchPhase.Moved && gObj) { Ray mRay = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); float rayDistance; if (objPlane.Raycast(mRay, out rayDistance)) { gObj.transform.position = mRay.GetPoint(rayDistance) + mO; } } else if (Input.GetTouch(0).phase == TouchPhase.Ended && gObj) { gObj = null; } } if (Input.GetKeyDown(KeyCode.Space)) { healthBar.HealDamage(10); //SetRandomColor(); timeManager.DoSlowmotion(); cameraShake.DoAction(); //cameraShake.Reset(); cameraShake.DoBG(); } /* * if (Input.touchCount > 0) { * Touch touch = Input.touches[0]; * * switch (touch.phase) { * * case TouchPhase.Began : * startPos = touch.position; * break; * * case TouchPhase.Ended : * float swipeDistVertical = (new Vector3(0, touch.position.y, 0) - new Vector3(0, startPos.y, 0)).magnitude; * if (swipeDistVertical > minSwipeDistY) { * float swipeValue = Mathf.Sign(touch.position.y - startPos.y); * if (swipeValue > 0) { * Debug.Log ("up swipe"); * } * else if (swipeValue < 0) { * Debug.Log ("down swipe"); * } * } * * float swipeDistHorizontal = (new Vector3(touch.position.x, 0, 0) - new Vector3(startPos.x, 0, 0)).magnitude; * if (swipeDistHorizontal > minSwipeDistX) { * float swipeValue = Mathf.Sign(touch.position.x - startPos.x); * if (swipeValue > 0) { * transform.Translate (Vector2.right * Time.deltaTime); * Debug.Log ("right swipe"); * } * else if (swipeValue < 0) { * transform.Translate (Vector2.right * Time.deltaTime); * Debug.Log ("left swipe"); * } * } * break; * } * } */ /* * if (Input.touchCount > 0 || Input.GetMouseButton(0)) { * if (Input.mousePosition.x < Screen.width / 2) { * transform.Translate(Vector2.right * -speed * Time.deltaTime); * } * else { * transform.Translate(Vector2.right * speed * Time.deltaTime); * } * } */ if (transform.position.x < -screenHalfWidthInWorldUnits) { transform.position = new Vector2(-screenHalfWidthInWorldUnits, transform.position.y); } if (transform.position.x > screenHalfWidthInWorldUnits) { transform.position = new Vector2(screenHalfWidthInWorldUnits, transform.position.y); } //float xRotation = transform.localEulerAngles.x; //float yRotation = transform.localEulerAngles.y; //float xRotation = Input.GetAxis("Vertical") * rotationSpeed * Time.deltaTime; //float yRotation = Input.GetAxis("Horizontal") * rotationSpeed * Time.deltaTime; //transform.Rotate(xRotation, -yRotation, 0, Space.World); //transform.localEulerAngles = new Vector3(xRotation,yRotation,0); /* * if (Input.GetMouseButton(0)) { * float h = horizontalSpeed * Input.GetAxis("Mouse X") * Time.deltaTime; * float v = verticalSpeed * Input.GetAxis("Mouse Y") * Time.deltaTime; * transform.Rotate(v, -h, 0, Space.World); * //transform.Translate(Vector2.right * h); * } */ /* * if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) { * Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition; * //transform.Translate(touchDeltaPosition.x * touchSpeed, touchDeltaPosition.y * touchSpeed, 0); * transform.Rotate(new Vector3(touchDeltaPosition.y * touchSpeed, -touchDeltaPosition.x * touchSpeed, 0) * Time.deltaTime, Space.World); * } */ /* * if(Input.GetKey(KeyCode.Space)) { * float lerp = Mathf.PingPong(Time.time, duration) / duration; * rend.material.color = Color.Lerp(colorStart, colorEnd, lerp); * Debug.Log("now color: " + rend.material.color); * * } */ if (Input.GetKey(KeyCode.R)) { theDeathScreen.SetActive(true); } if (Input.GetKeyDown("escape")) { Application.Quit(); } }