完成Config初步
This commit is contained in:
@@ -238,7 +238,7 @@ namespace Demo.Game
|
|||||||
{
|
{
|
||||||
if (Parent == null)
|
if (Parent == null)
|
||||||
rootObjectCache = this as RootObject;
|
rootObjectCache = this as RootObject;
|
||||||
if (Parent is RootObject result)
|
else if (Parent is RootObject result)
|
||||||
rootObjectCache = result;
|
rootObjectCache = result;
|
||||||
else
|
else
|
||||||
rootObjectCache = Parent.GetRoot();
|
rootObjectCache = Parent.GetRoot();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using Convention;
|
using Convention;
|
||||||
using Demo.Game.Attr;
|
using Demo.Game.Attr;
|
||||||
using NUnit.Framework.Internal;
|
using System.Linq;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@@ -14,11 +14,20 @@ namespace Demo.Game
|
|||||||
{
|
{
|
||||||
public bool IsZooming;
|
public bool IsZooming;
|
||||||
public MathExtension.EaseCurveType ZoomCurve = MathExtension.EaseCurveType.OutCubic;
|
public MathExtension.EaseCurveType ZoomCurve = MathExtension.EaseCurveType.OutCubic;
|
||||||
|
public IInteraction.JudgementLevel[] LevelArray;
|
||||||
|
public string[] AssetBundles;
|
||||||
|
public string[] Prefabs;
|
||||||
|
public float[] Durations;
|
||||||
|
|
||||||
public override void Deserialize(BinaryReader reader)
|
public override void Deserialize(BinaryReader reader)
|
||||||
{
|
{
|
||||||
IsZooming = BinarySerializeUtility.ReadBool(reader);
|
IsZooming = BinarySerializeUtility.ReadBool(reader);
|
||||||
ZoomCurve = (MathExtension.EaseCurveType)BinarySerializeUtility.ReadInt(reader);
|
ZoomCurve = (MathExtension.EaseCurveType)BinarySerializeUtility.ReadInt(reader);
|
||||||
|
var temp = BinarySerializeUtility.DeserializeIntArray(reader);
|
||||||
|
LevelArray = (from item in temp select (IInteraction.JudgementLevel)item).ToArray();
|
||||||
|
AssetBundles = BinarySerializeUtility.DeserializeStringArray(reader);
|
||||||
|
Prefabs = BinarySerializeUtility.DeserializeStringArray(reader);
|
||||||
|
Durations = BinarySerializeUtility.DeserializeFloatArray(reader);
|
||||||
base.Deserialize(reader);
|
base.Deserialize(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,6 +35,10 @@ namespace Demo.Game
|
|||||||
{
|
{
|
||||||
BinarySerializeUtility.WriteBool(writer, IsZooming);
|
BinarySerializeUtility.WriteBool(writer, IsZooming);
|
||||||
BinarySerializeUtility.WriteInt(writer, (int)ZoomCurve);
|
BinarySerializeUtility.WriteInt(writer, (int)ZoomCurve);
|
||||||
|
BinarySerializeUtility.SerializeArray(writer, (from item in LevelArray select (int)item).ToArray());
|
||||||
|
BinarySerializeUtility.SerializeArray(writer, AssetBundles);
|
||||||
|
BinarySerializeUtility.SerializeArray(writer, Prefabs);
|
||||||
|
BinarySerializeUtility.SerializeArray(writer, Durations);
|
||||||
base.Serialize(writer);
|
base.Serialize(writer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace Demo.Game
|
|||||||
[Convention.RScript.Variable.Attr.Method]
|
[Convention.RScript.Variable.Attr.Method]
|
||||||
public void Add(float time, ScriptableObject target)
|
public void Add(float time, ScriptableObject target)
|
||||||
{
|
{
|
||||||
ManualAddEntry(time, LookAtCache.Count - 1, default);
|
ManualAddEntry(time, GetRoot().FindIndex(target), default);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -1,10 +1,31 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using Convention;
|
using Convention;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
|
namespace ConfigType
|
||||||
|
{
|
||||||
|
public class BaseOnMaterialUpdatementConfig : UpdatementFloatConfig
|
||||||
|
{
|
||||||
|
public int TargetMeshRenderer;
|
||||||
|
|
||||||
|
public override void Deserialize(BinaryReader reader)
|
||||||
|
{
|
||||||
|
TargetMeshRenderer = BinarySerializeUtility.ReadInt(reader);
|
||||||
|
base.Deserialize(reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Serialize(BinaryWriter writer)
|
||||||
|
{
|
||||||
|
BinarySerializeUtility.WriteInt(writer, TargetMeshRenderer);
|
||||||
|
base.Serialize(writer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public abstract class BaseOnMaterialUpdatement : Updatement<float>
|
public abstract class BaseOnMaterialUpdatement : Updatement<float>
|
||||||
{
|
{
|
||||||
public abstract string TargetFieldName { get; }
|
public abstract string TargetFieldName { get; }
|
||||||
@@ -27,13 +48,9 @@ namespace Demo.Game
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="path">脚本位置</param>
|
/// <param name="path">脚本位置</param>
|
||||||
[Convention.RScript.Variable.Attr.Method]
|
[Convention.RScript.Variable.Attr.Method]
|
||||||
public void Load(string path)
|
public void Load(ScriptableObject obj)
|
||||||
{
|
{
|
||||||
var so = FindWithPath(path, false);
|
TargetMeshRenderer = obj.GetComponent<MeshRenderer>();
|
||||||
if (so != null)
|
|
||||||
{
|
|
||||||
TargetMeshRenderer = so.GetComponent<MeshRenderer>();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Convention;
|
using Convention;
|
||||||
|
using Demo.Game.Attr;
|
||||||
using Unity.VisualScripting;
|
using Unity.VisualScripting;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
|
[Scriptable]
|
||||||
public class ColorUpdatement : BaseOnMaterialUpdatement
|
public class ColorUpdatement : BaseOnMaterialUpdatement
|
||||||
{
|
{
|
||||||
public static ColorUpdatement Make()
|
public static ColorUpdatement Make()
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Convention;
|
using Convention;
|
||||||
|
using Demo.Game.Attr;
|
||||||
using Unity.VisualScripting;
|
using Unity.VisualScripting;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
|
[Scriptable]
|
||||||
public class EmissionColorUpdatement : BaseOnMaterialUpdatement
|
public class EmissionColorUpdatement : BaseOnMaterialUpdatement
|
||||||
{
|
{
|
||||||
public static EmissionColorUpdatement Make()
|
public static EmissionColorUpdatement Make()
|
||||||
|
|||||||
@@ -36,6 +36,16 @@ namespace Demo.Game
|
|||||||
|
|
||||||
public abstract class BasicSplineRenderer : Updatement<SplineClipDuration>, IAssetBundleLoader, IDependOnSplineCore
|
public abstract class BasicSplineRenderer : Updatement<SplineClipDuration>, IAssetBundleLoader, IDependOnSplineCore
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 加载并绑定到新样条线
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path">对象路径, 不存在时则立刻加载</param>
|
||||||
|
[Convention.RScript.Variable.Attr.Method]
|
||||||
|
public void LoadSpline(SplineCore core)
|
||||||
|
{
|
||||||
|
MySplineCore = core;
|
||||||
|
}
|
||||||
|
|
||||||
[Content] public SplineCore MySplineCore { get; set; }
|
[Content] public SplineCore MySplineCore { get; set; }
|
||||||
[Content] private MeshFilter m_MeshFilter;
|
[Content] private MeshFilter m_MeshFilter;
|
||||||
[Content] private MeshRenderer m_MyMeshRenderer;
|
[Content] private MeshRenderer m_MyMeshRenderer;
|
||||||
|
|||||||
@@ -38,6 +38,15 @@ namespace Demo.Game
|
|||||||
[Scriptable]
|
[Scriptable]
|
||||||
public class SplineAnchor : ScriptableObject, IDependOnSplineCore
|
public class SplineAnchor : ScriptableObject, IDependOnSplineCore
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 加载并绑定到新样条线
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path">对象路径, 不存在时则立刻加载</param>
|
||||||
|
[Convention.RScript.Variable.Attr.Method]
|
||||||
|
public void LoadSpline(SplineCore core)
|
||||||
|
{
|
||||||
|
MySplineCore = core;
|
||||||
|
}
|
||||||
public static SplineAnchor Make()
|
public static SplineAnchor Make()
|
||||||
{
|
{
|
||||||
return new GameObject().AddComponent<SplineAnchor>();
|
return new GameObject().AddComponent<SplineAnchor>();
|
||||||
|
|||||||
@@ -51,15 +51,7 @@ namespace Demo.Game
|
|||||||
public interface IDependOnSplineCore : IScriptableObject
|
public interface IDependOnSplineCore : IScriptableObject
|
||||||
{
|
{
|
||||||
SplineCore MySplineCore { get; set; }
|
SplineCore MySplineCore { get; set; }
|
||||||
/// <summary>
|
void LoadSpline(SplineCore core);
|
||||||
/// 加载并绑定到新样条线
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="path">对象路径, 不存在时则立刻加载</param>
|
|
||||||
[Convention.RScript.Variable.Attr.Method]
|
|
||||||
void LoadSpline(SplineCore core)
|
|
||||||
{
|
|
||||||
MySplineCore = core;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Scriptable]
|
[Scriptable]
|
||||||
|
|||||||
@@ -27,6 +27,15 @@ namespace Demo.Game
|
|||||||
|
|
||||||
public abstract class BasicSplineJustFollow : Updatement<float>, IDependOnSplineCore
|
public abstract class BasicSplineJustFollow : Updatement<float>, IDependOnSplineCore
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 加载并绑定到新样条线
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path">对象路径, 不存在时则立刻加载</param>
|
||||||
|
[Convention.RScript.Variable.Attr.Method]
|
||||||
|
public void LoadSpline(SplineCore core)
|
||||||
|
{
|
||||||
|
MySplineCore = core;
|
||||||
|
}
|
||||||
public SplineCore MySplineCore { get; set; }
|
public SplineCore MySplineCore { get; set; }
|
||||||
|
|
||||||
protected override float Lerp(float begin, float end, float t)
|
protected override float Lerp(float begin, float end, float t)
|
||||||
|
|||||||
@@ -9,23 +9,6 @@ using UnityEngine.Rendering.Universal;
|
|||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
namespace ConfigType
|
|
||||||
{
|
|
||||||
// BaseVolume 配置(抽象基类Config)
|
|
||||||
public class BaseVolumeConfig : ScriptLoadableConfig
|
|
||||||
{
|
|
||||||
public override void Deserialize(BinaryReader reader)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Serialize(BinaryWriter writer)
|
|
||||||
{
|
|
||||||
base.Serialize(writer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class BaseVolume : ScriptableObject
|
public abstract class BaseVolume : ScriptableObject
|
||||||
{
|
{
|
||||||
[Resources, SerializeField] private Volume m_volume;
|
[Resources, SerializeField] private Volume m_volume;
|
||||||
|
|||||||
@@ -4,6 +4,11 @@ using UnityEngine.Rendering.Universal;
|
|||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
|
namespace ConfigType
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
[Scriptable]
|
[Scriptable]
|
||||||
public class MotionBlurVolume : BaseForSingleVolume<MotionBlur>
|
public class MotionBlurVolume : BaseForSingleVolume<MotionBlur>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,10 +1,37 @@
|
|||||||
using Convention;
|
using Convention;
|
||||||
using Demo.Game.Attr;
|
using Demo.Game.Attr;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.IO;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Demo.Game
|
namespace Demo.Game
|
||||||
{
|
{
|
||||||
|
namespace ConfigType
|
||||||
|
{
|
||||||
|
public class BaseVolumeUpdatementConfig:ScriptLoadableConfig
|
||||||
|
{
|
||||||
|
public int target;
|
||||||
|
public string updateOverride;
|
||||||
|
public string updateField;
|
||||||
|
|
||||||
|
public override void Deserialize(BinaryReader reader)
|
||||||
|
{
|
||||||
|
target = BinarySerializeUtility.ReadInt(reader);
|
||||||
|
updateOverride = BinarySerializeUtility.ReadString(reader);
|
||||||
|
updateField = BinarySerializeUtility.ReadString(reader);
|
||||||
|
base.Deserialize(reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Serialize(BinaryWriter writer)
|
||||||
|
{
|
||||||
|
BinarySerializeUtility.WriteInt(writer, target);
|
||||||
|
BinarySerializeUtility.WriteString(writer, updateOverride);
|
||||||
|
BinarySerializeUtility.WriteString(writer, updateField);
|
||||||
|
base.Serialize(writer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public abstract class BaseVolumeUpdatement<T> : Updatement<T> where T : unmanaged
|
public abstract class BaseVolumeUpdatement<T> : Updatement<T> where T : unmanaged
|
||||||
{
|
{
|
||||||
[Content, SerializeField] private BaseVolume target;
|
[Content, SerializeField] private BaseVolume target;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Demo.Game
|
|||||||
namespace ConfigType
|
namespace ConfigType
|
||||||
{
|
{
|
||||||
// VolumeObject 配置
|
// VolumeObject 配置
|
||||||
public class VolumeObjectConfig : BaseVolumeConfig
|
public class VolumeObjectConfig : ScriptLoadableConfig
|
||||||
{
|
{
|
||||||
public string MyAssetBundle, MyProfile;
|
public string MyAssetBundle, MyProfile;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user