mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/MI-38.git
synced 2026-01-24 07:05:39 +03:00
04.07.2022
This commit is contained in:
100
Heli_with_panels/Assets/Fusel/scripts/CameraFree.cs
Normal file
100
Heli_with_panels/Assets/Fusel/scripts/CameraFree.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
public class CameraFree : MonoBehaviour//, IPointerDownHandler
|
||||
{
|
||||
public Transform target;
|
||||
//private Transform Changedtarget;
|
||||
//public Transform Changedtarget;
|
||||
public Vector3 offset;
|
||||
public float sensitivity = 3; // чувствительность мышки
|
||||
public float limit = 80; // ограничение вращения по Y
|
||||
public float zoom = 0.25f; // чувствительность при увеличении, колесиком мышки
|
||||
public float zoomMax = 10; // макс. увеличение
|
||||
public float zoomMin = 3; // мин. увеличение
|
||||
private float X, Y;
|
||||
|
||||
void Start()
|
||||
{
|
||||
limit = Mathf.Abs(limit);
|
||||
if (limit > 90) limit = 90;
|
||||
offset = new Vector3(offset.x, offset.y, -Mathf.Abs(zoomMax) / 2);
|
||||
transform.position = target.position + offset;
|
||||
transform.rotation = Quaternion.Euler(10, 147, 0); //установка исходных значений камеры по rotation
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetAxis("Mouse ScrollWheel") > 0) offset.z += zoom;
|
||||
else if (Input.GetAxis("Mouse ScrollWheel") < 0) offset.z -= zoom;
|
||||
offset.z = Mathf.Clamp(offset.z, -Mathf.Abs(zoomMax), -Mathf.Abs(zoomMin));
|
||||
|
||||
if (Input.GetKey(KeyCode.Mouse1))
|
||||
{
|
||||
X = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivity;
|
||||
Y += Input.GetAxis("Mouse Y") * sensitivity;
|
||||
Y = Mathf.Clamp(Y, -limit, limit);
|
||||
transform.localEulerAngles = new Vector3(-Y, X, 0);
|
||||
}
|
||||
//transform.localEulerAngles = new Vector3(-Y, X, 0); //строка скопирована на строку выше
|
||||
transform.position = transform.localRotation * offset + target.position;
|
||||
}
|
||||
|
||||
public void ChangeTargetPOSopr() //смена таргета на другой, вокруг которого будет крутиться камера
|
||||
{
|
||||
//GameObject.FindGameObjectsWithTag("POSopr");
|
||||
target = GameObject.FindGameObjectsWithTag("POSopr")[0].transform;
|
||||
offset.y = 0;
|
||||
zoom = 5;
|
||||
zoomMax = 100;
|
||||
zoomMin = 5;
|
||||
}
|
||||
public void ChangeTargetPOSnv() //смена таргета на другой, вокруг которого будет крутиться камера
|
||||
{
|
||||
//GameObject.FindGameObjectsWithTag("POSopr");
|
||||
target = GameObject.FindGameObjectsWithTag("POSnv")[0].transform;
|
||||
offset.y = 0;
|
||||
zoom = 5;
|
||||
zoomMax = 100;
|
||||
zoomMin = 5;
|
||||
}
|
||||
public void ChangeTargetPOSrv() //смена таргета на другой, вокруг которого будет крутиться камера
|
||||
{
|
||||
//GameObject.FindGameObjectsWithTag("POSopr");
|
||||
target = GameObject.FindGameObjectsWithTag("POSrv")[0].transform;
|
||||
offset.y = 0;
|
||||
zoom = 5;
|
||||
zoomMax = 100;
|
||||
zoomMin = 5;
|
||||
}
|
||||
public void ChangeTargetPOSPOZ() //смена таргета на другой, вокруг которого будет крутиться камера
|
||||
{
|
||||
//GameObject.FindGameObjectsWithTag("POSopr");
|
||||
target = GameObject.FindGameObjectsWithTag("POSPZU")[0].transform;
|
||||
offset.y = 0;
|
||||
zoom = 5;
|
||||
zoomMax = 100;
|
||||
zoomMin = 5;
|
||||
}
|
||||
public void ChangeTargetPOSOut() //возврат при смене таргета на исходный, вокруг которого будет крутиться камера
|
||||
{
|
||||
//GameObject.FindGameObjectsWithTag("POSopr");
|
||||
target = GameObject.FindGameObjectsWithTag("Cabin")[0].transform;
|
||||
offset.y = 1.5f;
|
||||
zoom = 5;
|
||||
zoomMax = 170;
|
||||
zoomMin = 20;
|
||||
}
|
||||
//public float sensitivity = 3; // чувствительность мышки
|
||||
//private float X, Y;
|
||||
|
||||
//void Update()
|
||||
//{
|
||||
// X = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivity;
|
||||
// Y += Input.GetAxis("Mouse Y") * sensitivity;
|
||||
// Y = Mathf.Clamp(Y, -90, 90);
|
||||
// transform.localEulerAngles = new Vector3(-Y, X, 0);
|
||||
//}
|
||||
}
|
||||
Reference in New Issue
Block a user