init
This commit is contained in:
29
Assets/Scripts/Camera/CameraController.cs
Normal file
29
Assets/Scripts/Camera/CameraController.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Camera
|
||||
{
|
||||
public class CameraController : MonoBehaviour
|
||||
{
|
||||
public float mouseSensitivity = 100.0f;
|
||||
public Transform playerBody;
|
||||
|
||||
private float _xRotation;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
var mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
|
||||
var mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
|
||||
|
||||
_xRotation -= mouseY;
|
||||
_xRotation = Mathf.Clamp(_xRotation, -90f, 90f);
|
||||
|
||||
transform.localRotation = Quaternion.Euler(_xRotation, 0f, 0f);
|
||||
playerBody.Rotate(Vector3.up * mouseX);
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Camera/CameraController.cs.meta
Normal file
3
Assets/Scripts/Camera/CameraController.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73886bd5d98b4e13af3b19513287a041
|
||||
timeCreated: 1725857707
|
||||
25
Assets/Scripts/Camera/CameraInteract.cs
Normal file
25
Assets/Scripts/Camera/CameraInteract.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using Event;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Camera
|
||||
{
|
||||
public class CameraInterAct : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private int maxInterActDistance = 10;
|
||||
[SerializeField] private GameObject target;
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
Physics.Raycast(transform.position, transform.forward, out var raycastHit, maxInterActDistance);
|
||||
if (raycastHit.collider)
|
||||
EventManager.Instance.OnCameraInterAct(raycastHit.collider.gameObject);
|
||||
}
|
||||
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
Gizmos.DrawLine(transform.position, transform.position + transform.forward * maxInterActDistance);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Camera/CameraInteract.cs.meta
Normal file
11
Assets/Scripts/Camera/CameraInteract.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0a3494e2751e9f649a71dbde9a2b7b58
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
44
Assets/Scripts/Camera/ScreenAspect.cs
Normal file
44
Assets/Scripts/Camera/ScreenAspect.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Camera
|
||||
{
|
||||
public class ScreenAspect : MonoBehaviour
|
||||
{
|
||||
//目标比例,默认16:9
|
||||
public float TargetAspect = 16f / 9f;
|
||||
private UnityEngine.Camera _mainCamera;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_mainCamera = UnityEngine.Camera.main;
|
||||
var windowAspect = Screen.width / (float)Screen.height;
|
||||
|
||||
var scaleHeight = windowAspect / TargetAspect;
|
||||
|
||||
if (scaleHeight < 1f)
|
||||
{
|
||||
var rect = _mainCamera.rect;
|
||||
|
||||
rect.width = 1f;
|
||||
rect.height = scaleHeight;
|
||||
rect.x = 0;
|
||||
rect.y = (1f - scaleHeight) / 2f;
|
||||
|
||||
_mainCamera.rect = rect;
|
||||
}
|
||||
else
|
||||
{
|
||||
var scaleWidth = 1f / scaleHeight;
|
||||
|
||||
var rect = _mainCamera.rect;
|
||||
|
||||
rect.width = scaleWidth;
|
||||
rect.height = 1f;
|
||||
rect.x = (1f - scaleWidth) / 2f;
|
||||
rect.y = 0;
|
||||
|
||||
_mainCamera.rect = rect;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Assets/Scripts/Camera/ScreenAspect.cs.meta
Normal file
3
Assets/Scripts/Camera/ScreenAspect.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83d8d7f8bc114be1b896a809ca71906c
|
||||
timeCreated: 1725861908
|
||||
Reference in New Issue
Block a user