From c9a4456308d976949ee678847d3b09f0112eea10 Mon Sep 17 00:00:00 2001 From: Roman <1325980292@qq.com> Date: Wed, 11 Aug 2021 02:17:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=9A=E6=8E=A8=E8=BF=9B?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E7=9A=84=E6=B5=81=E7=A8=8B=E5=8C=96=20?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=EF=BC=9A=E3=80=90=E5=BA=8F=E7=AB=A0-?= =?UTF-8?q?=E5=AE=B6=E4=B8=AD=E3=80=91=201.=E5=88=9B=E5=BB=BA=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E7=89=A9=E4=BD=93=E3=80=90=E5=A4=9A=E6=80=81=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E3=80=91=20*=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=E6=96=87=E4=BB=B6=E5=A4=B9=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E8=87=B3=E4=B8=AD=E6=96=87=20*=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=8B=A5=E5=B9=B2Bug=202.=E5=88=9B=E5=BB=BA=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E3=80=90PolymorphicAdministrator=E3=80=91=203.=E7=BC=96?= =?UTF-8?q?=E5=86=99=E3=80=90PolymorphicAdministrator=E3=80=91=E7=9A=84?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E9=80=BB=E8=BE=91=204.=E4=B8=BA=E6=95=B0?= =?UTF-8?q?=E5=80=BC=E8=AE=B0=E5=BD=95=E8=80=85=E6=B7=BB=E5=8A=A0=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E3=80=90stageName=E3=80=91=EF=BC=8C=E7=94=A8=E6=9D=A5?= =?UTF-8?q?=E8=AF=86=E4=BD=9C=E4=B8=BA=E5=A4=9A=E6=80=81=E7=9A=84=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E6=A0=87=E5=BF=97=205.=E5=AE=8C=E6=88=90=E4=BA=86?= =?UTF-8?q?=E5=A4=9A=E6=80=81=E7=B3=BB=E7=BB=9F=EF=BC=8C=E7=8E=B0=E5=9C=A8?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E4=B8=AA=E5=9C=BA=E6=99=AF=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=9B=AE=E5=89=8D=E7=9A=84=E3=80=90=E6=BC=94?= =?UTF-8?q?=E5=87=BA=E5=90=8D=E3=80=91=E8=BF=9B=E8=A1=8C=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=A5=E8=8A=82=E7=9C=81?= =?UTF-8?q?=E7=A9=BA=E9=97=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后续的流程化明天继续开发,下班 加油吧🙏 --- Assets/Scenes/各种系统测试与陈列.unity | 51 +++++++++++++++++++ Assets/Scripts/M_Player.cs | 5 ++ Assets/Scripts/{Event.meta => 事件.meta} | 0 Assets/Scripts/{Event => 事件}/Event.cs | 0 Assets/Scripts/{Event => 事件}/Event.cs.meta | 0 .../{Event => 事件}/WhenFinishFathersCode.cs | 0 .../WhenFinishFathersCode.cs.meta | 0 .../Scripts/{GameInfo.meta => 信息相关.meta} | 0 .../{GameInfo => 信息相关}/AllLinesInfo.cs | 0 .../AllLinesInfo.cs.meta | 0 .../{GameInfo => 信息相关}/IndexRecoder.cs | 28 ++++++++++ .../IndexRecoder.cs.meta | 0 Assets/Scripts/{Item.meta => 具象物体.meta} | 0 .../{Item => 具象物体}/AFakeMachine.cs | 0 .../{Item => 具象物体}/AFakeMachine.cs.meta | 0 Assets/Scripts/{Item => 具象物体}/Father.cs | 0 .../Scripts/{Item => 具象物体}/Father.cs.meta | 0 Assets/Scripts/{Item => 具象物体}/Machine.cs | 0 .../{Item => 具象物体}/Machine.cs.meta | 0 Assets/Scripts/{Item => 具象物体}/Mine.cs | 0 .../Scripts/{Item => 具象物体}/Mine.cs.meta | 0 Assets/Scripts/{Item => 具象物体}/Missile.cs | 0 .../{Item => 具象物体}/Missile.cs.meta | 0 Assets/Scripts/{Item => 具象物体}/Shell.cs | 0 .../Scripts/{Item => 具象物体}/Shell.cs.meta | 0 .../{Item => 具象物体}/TelephoneLine.cs | 0 .../{Item => 具象物体}/TelephoneLine.cs.meta | 0 .../{AbstractItem.meta => 抽象的东西.meta} | 0 .../BombingArea.cs | 0 .../BombingArea.cs.meta | 0 .../BoomShader.cs | 0 .../BoomShader.cs.meta | 0 .../Interactive.cs | 0 .../Interactive.cs.meta | 0 .../NormalInvestableItems.cs | 0 .../NormalInvestableItems.cs.meta | 0 .../抽象的东西/PolymorphicAdministrator.cs | 42 +++++++++++++++ .../PolymorphicAdministrator.cs.meta | 11 ++++ .../{AbstractItem => 抽象的东西}/Sentence.cs | 0 .../Sentence.cs.meta | 0 40 files changed, 137 insertions(+) rename Assets/Scripts/{Event.meta => 事件.meta} (100%) rename Assets/Scripts/{Event => 事件}/Event.cs (100%) rename Assets/Scripts/{Event => 事件}/Event.cs.meta (100%) rename Assets/Scripts/{Event => 事件}/WhenFinishFathersCode.cs (100%) rename Assets/Scripts/{Event => 事件}/WhenFinishFathersCode.cs.meta (100%) rename Assets/Scripts/{GameInfo.meta => 信息相关.meta} (100%) rename Assets/Scripts/{GameInfo => 信息相关}/AllLinesInfo.cs (100%) rename Assets/Scripts/{GameInfo => 信息相关}/AllLinesInfo.cs.meta (100%) rename Assets/Scripts/{GameInfo => 信息相关}/IndexRecoder.cs (71%) rename Assets/Scripts/{GameInfo => 信息相关}/IndexRecoder.cs.meta (100%) rename Assets/Scripts/{Item.meta => 具象物体.meta} (100%) rename Assets/Scripts/{Item => 具象物体}/AFakeMachine.cs (100%) rename Assets/Scripts/{Item => 具象物体}/AFakeMachine.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/Father.cs (100%) rename Assets/Scripts/{Item => 具象物体}/Father.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/Machine.cs (100%) rename Assets/Scripts/{Item => 具象物体}/Machine.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/Mine.cs (100%) rename Assets/Scripts/{Item => 具象物体}/Mine.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/Missile.cs (100%) rename Assets/Scripts/{Item => 具象物体}/Missile.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/Shell.cs (100%) rename Assets/Scripts/{Item => 具象物体}/Shell.cs.meta (100%) rename Assets/Scripts/{Item => 具象物体}/TelephoneLine.cs (100%) rename Assets/Scripts/{Item => 具象物体}/TelephoneLine.cs.meta (100%) rename Assets/Scripts/{AbstractItem.meta => 抽象的东西.meta} (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/BombingArea.cs (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/BombingArea.cs.meta (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/BoomShader.cs (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/BoomShader.cs.meta (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/Interactive.cs (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/Interactive.cs.meta (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/NormalInvestableItems.cs (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/NormalInvestableItems.cs.meta (100%) create mode 100644 Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs create mode 100644 Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs.meta rename Assets/Scripts/{AbstractItem => 抽象的东西}/Sentence.cs (100%) rename Assets/Scripts/{AbstractItem => 抽象的东西}/Sentence.cs.meta (100%) diff --git a/Assets/Scenes/各种系统测试与陈列.unity b/Assets/Scenes/各种系统测试与陈列.unity index 4a7a227..688ddf6 100644 --- a/Assets/Scenes/各种系统测试与陈列.unity +++ b/Assets/Scenes/各种系统测试与陈列.unity @@ -1182,6 +1182,55 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &305694996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 305694997} + - component: {fileID: 305694998} + m_Layer: 0 + m_Name: "\u591A\u6001\u7BA1\u7406\u5458" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &305694997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305694996} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1789875270} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &305694998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305694996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 94a33228a61c2774fbb687425136148a, type: 3} + m_Name: + m_EditorClassIdentifier: + statesNames: + - "\u5E8F\u7AE0-\u5BB6\u4E2D-\u672A\u6253\u7801" + - + statesEvents: + - {fileID: 0} + - {fileID: 0} --- !u!1001 &381999398 PrefabInstance: m_ObjectHideFlags: 0 @@ -2521,6 +2570,7 @@ MonoBehaviour: shellShadowPositionYOffSet: 1.5 rateOfChangeOfThrowingAngle: 1 strengthOfThrowing: 8 + stageName: --- !u!4 &912162410 Transform: m_ObjectHideFlags: 0 @@ -4373,6 +4423,7 @@ Transform: - {fileID: 1272302693} - {fileID: 535189456} - {fileID: 1894769948} + - {fileID: 305694997} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/M_Player.cs b/Assets/Scripts/M_Player.cs index e400b60..e70e16d 100644 --- a/Assets/Scripts/M_Player.cs +++ b/Assets/Scripts/M_Player.cs @@ -34,6 +34,11 @@ public class M_Player : MonoBehaviour faceDir = 1;//默认面部朝右 playerInput = GetComponent(); //获取自身输入组件 M_Animator = GetComponent(); + + //为了解决warming,最后阶段请删除,到那时应该不会再有警告 + if(inputDir == 0){} + if(throwingState){} + // } // Update is called once per frame diff --git a/Assets/Scripts/Event.meta b/Assets/Scripts/事件.meta similarity index 100% rename from Assets/Scripts/Event.meta rename to Assets/Scripts/事件.meta diff --git a/Assets/Scripts/Event/Event.cs b/Assets/Scripts/事件/Event.cs similarity index 100% rename from Assets/Scripts/Event/Event.cs rename to Assets/Scripts/事件/Event.cs diff --git a/Assets/Scripts/Event/Event.cs.meta b/Assets/Scripts/事件/Event.cs.meta similarity index 100% rename from Assets/Scripts/Event/Event.cs.meta rename to Assets/Scripts/事件/Event.cs.meta diff --git a/Assets/Scripts/Event/WhenFinishFathersCode.cs b/Assets/Scripts/事件/WhenFinishFathersCode.cs similarity index 100% rename from Assets/Scripts/Event/WhenFinishFathersCode.cs rename to Assets/Scripts/事件/WhenFinishFathersCode.cs diff --git a/Assets/Scripts/Event/WhenFinishFathersCode.cs.meta b/Assets/Scripts/事件/WhenFinishFathersCode.cs.meta similarity index 100% rename from Assets/Scripts/Event/WhenFinishFathersCode.cs.meta rename to Assets/Scripts/事件/WhenFinishFathersCode.cs.meta diff --git a/Assets/Scripts/GameInfo.meta b/Assets/Scripts/信息相关.meta similarity index 100% rename from Assets/Scripts/GameInfo.meta rename to Assets/Scripts/信息相关.meta diff --git a/Assets/Scripts/GameInfo/AllLinesInfo.cs b/Assets/Scripts/信息相关/AllLinesInfo.cs similarity index 100% rename from Assets/Scripts/GameInfo/AllLinesInfo.cs rename to Assets/Scripts/信息相关/AllLinesInfo.cs diff --git a/Assets/Scripts/GameInfo/AllLinesInfo.cs.meta b/Assets/Scripts/信息相关/AllLinesInfo.cs.meta similarity index 100% rename from Assets/Scripts/GameInfo/AllLinesInfo.cs.meta rename to Assets/Scripts/信息相关/AllLinesInfo.cs.meta diff --git a/Assets/Scripts/GameInfo/IndexRecoder.cs b/Assets/Scripts/信息相关/IndexRecoder.cs similarity index 71% rename from Assets/Scripts/GameInfo/IndexRecoder.cs rename to Assets/Scripts/信息相关/IndexRecoder.cs index 60ec998..55d995a 100644 --- a/Assets/Scripts/GameInfo/IndexRecoder.cs +++ b/Assets/Scripts/信息相关/IndexRecoder.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEditor; public class IndexRecoder : MonoBehaviour { @@ -37,6 +38,8 @@ public class IndexRecoder : MonoBehaviour public float rateOfChangeOfThrowingAngle; [Tooltip("抛出投掷物的力度")] public float strengthOfThrowing; + [SerializeField][Tooltip("演出名称,这个不给你改,这个是我做多态用的,在这里只读")][ReadOnly] + public string stageName; void Start() { @@ -55,6 +58,8 @@ public class IndexRecoder : MonoBehaviour codeBook.Add("---..","8"); codeBook.Add("----.","9"); codeBook.Add("-----","0"); + + stageName = "序章-家中-未打码"; } // Update is called once per frame @@ -62,4 +67,27 @@ public class IndexRecoder : MonoBehaviour { } + + //修改演出名称的函数,在游戏流程推进的时候用 + public void ChangeStageName(string newName){stageName = newName;} + + + //制造一个只读的变量,不要动这些 + public class ReadOnlyAttribute : PropertyAttribute{} + [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] + public class ReadOnlyDrawer : PropertyDrawer + { + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return EditorGUI.GetPropertyHeight(property, label, true); + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + GUI.enabled = false; + EditorGUI.PropertyField(position, property, label, true); + GUI.enabled = true; + } + } + // } diff --git a/Assets/Scripts/GameInfo/IndexRecoder.cs.meta b/Assets/Scripts/信息相关/IndexRecoder.cs.meta similarity index 100% rename from Assets/Scripts/GameInfo/IndexRecoder.cs.meta rename to Assets/Scripts/信息相关/IndexRecoder.cs.meta diff --git a/Assets/Scripts/Item.meta b/Assets/Scripts/具象物体.meta similarity index 100% rename from Assets/Scripts/Item.meta rename to Assets/Scripts/具象物体.meta diff --git a/Assets/Scripts/Item/AFakeMachine.cs b/Assets/Scripts/具象物体/AFakeMachine.cs similarity index 100% rename from Assets/Scripts/Item/AFakeMachine.cs rename to Assets/Scripts/具象物体/AFakeMachine.cs diff --git a/Assets/Scripts/Item/AFakeMachine.cs.meta b/Assets/Scripts/具象物体/AFakeMachine.cs.meta similarity index 100% rename from Assets/Scripts/Item/AFakeMachine.cs.meta rename to Assets/Scripts/具象物体/AFakeMachine.cs.meta diff --git a/Assets/Scripts/Item/Father.cs b/Assets/Scripts/具象物体/Father.cs similarity index 100% rename from Assets/Scripts/Item/Father.cs rename to Assets/Scripts/具象物体/Father.cs diff --git a/Assets/Scripts/Item/Father.cs.meta b/Assets/Scripts/具象物体/Father.cs.meta similarity index 100% rename from Assets/Scripts/Item/Father.cs.meta rename to Assets/Scripts/具象物体/Father.cs.meta diff --git a/Assets/Scripts/Item/Machine.cs b/Assets/Scripts/具象物体/Machine.cs similarity index 100% rename from Assets/Scripts/Item/Machine.cs rename to Assets/Scripts/具象物体/Machine.cs diff --git a/Assets/Scripts/Item/Machine.cs.meta b/Assets/Scripts/具象物体/Machine.cs.meta similarity index 100% rename from Assets/Scripts/Item/Machine.cs.meta rename to Assets/Scripts/具象物体/Machine.cs.meta diff --git a/Assets/Scripts/Item/Mine.cs b/Assets/Scripts/具象物体/Mine.cs similarity index 100% rename from Assets/Scripts/Item/Mine.cs rename to Assets/Scripts/具象物体/Mine.cs diff --git a/Assets/Scripts/Item/Mine.cs.meta b/Assets/Scripts/具象物体/Mine.cs.meta similarity index 100% rename from Assets/Scripts/Item/Mine.cs.meta rename to Assets/Scripts/具象物体/Mine.cs.meta diff --git a/Assets/Scripts/Item/Missile.cs b/Assets/Scripts/具象物体/Missile.cs similarity index 100% rename from Assets/Scripts/Item/Missile.cs rename to Assets/Scripts/具象物体/Missile.cs diff --git a/Assets/Scripts/Item/Missile.cs.meta b/Assets/Scripts/具象物体/Missile.cs.meta similarity index 100% rename from Assets/Scripts/Item/Missile.cs.meta rename to Assets/Scripts/具象物体/Missile.cs.meta diff --git a/Assets/Scripts/Item/Shell.cs b/Assets/Scripts/具象物体/Shell.cs similarity index 100% rename from Assets/Scripts/Item/Shell.cs rename to Assets/Scripts/具象物体/Shell.cs diff --git a/Assets/Scripts/Item/Shell.cs.meta b/Assets/Scripts/具象物体/Shell.cs.meta similarity index 100% rename from Assets/Scripts/Item/Shell.cs.meta rename to Assets/Scripts/具象物体/Shell.cs.meta diff --git a/Assets/Scripts/Item/TelephoneLine.cs b/Assets/Scripts/具象物体/TelephoneLine.cs similarity index 100% rename from Assets/Scripts/Item/TelephoneLine.cs rename to Assets/Scripts/具象物体/TelephoneLine.cs diff --git a/Assets/Scripts/Item/TelephoneLine.cs.meta b/Assets/Scripts/具象物体/TelephoneLine.cs.meta similarity index 100% rename from Assets/Scripts/Item/TelephoneLine.cs.meta rename to Assets/Scripts/具象物体/TelephoneLine.cs.meta diff --git a/Assets/Scripts/AbstractItem.meta b/Assets/Scripts/抽象的东西.meta similarity index 100% rename from Assets/Scripts/AbstractItem.meta rename to Assets/Scripts/抽象的东西.meta diff --git a/Assets/Scripts/AbstractItem/BombingArea.cs b/Assets/Scripts/抽象的东西/BombingArea.cs similarity index 100% rename from Assets/Scripts/AbstractItem/BombingArea.cs rename to Assets/Scripts/抽象的东西/BombingArea.cs diff --git a/Assets/Scripts/AbstractItem/BombingArea.cs.meta b/Assets/Scripts/抽象的东西/BombingArea.cs.meta similarity index 100% rename from Assets/Scripts/AbstractItem/BombingArea.cs.meta rename to Assets/Scripts/抽象的东西/BombingArea.cs.meta diff --git a/Assets/Scripts/AbstractItem/BoomShader.cs b/Assets/Scripts/抽象的东西/BoomShader.cs similarity index 100% rename from Assets/Scripts/AbstractItem/BoomShader.cs rename to Assets/Scripts/抽象的东西/BoomShader.cs diff --git a/Assets/Scripts/AbstractItem/BoomShader.cs.meta b/Assets/Scripts/抽象的东西/BoomShader.cs.meta similarity index 100% rename from Assets/Scripts/AbstractItem/BoomShader.cs.meta rename to Assets/Scripts/抽象的东西/BoomShader.cs.meta diff --git a/Assets/Scripts/AbstractItem/Interactive.cs b/Assets/Scripts/抽象的东西/Interactive.cs similarity index 100% rename from Assets/Scripts/AbstractItem/Interactive.cs rename to Assets/Scripts/抽象的东西/Interactive.cs diff --git a/Assets/Scripts/AbstractItem/Interactive.cs.meta b/Assets/Scripts/抽象的东西/Interactive.cs.meta similarity index 100% rename from Assets/Scripts/AbstractItem/Interactive.cs.meta rename to Assets/Scripts/抽象的东西/Interactive.cs.meta diff --git a/Assets/Scripts/AbstractItem/NormalInvestableItems.cs b/Assets/Scripts/抽象的东西/NormalInvestableItems.cs similarity index 100% rename from Assets/Scripts/AbstractItem/NormalInvestableItems.cs rename to Assets/Scripts/抽象的东西/NormalInvestableItems.cs diff --git a/Assets/Scripts/AbstractItem/NormalInvestableItems.cs.meta b/Assets/Scripts/抽象的东西/NormalInvestableItems.cs.meta similarity index 100% rename from Assets/Scripts/AbstractItem/NormalInvestableItems.cs.meta rename to Assets/Scripts/抽象的东西/NormalInvestableItems.cs.meta diff --git a/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs b/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs new file mode 100644 index 0000000..43da1e7 --- /dev/null +++ b/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PolymorphicAdministrator : MonoBehaviour +{ + // Start is called before the first frame update + //多态管理员,旨在对同一个场景进行不同的初始化,以节省空间 + private IndexRecoder indexRecoder;//记录者物体 + [Tooltip("多态管理员,此参数记录着“这个场景有几种状态,这几个状态的名称分别是什么”,这样的信息,请键入不同的演出名")] + public string[] statesNames; + + [Tooltip("多态管理员,此参数记录着“当场景为此状态时,应该执行怎样的初始化呢?”这样的信息,请拖入事件")] + public Event[] statesEvents; + void Start() + { + indexRecoder = FindObjectOfType();//找到记录者物体 + TransfromToAState(); + } + + //初始化为某个多态中的一种,根据是记录者中的演出名 + private void TransfromToAState() + { + for(int i = 0; i < statesNames.Length; i++) + { + //遍历每一种多态名 + if(indexRecoder.stageName.Equals(statesNames[i]))//如果是第i种多态 + { + try + { + statesEvents[i].OnCall();//则执行对应事件进行场景的初始化 + } + catch(System.NullReferenceException e) + { + Debug.Log("此多态没有被赋予事件,可能是场景本身初始状态就是多态中的一种,所以不需要初始化"); + e.ToString(); + } + } + } + } + +} diff --git a/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs.meta b/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs.meta new file mode 100644 index 0000000..ea82d1a --- /dev/null +++ b/Assets/Scripts/抽象的东西/PolymorphicAdministrator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94a33228a61c2774fbb687425136148a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbstractItem/Sentence.cs b/Assets/Scripts/抽象的东西/Sentence.cs similarity index 100% rename from Assets/Scripts/AbstractItem/Sentence.cs rename to Assets/Scripts/抽象的东西/Sentence.cs diff --git a/Assets/Scripts/AbstractItem/Sentence.cs.meta b/Assets/Scripts/抽象的东西/Sentence.cs.meta similarity index 100% rename from Assets/Scripts/AbstractItem/Sentence.cs.meta rename to Assets/Scripts/抽象的东西/Sentence.cs.meta