• 大小: 2.08MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-13
  • 语言: 其他
  • 标签: Unity3D  

资源简介

Unity3D 旋转相机视角 镜头缩放 拖动相机视角 Game视窗还原Sence视窗功能

资源截图

代码片段和文件信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseOrbit : MonoBehaviour {

    
    //偏移量和中心店
    Vector3 offest;
    Vector3 target;

    //记录第一坐标
    Vector3 P1;

    float distance = 15.0f;

    float xSpeed = 250.0f;
    float ySpeed = 120.0f;

    float x = 0.0f;
    float y = 0.0f;

    //相机移动速度
    float Speed = 40.0f;

    // Use this for initialization
    void Start ()
    {

        var angles = transform.eulerAngles;
        x = angles.y;
        y = angles.x;

        //旋转中心初始点
        target = new Vector3(0 0 0);
    }

    private void Update()
    {
    }
    void LateUpdate()
    {      
        if (Input.GetMouseButton(0))
        {
            
            x += Input.GetAxis(“Mouse X“) * xSpeed * 0.02f;
            y -= Input.GetAxis(“Mouse Y“) * ySpeed * 0.02f;

            //返回一个四元数 绕某个轴旋转某个角度
            var rotation = Quaternion.Euler(y x 0);
            var position = rotation * new Vector3(0.0f 0.0f -distance) + target;

            transform.rotation = rotation;
            transform.position = position;
           
        }
        else if(Input.GetMouseButton(1))
        {
            
            float x;
            float y;
            x = Input.GetAxis(“Mouse X“);
            y = Input.GetAxis(“Mouse Y“);
            transform.Translate(new Vector3(-x -y 0) * Time.deltaTime * Speed);
            //print(“转换过的:“ + Camera.main.ScreenToWorldPoint(new Vector3(x y 0)));
                  
        }
       
        
        if (Input.GetMouseButtonDown(1))
        {
          
            P1 = transform.position;

        }
        if (Input.GetMouseButtonUp(1))
        {
            
            ////利用射线检测来获取屏幕中心点坐标
            Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2 Screen.height / 2 0));
            RaycastHit hit;
            if (Physics.Raycast(ray out hit))  
            {
                if (hit.collider)
                {
                    target = new Vector3(hit.point.x hit.point.y hit.point.z);
                    distance = (hit.point - transform.position).magnitude;
                    print(hit.collider.name);
                }
            }
            else
            {

                offest = transform.position - P1;
                target = target + offest;
                distance = (target - transform.position).magnitude;
            }


        }

    }
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-01-08 11:55  Project\
     目录           0  2018-01-08 11:26  Project\.vs\
     目录           0  2018-01-08 11:26  Project\.vs\Project\
     目录           0  2018-01-08 11:26  Project\.vs\Project\v15\
     文件      114176  2018-01-08 11:55  Project\.vs\Project\v15\.suo
     目录           0  2018-01-08 11:26  Project\.vs\Project\v15\Server\
     目录           0  2018-01-08 11:55  Project\.vs\Project\v15\Server\sqlite3\
     文件           0  2018-01-08 11:26  Project\.vs\Project\v15\Server\sqlite3\db.lock
     文件      720896  2018-01-08 11:55  Project\.vs\Project\v15\Server\sqlite3\storage.ide
     目录           0  2018-01-08 11:23  Project\.vs\RotateProject-1.2\
     目录           0  2018-01-08 11:23  Project\.vs\RotateProject-1.2\v15\
     文件      138752  2018-01-05 10:10  Project\.vs\RotateProject-1.2\v15\.suo
     目录           0  2018-01-08 11:23  Project\.vs\RotateProject-1.2\v15\Server\
     目录           0  2018-01-08 11:23  Project\.vs\RotateProject-1.2\v15\Server\sqlite3\
     文件           0  2018-01-02 14:12  Project\.vs\RotateProject-1.2\v15\Server\sqlite3\db.lock
     文件      749568  2018-01-05 10:10  Project\.vs\RotateProject-1.2\v15\Server\sqlite3\storage.ide
     目录           0  2018-01-08 11:25  Project\Assets\
     目录           0  2018-01-08 11:23  Project\Assets\Resources\
     目录           0  2018-01-08 11:23  Project\Assets\Resources\Prefabs\
     文件        3106  2018-01-03 15:40  Project\Assets\Resources\Prefabs\Cube.prefab
     文件         232  2018-01-03 14:35  Project\Assets\Resources\Prefabs\Cube.prefab.meta
     文件         214  2018-01-03 14:35  Project\Assets\Resources\Prefabs.meta
     文件         214  2018-01-03 14:35  Project\Assets\Resources.meta
     目录           0  2018-01-08 11:26  Project\Assets\Scirpts\
     文件        2675  2018-01-05 09:57  Project\Assets\Scirpts\MouseOrbit.cs
     文件         285  2018-01-02 14:11  Project\Assets\Scirpts\MouseOrbit.cs.meta
     文件         790  2018-01-08 11:26  Project\Assets\Scirpts\SWZoom.cs
     文件         285  2018-01-02 15:01  Project\Assets\Scirpts\SWZoom.cs.meta
     文件         214  2018-01-02 14:11  Project\Assets\Scirpts.meta
     文件       25668  2018-01-08 11:25  Project\Assets\test.unity
     文件         197  2018-01-02 14:08  Project\Assets\test.unity.meta
............此处省略618个文件信息

评论

共有 条评论