parent
c1d8cd2d50
commit
cb32941c5b
@ -0,0 +1,122 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
public class RotateCamera : MonoBehaviour
|
||||
|
||||
{
|
||||
|
||||
public Transform CenObj;//围绕的物体
|
||||
public float ratio = 1.0f;//放大缩小速率
|
||||
public float min_distance = 5.0f; //相机距物体最小距离
|
||||
public float max_distance = 10.0f;//相机距物体最大距离
|
||||
|
||||
//滑动结束时的瞬时速度
|
||||
Vector3 Speed = Vector3.zero;
|
||||
//每帧偏差
|
||||
Vector3 offSet = Vector3.zero;
|
||||
|
||||
//速率衰减值
|
||||
public float decelerationRate = 0.2f;
|
||||
|
||||
private Vector3 Rotion_Transform;
|
||||
|
||||
private new Camera camera;
|
||||
|
||||
void Start()
|
||||
|
||||
{
|
||||
camera = GetComponent<Camera>();
|
||||
|
||||
Rotion_Transform = CenObj.position;
|
||||
}
|
||||
|
||||
void Update()
|
||||
|
||||
{
|
||||
|
||||
Ctrl_Cam_Move();
|
||||
|
||||
Cam_Ctrl_Rotation();
|
||||
|
||||
ClickDo();
|
||||
|
||||
}
|
||||
|
||||
//镜头的远离和接近
|
||||
|
||||
public void Ctrl_Cam_Move()
|
||||
|
||||
{
|
||||
Vector3 mousePos = camera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0.1f));
|
||||
if (Input.GetAxis("Mouse ScrollWheel") > 0 && Vector3.Distance(CenObj.position, camera.transform.position) > min_distance) //放大
|
||||
|
||||
{
|
||||
|
||||
camera.transform.position -= ratio * (camera.transform.position - mousePos);
|
||||
|
||||
}
|
||||
|
||||
if (Input.GetAxis("Mouse ScrollWheel") < 0 && Vector3.Distance(CenObj.position, camera.transform.position) < max_distance) //缩小
|
||||
|
||||
{
|
||||
|
||||
camera.transform.position += ratio * (camera.transform.position - mousePos);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//摄像机的旋转
|
||||
|
||||
public void Cam_Ctrl_Rotation()
|
||||
|
||||
{
|
||||
|
||||
var mouse_x = Input.GetAxis("Mouse X");//获取鼠标X轴移动
|
||||
|
||||
var mouse_y = -Input.GetAxis("Mouse Y");//获取鼠标Y轴移动
|
||||
|
||||
if (Input.GetMouseButton(1))
|
||||
{
|
||||
offSet.x = mouse_x;
|
||||
offSet.y = mouse_y;
|
||||
//瞬时速度
|
||||
Speed = offSet / Time.deltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
Speed *= Mathf.Pow(decelerationRate, Time.deltaTime);
|
||||
if (Mathf.Abs(Vector3.Magnitude(Speed)) < 1)
|
||||
{
|
||||
Speed = Vector3.zero;
|
||||
}
|
||||
|
||||
}
|
||||
Move(Speed);
|
||||
|
||||
}
|
||||
public void Move(Vector3 speed)
|
||||
{
|
||||
if (Vector3.Magnitude(speed) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// Debug.Log("Move");
|
||||
transform.RotateAround(Rotion_Transform, Vector3.up, speed.x * Time.deltaTime * 2.0f);
|
||||
|
||||
transform.RotateAround(Rotion_Transform, transform.right, speed.y * Time.deltaTime * 2.0f);
|
||||
|
||||
}
|
||||
|
||||
public void ClickDo() {
|
||||
if (Input.GetMouseButtonDown(0)) {
|
||||
CenObj.GetComponentInChildren<Rigidbody>().useGravity = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 754bd182e35a1834f9c95cd9e0c9e11a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,44 +1,44 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"com.unity.collab-proxy": "1.17.2",
|
||||
"com.unity.ide.rider": "2.0.7",
|
||||
"com.unity.ide.visualstudio": "2.0.16",
|
||||
"com.unity.ide.vscode": "1.2.5",
|
||||
"com.unity.test-framework": "1.1.31",
|
||||
"com.unity.textmeshpro": "3.0.6",
|
||||
"com.unity.timeline": "1.4.8",
|
||||
"com.unity.ugui": "1.0.0",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
"com.unity.modules.androidjni": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
"com.unity.modules.assetbundle": "1.0.0",
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.autostreaming": "1.0.0",
|
||||
"com.unity.modules.cloth": "1.0.0",
|
||||
"com.unity.modules.director": "1.0.0",
|
||||
"com.unity.modules.imageconversion": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.particlesystem": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.physics2d": "1.0.0",
|
||||
"com.unity.modules.screencapture": "1.0.0",
|
||||
"com.unity.modules.terrain": "1.0.0",
|
||||
"com.unity.modules.terrainphysics": "1.0.0",
|
||||
"com.unity.modules.tilemap": "1.0.0",
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.uielements": "1.0.0",
|
||||
"com.unity.modules.umbra": "1.0.0",
|
||||
"com.unity.modules.unityanalytics": "1.0.0",
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||
"com.unity.modules.unitywebrequesttexture": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestwww": "1.0.0",
|
||||
"com.unity.modules.vehicles": "1.0.0",
|
||||
"com.unity.modules.video": "1.0.0",
|
||||
"com.unity.modules.vr": "1.0.0",
|
||||
"com.unity.modules.wind": "1.0.0",
|
||||
"com.unity.modules.xr": "1.0.0"
|
||||
}
|
||||
}
|
||||
"dependencies": {
|
||||
"com.unity.collab-proxy": "1.17.2",
|
||||
"com.unity.ide.rider": "3.0.15",
|
||||
"com.unity.ide.visualstudio": "2.0.16",
|
||||
"com.unity.ide.vscode": "1.2.5",
|
||||
"com.unity.test-framework": "1.1.31",
|
||||
"com.unity.textmeshpro": "3.0.6",
|
||||
"com.unity.timeline": "1.4.8",
|
||||
"com.unity.ugui": "1.0.0",
|
||||
"com.unity.modules.ai": "1.0.0",
|
||||
"com.unity.modules.androidjni": "1.0.0",
|
||||
"com.unity.modules.animation": "1.0.0",
|
||||
"com.unity.modules.assetbundle": "1.0.0",
|
||||
"com.unity.modules.audio": "1.0.0",
|
||||
"com.unity.modules.autostreaming": "1.0.0",
|
||||
"com.unity.modules.cloth": "1.0.0",
|
||||
"com.unity.modules.director": "1.0.0",
|
||||
"com.unity.modules.imageconversion": "1.0.0",
|
||||
"com.unity.modules.imgui": "1.0.0",
|
||||
"com.unity.modules.jsonserialize": "1.0.0",
|
||||
"com.unity.modules.particlesystem": "1.0.0",
|
||||
"com.unity.modules.physics": "1.0.0",
|
||||
"com.unity.modules.physics2d": "1.0.0",
|
||||
"com.unity.modules.screencapture": "1.0.0",
|
||||
"com.unity.modules.terrain": "1.0.0",
|
||||
"com.unity.modules.terrainphysics": "1.0.0",
|
||||
"com.unity.modules.tilemap": "1.0.0",
|
||||
"com.unity.modules.ui": "1.0.0",
|
||||
"com.unity.modules.uielements": "1.0.0",
|
||||
"com.unity.modules.umbra": "1.0.0",
|
||||
"com.unity.modules.unityanalytics": "1.0.0",
|
||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestaudio": "1.0.0",
|
||||
"com.unity.modules.unitywebrequesttexture": "1.0.0",
|
||||
"com.unity.modules.unitywebrequestwww": "1.0.0",
|
||||
"com.unity.modules.vehicles": "1.0.0",
|
||||
"com.unity.modules.video": "1.0.0",
|
||||
"com.unity.modules.vr": "1.0.0",
|
||||
"com.unity.modules.wind": "1.0.0",
|
||||
"com.unity.modules.xr": "1.0.0"
|
||||
}
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
m_EditorVersion: 2020.3.38f1c1
|
||||
m_EditorVersionWithRevision: 2020.3.38f1c1 (7f6c29cb6f61)
|
||||
m_EditorVersion: 2020.3.40f1c1
|
||||
m_EditorVersionWithRevision: 2020.3.40f1c1 (739f03df2e02)
|
||||
|
@ -0,0 +1,59 @@
|
||||
|
||||
Library
|
||||
library
|
||||
Temp
|
||||
temp
|
||||
Obj
|
||||
obj
|
||||
Build
|
||||
build
|
||||
Builds
|
||||
builds
|
||||
UserSettings
|
||||
usersettings
|
||||
MemoryCaptures
|
||||
memorycaptures
|
||||
Logs
|
||||
logs
|
||||
/ignore.conf
|
||||
*.private
|
||||
*.private.meta
|
||||
^*.private.[0-9]+$
|
||||
^*.private.[0-9]+.meta$
|
||||
**/Assets/AssetStoreTools
|
||||
**/assets/assetstoretools
|
||||
/Assets/Plugins/PlasticSCM*
|
||||
/assets/plugins/PlasticSCM*
|
||||
.vs
|
||||
.gradle
|
||||
ExportedObj
|
||||
.consulo
|
||||
*.csproj
|
||||
*.unityproj
|
||||
*.sln
|
||||
*.suo
|
||||
*.tmp
|
||||
*.user
|
||||
*.userprefs
|
||||
*.pidb
|
||||
*.booproj
|
||||
*.svd
|
||||
*.pdb
|
||||
*.mdb
|
||||
*.opendb
|
||||
*.VC.db
|
||||
*.pidb.meta
|
||||
*.pdb.meta
|
||||
*.mdb.meta
|
||||
sysinfo.txt
|
||||
*.apk
|
||||
*.unitypackage
|
||||
.collabignore
|
||||
crashlytics-build.properties
|
||||
**/Assets/AddressableAssetsData/*/*.bin*
|
||||
**/assets/addressableassetsdata/*/*.bin*
|
||||
**/Assets/StreamingAssets/aa.meta
|
||||
**/assets/streamingassets/*/aa/*
|
||||
.DS_Store*
|
||||
Thumbs.db
|
||||
Desktop.ini
|
Loading…
Reference in new issue