zoukankan      html  css  js  c++  java
  • Unity 鼠标旋转物体360展示

    PC端

    using UnityEngine;
    using System.Collections;
     
    public class DragRound : MonoBehaviour {
     
        public Transform obj;
        public float speed = 2;
        
        private bool _mouseDown = false;
        
        void Update () 
        {
            if (Input.GetMouseButtonDown(0))
                _mouseDown = true;
            else if (Input.GetMouseButtonUp(0))
                _mouseDown = false;
    
            if (_mouseDown)
            {
                float fMouseX = Input.GetAxis("Mouse X");
                float fMouseY = Input.GetAxis("Mouse Y");
                obj.Rotate(Vector3.up, -fMouseX * speed, Space.World);
                obj.Rotate(Vector3.right, fMouseY * speed, Space.World);
            }
        }
    }

    移动端:

    using UnityEngine;
    using System.Collections;
     
    public class DragRoundPhone : MonoBehaviour {
     
        private Vector3 startFingerPos;
        private Vector3 nowFingerPos;
        private float xMoveDistance;
        private float yMoveDistance;
        private int backValue = 0;
        public GameObject obj;
        void Update()
        {
            if (Input.touchCount <= 0)
            {
                return;
            }
     
            if (Input.GetTouch(0).phase == TouchPhase.Began)
            {
                //Debug.Log("======开始触摸=====");  
                startFingerPos = Input.GetTouch(0).position;
            }
     
            nowFingerPos = Input.GetTouch(0).position;
     
            if ((Input.GetTouch(0).phase == TouchPhase.Stationary) || (Input.GetTouch(0).phase == TouchPhase.Ended))
            {
                startFingerPos = nowFingerPos;
                //Debug.Log("======释放触摸=====");  
                return;
            }
            //          if (Input.GetTouch(0).phase == TouchPhase.Ended) {  
            //                
            //          }  
            if (startFingerPos == nowFingerPos)
            {
                return;
            }
            xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);
            yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);
     
            if (xMoveDistance > yMoveDistance)
            {
                if (nowFingerPos.x - startFingerPos.x > 0)
                {
                    //Debug.Log("=======沿着X轴负方向移动=====");  
                    backValue = -1; //沿着X轴负方向移动  
                }
                else
                {
                    //Debug.Log("=======沿着X轴正方向移动=====");  
                    backValue = 1; //沿着X轴正方向移动  
                }
            }
            else
            {
                if (nowFingerPos.y - startFingerPos.y > 0)
                {
                    //Debug.Log("=======沿着Y轴正方向移动=====");  
                    backValue = 2; //沿着Y轴正方向移动  
                }
                else
                {
                    //Debug.Log("=======沿着Y轴负方向移动=====");  
                    backValue = -2; //沿着Y轴负方向移动  
                }
     
            }
            if (backValue == -1)
            {
                obj.transform.Rotate(Vector3.up * -1 * Time.deltaTime * 50, Space.World);
            }
            else if (backValue == 1)
            {
                obj.transform.Rotate(Vector3.up * Time.deltaTime * 50, Space.World);
            }
            else if (backValue == 2)
            {
                obj.transform.Rotate(Vector3.right * Time.deltaTime * 50, Space.World);
            }
            else if (backValue == -2)
            {
                obj.transform.Rotate(Vector3.right * -1 * Time.deltaTime * 50, Space.World);
            }  
     
        }  
    }
  • 相关阅读:
    阿里云ECS服务器安装docker
    ActiveMq-常见的问题
    ActiveMq-基础知识
    java语言概述
    【日语词汇类编】自然与人:气候与环境
    【日语词汇类编】传媒与娱乐:大众传播媒介
    机器学习数学基础-线性代数
    掌握机器学习数学基础之概率统计
    机器学习理论篇:机器学习的数学基础
    计算机基础知识
  • 原文地址:https://www.cnblogs.com/unity3ds/p/10837061.html
Copyright © 2011-2022 走看看