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);
            }  
     
        }  
    }
  • 相关阅读:
    5 float f = 3.4,是否正确
    4 String是基本数据类型吗
    3 访问修饰符public,private,protected以及不写(默认)时的区别
    1 请谈谈面向对象的三大特征?
    接口和抽象类有什么区别
    2 Java中 == 和 equals 和 hashCode 的区别
    java中重载(overload)与重写(override)的区别
    servlet中请求转发(forword)和重定向(redirect)的区别
    团队-项目名称五子棋-团队一阶段互评
    团队-项目名称五子棋-开发环境搭建过程
  • 原文地址:https://www.cnblogs.com/unity3ds/p/10837061.html
Copyright © 2011-2022 走看看