修改框架

This commit is contained in:
MuHua-123
2025-05-23 17:44:49 +08:00
parent 1ddf587927
commit 937595b3b1
19 changed files with 403 additions and 0 deletions
@@ -0,0 +1,47 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 默认相机
/// </summary>
public class CameraDefault : CameraController {
public override Vector3 Position {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override Vector3 Forward {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override Vector3 Right {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override Vector3 EulerAngles {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override float Distance {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override void Initialize() {
ModuleCamera.OnCameraMode += ModuleCamera_OnCameraMode;
}
private void ModuleCamera_OnCameraMode(EnumCameraMode mode) {
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
return;
#endif
gameObject.SetActive(mode == EnumCameraMode.None);
if (mode == EnumCameraMode.None) { ModuleCamera.CurrentCamera = this; }
}
public override void ResetCamera() {
// transform.position = HotUpdateScene.I.StartPoint.position;
// transform.eulerAngles = HotUpdateScene.I.StartPoint.eulerAngles;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0f6f4a232485de9439914dc14b7df5a7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,68 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 移轴相机
/// </summary>
public class CameraMoveAxis : CameraController {
public Camera mainCamera;
public LayerMask layerMask;
private RaycastHit hitInfo;
public override Vector3 Position {
get => transform.position;
set => transform.position = value;
}
public override Vector3 Forward {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override Vector3 Right {
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
public override Vector3 EulerAngles {
get => transform.eulerAngles;
set => transform.eulerAngles = value;
}
public override float Distance {
get => GetVisualField();
set => SetVisualField(value);
}
private float GetVisualField() {
return Vector3.Distance(mainCamera.transform.localPosition, Vector3.zero);
}
private void SetVisualField(float value) {
value = Mathf.Clamp(value, 10, 30);
Vector3 direction = mainCamera.transform.localPosition - Vector3.zero;
mainCamera.transform.localPosition = direction.normalized * value;
// if (!Volume.profile.TryGet(out DepthOfField depthOfField)) { return; }
// depthOfField.focusDistance.SetValue(new FloatParameter(value));
}
public override void Initialize() {
ModuleCamera.OnCameraMode += ModuleCamera_OnCameraMode;
}
private void ModuleCamera_OnCameraMode(EnumCameraMode mode) {
gameObject.SetActive(mode == EnumCameraMode.MoveAxis);
if (mode == EnumCameraMode.MoveAxis) { ModuleCamera.CurrentCamera = this; }
}
public override void ResetCamera() {
// transform.position = HotUpdateScene.I.StartPoint.position;
// transform.eulerAngles = HotUpdateScene.I.StartPoint.eulerAngles;
}
public override Vector3 ScreenToWorldPosition(Vector3 screenPosition) {
Ray ray = mainCamera.ScreenPointToRay(screenPosition);
Physics.Raycast(ray, out hitInfo, 200f, layerMask);
Vector3 position = Vector3.zero;
if (hitInfo.transform != null) { position = hitInfo.point; }
return position;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: cc9103ac1c158bb41af1ba45de4f9d08
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: