继续推进Config更新, 并修复了打击效果中的Position未初始化的漏洞

This commit is contained in:
2025-12-19 16:46:54 +08:00
parent a8b8b82e92
commit a155e37c0a
5 changed files with 63 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
--- ---
alwaysApply: true alwaysApply: false
--- ---
## RIPER-5 + O1 思维 + 代理执行协议 ## RIPER-5 + O1 思维 + 代理执行协议

View File

@@ -1,7 +1,6 @@
using Convention; using Convention;
using Demo.Game.Attr; using Demo.Game.Attr;
using System.Collections; using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
namespace Demo.Game namespace Demo.Game

View File

@@ -17,43 +17,92 @@ namespace Demo.Game
{ {
public class CameraObjectConfig : ScriptLoadableConfig public class CameraObjectConfig : ScriptLoadableConfig
{ {
public bool IsSetupOrthographic = false;
public bool orthographic; public bool orthographic;
public bool IsSetupFieldOfView = false;
public float fieldOfView; public float fieldOfView;
public bool IsSetupOrthographicSize = false;
public float orthographicSize; public float orthographicSize;
public bool IsSetupNearClipPlane = false;
public float nearClipPlane; public float nearClipPlane;
public bool IsSetupFarClipPlane = false;
public float farClipPlane; public float farClipPlane;
public bool IsSetupDepth = false;
public float depth; public float depth;
public bool IsSetupVirtualCameraFollow = false;
public int VirtualCameraFollow; public int VirtualCameraFollow;
public bool IsSetupVirtualCameraLookAt = false;
public int VirtualCameraLookAt; public int VirtualCameraLookAt;
public bool IsSetupVirtualCameraFollowOffset = false;
public Vector3 VirtualCameraFollowOffset; public Vector3 VirtualCameraFollowOffset;
public bool IsSetupVirtualCameraLookAtDamping = false;
public Vector3 VirtualCameraLookAtDamping; public Vector3 VirtualCameraLookAtDamping;
public override void Deserialize(BinaryReader reader) public override void Deserialize(BinaryReader reader)
{ {
IsSetupOrthographic =BinarySerializeUtility.ReadBool(reader);
orthographic = BinarySerializeUtility.ReadBool(reader); orthographic = BinarySerializeUtility.ReadBool(reader);
IsSetupFieldOfView = BinarySerializeUtility.ReadBool(reader);
fieldOfView = BinarySerializeUtility.ReadFloat(reader); fieldOfView = BinarySerializeUtility.ReadFloat(reader);
IsSetupOrthographicSize = BinarySerializeUtility.ReadBool(reader);
orthographicSize = BinarySerializeUtility.ReadFloat(reader); orthographicSize = BinarySerializeUtility.ReadFloat(reader);
IsSetupNearClipPlane = BinarySerializeUtility.ReadBool(reader);
nearClipPlane = BinarySerializeUtility.ReadFloat(reader); nearClipPlane = BinarySerializeUtility.ReadFloat(reader);
IsSetupFarClipPlane = BinarySerializeUtility.ReadBool(reader);
farClipPlane = BinarySerializeUtility.ReadFloat(reader); farClipPlane = BinarySerializeUtility.ReadFloat(reader);
IsSetupDepth = BinarySerializeUtility.ReadBool(reader);
depth = BinarySerializeUtility.ReadFloat(reader); depth = BinarySerializeUtility.ReadFloat(reader);
IsSetupVirtualCameraFollow = BinarySerializeUtility.ReadBool(reader);
VirtualCameraFollow = BinarySerializeUtility.ReadInt(reader); VirtualCameraFollow = BinarySerializeUtility.ReadInt(reader);
IsSetupVirtualCameraLookAt = BinarySerializeUtility.ReadBool(reader);
VirtualCameraLookAt = BinarySerializeUtility.ReadInt(reader); VirtualCameraLookAt = BinarySerializeUtility.ReadInt(reader);
IsSetupVirtualCameraFollowOffset = BinarySerializeUtility.ReadBool(reader);
VirtualCameraFollowOffset = BinarySerializeUtility.ReadVec3(reader); VirtualCameraFollowOffset = BinarySerializeUtility.ReadVec3(reader);
IsSetupVirtualCameraLookAtDamping = BinarySerializeUtility.ReadBool(reader);
VirtualCameraLookAtDamping = BinarySerializeUtility.ReadVec3(reader); VirtualCameraLookAtDamping = BinarySerializeUtility.ReadVec3(reader);
base.Deserialize(reader); base.Deserialize(reader);
} }
public override void Serialize(BinaryWriter writer) public override void Serialize(BinaryWriter writer)
{ {
BinarySerializeUtility.WriteBool(writer, IsSetupOrthographic);
BinarySerializeUtility.WriteBool(writer, orthographic); BinarySerializeUtility.WriteBool(writer, orthographic);
BinarySerializeUtility.WriteBool(writer, IsSetupFieldOfView);
BinarySerializeUtility.WriteFloat(writer, fieldOfView); BinarySerializeUtility.WriteFloat(writer, fieldOfView);
BinarySerializeUtility.WriteBool(writer, IsSetupOrthographicSize);
BinarySerializeUtility.WriteFloat(writer, orthographicSize); BinarySerializeUtility.WriteFloat(writer, orthographicSize);
BinarySerializeUtility.WriteBool(writer, IsSetupNearClipPlane);
BinarySerializeUtility.WriteFloat(writer, nearClipPlane); BinarySerializeUtility.WriteFloat(writer, nearClipPlane);
BinarySerializeUtility.WriteBool(writer, IsSetupFarClipPlane);
BinarySerializeUtility.WriteFloat(writer, farClipPlane); BinarySerializeUtility.WriteFloat(writer, farClipPlane);
BinarySerializeUtility.WriteBool(writer, IsSetupDepth);
BinarySerializeUtility.WriteFloat(writer, depth); BinarySerializeUtility.WriteFloat(writer, depth);
BinarySerializeUtility.WriteBool(writer, IsSetupVirtualCameraFollow);
BinarySerializeUtility.WriteInt(writer, VirtualCameraFollow); BinarySerializeUtility.WriteInt(writer, VirtualCameraFollow);
BinarySerializeUtility.WriteBool(writer, IsSetupVirtualCameraLookAt);
BinarySerializeUtility.WriteInt(writer,VirtualCameraLookAt); BinarySerializeUtility.WriteInt(writer,VirtualCameraLookAt);
BinarySerializeUtility.WriteBool(writer, IsSetupVirtualCameraFollowOffset);
BinarySerializeUtility.WriteVec3(writer, VirtualCameraFollowOffset); BinarySerializeUtility.WriteVec3(writer, VirtualCameraFollowOffset);
BinarySerializeUtility.WriteBool(writer, IsSetupVirtualCameraLookAtDamping);
BinarySerializeUtility.WriteVec3(writer, VirtualCameraLookAtDamping); BinarySerializeUtility.WriteVec3(writer, VirtualCameraLookAtDamping);
base.Serialize(writer); base.Serialize(writer);
} }
@@ -67,7 +116,7 @@ namespace Demo.Game
{ {
return new CameraObjectConfig(); return new CameraObjectConfig();
} }
private Camera MainCamera => Camera.main; internal Camera MainCamera => Camera.main;
private CinemachineCamera m_VirtualCamera; private CinemachineCamera m_VirtualCamera;
private CinemachineCamera VirtualCamera private CinemachineCamera VirtualCamera
{ {
@@ -105,6 +154,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetOrthographic(bool orthographic) public void SetOrthographic(bool orthographic)
{ {
GetConfig<CameraObjectConfig>().IsSetupOrthographic = true;
GetConfig<CameraObjectConfig>().orthographic = MainCamera.orthographic = orthographic; GetConfig<CameraObjectConfig>().orthographic = MainCamera.orthographic = orthographic;
} }
@@ -114,6 +164,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetFieldOfView(float fieldOfView) public void SetFieldOfView(float fieldOfView)
{ {
GetConfig<CameraObjectConfig>().IsSetupFieldOfView = true;
GetConfig<CameraObjectConfig>().fieldOfView = MainCamera.fieldOfView = fieldOfView; GetConfig<CameraObjectConfig>().fieldOfView = MainCamera.fieldOfView = fieldOfView;
} }
@@ -123,6 +174,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetOrthographicSize(float orthographicSize) public void SetOrthographicSize(float orthographicSize)
{ {
GetConfig<CameraObjectConfig>().IsSetupOrthographicSize = true;
GetConfig<CameraObjectConfig>().orthographicSize = MainCamera.orthographicSize = orthographicSize; GetConfig<CameraObjectConfig>().orthographicSize = MainCamera.orthographicSize = orthographicSize;
} }
@@ -132,6 +184,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetNearClipPlane(float nearClipPlane) public void SetNearClipPlane(float nearClipPlane)
{ {
GetConfig<CameraObjectConfig>().IsSetupNearClipPlane = true;
GetConfig<CameraObjectConfig>().nearClipPlane = MainCamera.nearClipPlane = nearClipPlane; GetConfig<CameraObjectConfig>().nearClipPlane = MainCamera.nearClipPlane = nearClipPlane;
} }
@@ -141,6 +194,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetFarClipPlane(float farClipPlane) public void SetFarClipPlane(float farClipPlane)
{ {
GetConfig<CameraObjectConfig>().IsSetupFarClipPlane = true;
GetConfig<CameraObjectConfig>().farClipPlane = MainCamera.farClipPlane = farClipPlane; GetConfig<CameraObjectConfig>().farClipPlane = MainCamera.farClipPlane = farClipPlane;
} }
@@ -150,6 +204,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetDepth(float depth) public void SetDepth(float depth)
{ {
GetConfig<CameraObjectConfig>().IsSetupDepth = true;
GetConfig<CameraObjectConfig>().depth = MainCamera.depth = depth; GetConfig<CameraObjectConfig>().depth = MainCamera.depth = depth;
} }
@@ -159,6 +214,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetVirtualCameraFollow(ScriptableObject target) public void SetVirtualCameraFollow(ScriptableObject target)
{ {
GetConfig<CameraObjectConfig>().IsSetupVirtualCameraFollow = true;
GetConfig<CameraObjectConfig>().VirtualCameraFollow = GetRoot().FindIndex(target); GetConfig<CameraObjectConfig>().VirtualCameraFollow = GetRoot().FindIndex(target);
VirtualCamera.Follow = target.transform; VirtualCamera.Follow = target.transform;
} }
@@ -169,6 +225,7 @@ namespace Demo.Game
[Convention.RScript.Variable.Attr.Method] [Convention.RScript.Variable.Attr.Method]
public void SetVirtualCameraLookAt(ScriptableObject target) public void SetVirtualCameraLookAt(ScriptableObject target)
{ {
GetConfig<CameraObjectConfig>().IsSetupVirtualCameraLookAt = true;
GetConfig<CameraObjectConfig>().VirtualCameraLookAt = GetRoot().FindIndex(target); GetConfig<CameraObjectConfig>().VirtualCameraLookAt = GetRoot().FindIndex(target);
VirtualCamera.LookAt = target.transform; VirtualCamera.LookAt = target.transform;
} }
@@ -185,6 +242,7 @@ namespace Demo.Game
var body = VirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body) as CinemachineFollow; var body = VirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body) as CinemachineFollow;
if (body != null) if (body != null)
{ {
GetConfig<CameraObjectConfig>().IsSetupVirtualCameraFollowOffset = true;
GetConfig<CameraObjectConfig>().VirtualCameraFollowOffset = new Vector3(x, y, z); GetConfig<CameraObjectConfig>().VirtualCameraFollowOffset = new Vector3(x, y, z);
body.FollowOffset = new Vector3(x, y, z); body.FollowOffset = new Vector3(x, y, z);
} }
@@ -202,6 +260,7 @@ namespace Demo.Game
var aim = VirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body) as CinemachineRotationComposer; var aim = VirtualCamera.GetCinemachineComponent(CinemachineCore.Stage.Body) as CinemachineRotationComposer;
if (aim != null) if (aim != null)
{ {
GetConfig<CameraObjectConfig>().IsSetupVirtualCameraLookAtDamping = true;
GetConfig<CameraObjectConfig>().VirtualCameraLookAtDamping = new Vector3(x, y, z); GetConfig<CameraObjectConfig>().VirtualCameraLookAtDamping = new Vector3(x, y, z);
aim.Damping = new(x, y); aim.Damping = new(x, y);
} }

View File

@@ -81,10 +81,10 @@ namespace Demo.Game
ConventionUtility.StartCoroutine(this.LoadAssetBundle(ab, x => ConventionUtility.StartCoroutine(this.LoadAssetBundle(ab, x =>
{ {
GameObject sub = Instantiate(x.LoadAsset<GameObject>(prefab)); GameObject sub = Instantiate(x.LoadAsset<GameObject>(prefab));
sub.SetActive(false);
Prefabs.Add(sub); Prefabs.Add(sub);
sub.transform.SetParent(transform); sub.transform.SetParent(transform);
sub.transform.localPosition = Vector3.zero; sub.transform.localPosition = Vector3.zero;
sub.SetActive(false);
if(AssetBundles.ContainsKey(ab)==false) if(AssetBundles.ContainsKey(ab)==false)
AssetBundles.Add(ab, new()); AssetBundles.Add(ab, new());
AssetBundles[ab].Add(prefab); AssetBundles[ab].Add(prefab);

View File

@@ -102,6 +102,7 @@ namespace Demo.Game
sub.SetActive(false); sub.SetActive(false);
Prefabs.Add(levelId, sub); Prefabs.Add(levelId, sub);
sub.transform.SetParent(transform); sub.transform.SetParent(transform);
sub.transform.localPosition = Vector3.zero;
AssetBundles.Add(levelId, ab); AssetBundles.Add(levelId, ab);
Durations.Add(levelId, duration); Durations.Add(levelId, duration);
})); }));