Exemplo n.º 1
0
    private void Update()
    {
        Vector2 mousePosition = MouseTools.GetMouseDistanceFromCenter() / 10;

        if (mousePosition.magnitude > maxMouseDistance)
        {
            mousePosition = mousePosition.normalized * maxMouseDistance;
        }

        foreach (GameObject parallaxObject in parallaxObjects)
        {
            Vector3 oldPosition     = parallaxObject.transform.position;
            float   depthMultiplier = (oldPosition.z - focusDepth);
            Vector2 newPosition2    = mousePosition * (depthMultiplier * parallaxStrength);
            Vector3 newPosition3    = new Vector3(newPosition2.x, newPosition2.y, oldPosition.z);

            string parallaxInfo =
                string.Format
                (
                    "Translating {0} from {1} to {2}, multiplied by {3}",
                    parallaxObject.name,
                    oldPosition,
                    newPosition3,
                    depthMultiplier
                );

            // Debug.Log(parallaxInfo);

            parallaxObject.transform.position = newPosition3;
        }
    }
Exemplo n.º 2
0
        public Image TakePhoto()
        {
            _lastImagePath = null;
            var hWindow = WindowTools.FindWindowByWindowName("Remote Camera Control");

            WindowTools.SetForegroundWindow(hWindow);
            WindowTools.SetWindowPosition(hWindow, new Point(0, 0));
            MouseTools.Move(new Point(223, 193));
            MouseTools.Click(MouseTools.Button.Left, MouseTools.Speed.Slow);

            if (_waitHandle.WaitOne(5000) && _lastImagePath != null)
            {
                return(Image.FromFile(_lastImagePath));
            }

            return(null);
        }
Exemplo n.º 3
0
    void Update()
    {
        if (target == null)
        {
            if (GameObject.FindWithTag("Me") != null)
            {
                target = GameObject.FindWithTag("Me").transform;
                #region 处理相机遮挡相关的 射线节点
                if (dir == null)
                {
                    dir = target.Find("rayForCameraCover").gameObject;
                }
                #endregion
            }
            else
            {
                return;
            }
        }
        #region 处理相机遮挡相关的 射线节点 ####################
//		if (line == null) {
//			line = this.gameObject.AddComponent<LineRenderer> ();
//			line.enabled = true;
//			line.startWidth = .1f;
//			line.endWidth = .1f;
//		}
        //人物身上设个节点,照射一条射线到相机,以供处理遮挡
        dir.transform.LookAt(this.transform);
        cameraRay.origin    = dir.transform.position + dir.transform.forward;     // * 1f;
        cameraRay.direction = dir.transform.forward;
//		cameraRay = Camera.main.ViewportPointToRay (target.position);
        if (Physics.Raycast(cameraRay, out camerHit, (maxDis - 1f), LayerMask.GetMask("Item")))
        {
            Debug.DrawLine(target.position, camerHit.point, Color.red);
//			if (0f == lastDis) {
//				lastDis = distance;
//			}
            if (lastDis == 0f)
            {
                lastDis = dist;
            }
//			if (1f > dist) {
//				dist = 1f;
//			} else {
            dist = Vector3.Distance(target.position, camerHit.point);             //- 2f;
//			}
//			print ("hit:" + dist);
            hit = true;
//			line.SetPosition (0, target.position);
//			line.SetPosition (1, camerHit.point);
        }
        else
        {
            hit = false;
//			Debug.DrawLine (Camera.main.transform.position, cameraRay.direction, Color.blue);
//			Debug.DrawLine (target.position, transform.position, Color.blue);
            Debug.DrawLine(cameraRay.origin, cameraRay.origin + cameraRay.direction * (maxDis - 1f), Color.black);
//			line.SetPosition (0, cameraRay.origin);
//			line.SetPosition (1, cameraRay.origin + cameraRay.direction * 30f);
            if (lastDis != 0f)
            {
                dist    = lastDis;
                lastDis = 0f;
            }
        }

        if (hit)
        {
            distance = Mathf.Lerp(distance, dist, Time.deltaTime * 10f);
        }
        else
        {
            if (0f == dist)              //|| 0f != lastDis) {
            {
                dist = Vector3.Distance(transform.position, target.position);
            }


            distance = Mathf.Lerp(distance, dist, Time.deltaTime);
            //			lastDis = 0f;
        }

        #endregion 处理相机遮挡相关的 射线节点 ####################

                #if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
        //==


        float wheel = Input.GetAxis("Mouse ScrollWheel");
        dist -= wheel * 6.5f;
        if (!hit)
        {
            dist = Mathf.Clamp(dist, minDis, maxDis);
        }

        //==

        if (Input.GetMouseButton(1))
        {
            angleXAxis -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
            angleYAxis += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
            //   angleYAxis %= 360;
        }

        //===================
                #elif !UNITY_EDITOR && (UNITY_IPHONE || UNITY_ANDROID)
        //===================

        if (Input.touchCount == 1 && MouseTools.rayCheckOverUI().Equals(false))
        {
            if (!fingerId.Equals(-1))
            {
                if (fingerId.Equals(Input.GetTouch(0).fingerId) && Input.GetTouch(0).phase == TouchPhase.Moved)
                {
                    fingerId    = Input.GetTouch(0).fingerId;
                    angleYAxis += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
                    angleXAxis -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;
                }
            }
            else
            {
                if (Input.GetTouch(0).phase == TouchPhase.Moved)
                {
                    fingerId = Input.GetTouch(0).fingerId;
                    //   angleYAxis += Input.GetAxis ("Mouse X") * xSpeed * 0.02f;
                    //   angleXAxis -= Input.GetAxis ("Mouse Y") * ySpeed * 0.02f;
                }
            }
        }


        if (Input.touchCount > 1 && (MouseTools.rayCheckOverUI(0).Equals(false) || MouseTools.rayCheckOverUI(1).Equals(false)))
        {
            if (Input.GetTouch(0).phase == TouchPhase.Stationary || Input.GetTouch(1).phase == TouchPhase.Stationary)
            {
                return;
            }
            if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved)
            {
                Vector2 tempPosition1 = Input.GetTouch(0).position;
                Vector2 tempPosition2 = Input.GetTouch(1).position;
                if (isEnlarge(oldPosition1, oldPosition2, tempPosition1, tempPosition2))
                {
//					if (distance > 1.5f) {
//						distance -= 0.5f;
//					}
                    if (dist > 1.5f)
                    {
                        dist -= .5f;
                    }
                }
                else
                {
//					if (distance < 10f) {
//						distance += 0.5f;
//					}
                    if (dist < 10f)
                    {
                        dist += 0.5f;
                    }
                }
                oldPosition1 = tempPosition1;
                oldPosition2 = tempPosition2;
            }
        }

        //   if (Input.touchCount == 0) {
        //   if (Input.GetMouseButton (1)) {
        //
        //   angleYAxis += Input.GetAxis ("Mouse X") * xSpeed * 0.02f;
        //   angleXAxis -= Input.GetAxis ("Mouse Y") * ySpeed * 0.02f;
        //
        //   }
        //   }
        //===================
                #endif
    }