From 32e1fd2d93e39c06c878e27892513d0ba0da2c00 Mon Sep 17 00:00:00 2001
From: Roman <1325980292@qq.com>
Date: Sat, 19 Mar 2022 22:52:00 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=9A=E7=BC=96=E5=86=99?=
=?UTF-8?q?=E5=9C=BA=E6=99=AF1=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1.完成对话系统框架
(1.系统结构见图
(2.使用方法为对ConversationController单例使用OnCall(Staring 对话名)
(3.需要自行编辑对话内容,填写AConversation组件的内容即可
果咩,我摸了五天,求职的压力实在是太大了😿😿
---
Assets/Scenes/勍/InteractTest.unity | 157 +++++++++++++--
Assets/Scripts/勍/HuangDi.cs | 19 +-
Assets/Scripts/勍/对话框架.meta | 8 +
Assets/Scripts/勍/对话框架/AConversation.cs | 187 ++++++++++++++++++
.../Scripts/勍/对话框架/AConversation.cs.meta | 11 ++
Assets/Scripts/勍/对话框架/ASpeak.cs | 19 ++
Assets/Scripts/勍/对话框架/ASpeak.cs.meta | 11 ++
.../勍/对话框架/ConversationController.cs | 30 +++
.../对话框架/ConversationController.cs.meta | 11 ++
Assets/美术素材/杂项/测试用对话框.png | Bin 0 -> 72389 bytes
Assets/美术素材/杂项/测试用对话框.png.meta | 144 ++++++++++++++
Assets/美术素材/杂项/测试用对话框P2.png | Bin 0 -> 72645 bytes
Assets/美术素材/杂项/测试用对话框P2.png.meta | 144 ++++++++++++++
13 files changed, 722 insertions(+), 19 deletions(-)
create mode 100644 Assets/Scripts/勍/对话框架.meta
create mode 100644 Assets/Scripts/勍/对话框架/AConversation.cs
create mode 100644 Assets/Scripts/勍/对话框架/AConversation.cs.meta
create mode 100644 Assets/Scripts/勍/对话框架/ASpeak.cs
create mode 100644 Assets/Scripts/勍/对话框架/ASpeak.cs.meta
create mode 100644 Assets/Scripts/勍/对话框架/ConversationController.cs
create mode 100644 Assets/Scripts/勍/对话框架/ConversationController.cs.meta
create mode 100644 Assets/美术素材/杂项/测试用对话框.png
create mode 100644 Assets/美术素材/杂项/测试用对话框.png.meta
create mode 100644 Assets/美术素材/杂项/测试用对话框P2.png
create mode 100644 Assets/美术素材/杂项/测试用对话框P2.png.meta
diff --git a/Assets/Scenes/勍/InteractTest.unity b/Assets/Scenes/勍/InteractTest.unity
index 68d6292..3635794 100644
--- a/Assets/Scenes/勍/InteractTest.unity
+++ b/Assets/Scenes/勍/InteractTest.unity
@@ -149,7 +149,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5352854}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 10.247532, y: 0.4, z: 0}
+ m_LocalPosition: {x: -4.16, y: 0.4, z: 0}
m_LocalScale: {x: 1.54, y: 1.54, z: 1.26}
m_Children: []
m_Father: {fileID: 288199589}
@@ -247,7 +247,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 15582731}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -9.222778, y: 0, z: 0}
+ m_LocalPosition: {x: 3.7439997, y: 0, z: 0}
m_LocalScale: {x: 0.66, y: 0.66, z: 0.66}
m_Children: []
m_Father: {fileID: 2122669497}
@@ -470,7 +470,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 110133614}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -10.91, y: -1.96, z: 0}
+ m_LocalPosition: {x: 4.16, y: -1.96, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 760298201}
@@ -490,7 +490,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
inputDir: 0
- GroundCheck: {fileID: 760298201}
+ groundCheck: {fileID: 0}
+ weapon: {fileID: 0}
isRight: 1
isGround: 0
speed: 10
@@ -708,7 +709,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 226789349}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -10.247532, y: -0.5015998, z: -10}
+ m_LocalPosition: {x: 4.16, y: -0.5, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
@@ -1043,7 +1044,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 661209885}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -8.198026, y: 0, z: 0}
+ m_LocalPosition: {x: 3.3279998, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2122669497}
@@ -1206,7 +1207,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 781772278}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -10.91, y: -0.5, z: -10}
+ m_LocalPosition: {x: 4.16, y: -0.5, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 903864635}
@@ -1230,6 +1231,36 @@ MonoBehaviour:
m_BoundingShape2D: {fileID: 1206926897}
m_ConfineScreenEdges: 1
m_Damping: 0
+--- !u!1 &900617625
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 900617626}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &900617626
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 900617625}
+ 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: 0}
+ m_RootOrder: 15
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &903864634
GameObject:
m_ObjectHideFlags: 3
@@ -1405,6 +1436,60 @@ BoxCollider2D:
serializedVersion: 2
m_Size: {x: 38.4, y: 2.4652278}
m_EdgeRadius: 0
+--- !u!1 &1016989005
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1016989007}
+ - component: {fileID: 1016989006}
+ m_Layer: 0
+ m_Name: "\u7B2C\u4E00\u6B21\u5BF9\u8BDD"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1016989006
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1016989005}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 6cb90a10e58c42d47b5142ad61ef47d8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ contentList:
+ - {fileID: 21300000, guid: a0f5e5418ee5cba4b96b8014babc7779, type: 3}
+ - {fileID: 21300000, guid: c5247c64a49f62b4eac48ee3d1043ef5, type: 3}
+ speakerList: 0000000001000000
+ conversationName: 1
+ timePerSpeak: 3
+ P1Background: {fileID: 21300000, guid: af1a632119c2cae4590e3d61c88b4ad9, type: 3}
+ P2Background: {fileID: 21300000, guid: 9c6f1b7fb2e78b541985e40a52b9ca6c, type: 3}
+ P1Pos: {fileID: 110133615}
+ P2Pos: {fileID: 1750262982}
+ offset: {x: 1.5, y: 1.5}
+--- !u!4 &1016989007
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1016989005}
+ 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: 0}
+ m_RootOrder: 14
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1103262709
GameObject:
m_ObjectHideFlags: 0
@@ -1798,7 +1883,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1449312143}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -5.123766, y: 0, z: 0}
+ m_LocalPosition: {x: 2.08, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2122669497}
@@ -1870,6 +1955,49 @@ MonoBehaviour:
Cam: {fileID: 226789352}
moveRate: 0.5
startPoint: 0
+--- !u!1 &1473915065
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1473915067}
+ - component: {fileID: 1473915066}
+ m_Layer: 0
+ m_Name: "\u5BF9\u8BDD\u7BA1\u7406\u5668"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1473915066
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1473915065}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d9222d1d92d354f43bf3ecf3ad5f5e68, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1473915067
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1473915065}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 9.877751, y: 0.3299248, z: -9.547317}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 13
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1558198558
GameObject:
m_ObjectHideFlags: 0
@@ -2134,7 +2262,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 0
+ m_IsActive: 1
--- !u!4 &1750262982
Transform:
m_ObjectHideFlags: 0
@@ -2143,7 +2271,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1750262981}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 7.15, y: -3.53, z: 0}
+ m_LocalPosition: {x: 15.14, y: -0.45, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
@@ -2162,7 +2290,7 @@ BoxCollider2D:
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
- m_Offset: {x: 0, y: 0}
+ m_Offset: {x: -6.33, y: -2.05}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0.5, y: 0.5}
@@ -2188,6 +2316,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
neededType: 1
+ hasFinishTheConversation: 0
--- !u!212 &1750262985
SpriteRenderer:
m_ObjectHideFlags: 0
@@ -2225,8 +2354,8 @@ SpriteRenderer:
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
+ m_SortingLayerID: 126049849
+ m_SortingLayer: 2
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 3cb7c35a750699348a04840d1ae1be5e, type: 3}
m_Color: {r: 0.8880594, g: 1, b: 0, a: 1}
@@ -2418,7 +2547,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1918365588}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -2.0495064, y: 0, z: 0}
+ m_LocalPosition: {x: 0.83199996, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2122669497}
diff --git a/Assets/Scripts/勍/HuangDi.cs b/Assets/Scripts/勍/HuangDi.cs
index 7013c3e..d97997b 100644
--- a/Assets/Scripts/勍/HuangDi.cs
+++ b/Assets/Scripts/勍/HuangDi.cs
@@ -6,21 +6,30 @@ using Sirenix.OdinInspector;
///
/// 皇帝类,控制皇帝的行为,继承自可交互物体
///
-public class HuangDi : Interactable
+public class HuangDi : EntryTrigger
{
[SerializeField][EnumPaging]
private KnotMediator.KnotType neededType = KnotMediator.KnotType.None;
+ [Header("是否已经完成了对话")]
+ public bool hasFinishTheConversation = false;
public override void OnCall()
{
- if(KnotMediator.Instance.CheckKnotType(neededType))
- {
- Debug.Log("皇帝接受了绳结");
+ if(hasFinishTheConversation){
+ if(KnotMediator.Instance.CheckKnotType(neededType))
+ {
+ Debug.Log("皇帝接受了绳结");
+ }
+ else
+ {
+ Debug.Log("皇帝拒绝了绳结");
+ }
}
else
{
- Debug.Log("皇帝拒绝了绳结");
+ ConversationController.Instance.OnCall("1");
}
+
}
public void setNeededType(KnotMediator.KnotType type)
diff --git a/Assets/Scripts/勍/对话框架.meta b/Assets/Scripts/勍/对话框架.meta
new file mode 100644
index 0000000..c171e76
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2363862f5e448ad47848b458dad32794
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/勍/对话框架/AConversation.cs b/Assets/Scripts/勍/对话框架/AConversation.cs
new file mode 100644
index 0000000..fe9b866
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/AConversation.cs
@@ -0,0 +1,187 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using DG.Tweening;
+using Sirenix.OdinInspector;
+
+///
+/// 一次对话,只需在面板设置对话顺序和内容列表,再拖入对话者即可,其他一些暴露参数可不调
+///
+public class AConversation : MonoBehaviour
+{
+
+ [ListDrawerSettings]
+ public List contentList;
+ [ListDrawerSettings]
+ public List speakerList;
+ public string conversationName;
+ public float timePerSpeak;
+ public Sprite P1Background;
+ public Sprite P2Background;
+ [Header("P1一定是左边的,切记")]
+ public Transform P1Pos;
+ public Transform P2Pos;
+ [Header("对话框到说话者中心的偏移量")]
+ public Vector2 offset = new Vector2(1.5f, 1.5f);
+
+
+
+ private List speakList;
+ protected ASpeak.Speaker P1;
+ protected ASpeak.Speaker P2;
+ protected SpriteRenderer P1Renderer;
+ protected SpriteRenderer P2Renderer;
+ protected Player player;
+ protected SpriteRenderer P1ContentRenderer;
+ protected SpriteRenderer P2ContentRenderer;
+
+ void Start()
+ {
+ speakList = new List();
+ //新增对话框游戏物体,挂在这个游戏物体上
+ AddDialog();
+ //找到玩家
+ player = FindObjectOfType();
+ SetConversation();
+ }
+
+ ///
+ /// 对外界唯一接口
+ ///
+ public void OnCall()
+ {
+
+ if(speakList.Count == speakerList.Count)
+ {
+ //移动对话框到相应位置
+ MoveDialog();
+ //开始对话
+ StartCoroutine(Speak());
+ }
+ else
+ {
+ Debug.LogError("对话顺序和内容列表长度不一致");
+ }
+
+ }
+
+ protected IEnumerator Speak(){
+ yield return new WaitForEndOfFrame();
+ //遍历对话列表
+ foreach(ASpeak speak in speakList){
+ //根据说话者将对话的透明度插值至1
+ if(speak.speaker == P1){
+ P1Renderer.DOColor(new Color(1,1,1,1),1f);
+ P1ContentRenderer.sprite = speak.content;
+ P1ContentRenderer.DOColor(new Color(1,1,1,1),1f);
+ }
+ else{
+ P2Renderer.DOColor(new Color(1,1,1,1),1f);
+ P2ContentRenderer.sprite = speak.content;
+ P2ContentRenderer.DOColor(new Color(1,1,1,1),1f);
+ }
+ //等待
+ yield return new WaitForSeconds(timePerSpeak);
+ //根据说话者将对话的透明度插值至0
+ if(speak.speaker == P1){
+ P1Renderer.DOColor(new Color(1,1,1,0),1f);
+ P1ContentRenderer.DOColor(new Color(1,1,1,0),1f);
+ }
+ else{
+ P2Renderer.DOColor(new Color(1,1,1,0),1f);
+ P2ContentRenderer.DOColor(new Color(1,1,1,0),1f);
+ }
+ yield return new WaitForSeconds(1f);
+ }
+ //都说完以后,触发结束事件
+ OnEnd();
+ }
+
+ ///
+ /// 在设置对话顺序时使用
+ ///
+ ///
+ protected void AddASpeak(ASpeak.Speaker speaker,Sprite content)
+ {
+ ASpeak speak = new ASpeak();
+ speak.speaker = speaker;
+ speak.content = content;
+ speakList.Add(speak);
+ }
+
+ ///
+ /// 只需要手动设置说话的顺序,不需要手动设置对话内容
+ ///
+ public virtual void SetConversation()
+ {
+ for(int i = 0; i < speakerList.Count; i++)
+ {
+ AddASpeak(speakerList[i], contentList[i]);
+ }
+ }
+
+ ///
+ /// 对话结束时触发,已有内容,会恢复玩家的操作权限
+ ///
+ public virtual void OnEnd()
+ {
+ player.ToMap("Normal");
+ }
+
+
+
+
+ ///
+ /// 初始化对话框
+ ///
+ protected void AddDialog()
+ {
+ //新增对话框游戏物体,挂在这个游戏物体上
+ GameObject P1dialog = new GameObject("P1Dialog");
+ P1dialog.transform.SetParent(transform);
+ P1dialog.transform.position = new Vector3(0, 0, 0);
+ P1dialog.AddComponent();
+ P1Renderer = P1dialog.GetComponent();
+ P1Renderer.sprite = P1Background;
+ P1Renderer.sortingLayerName = "UI";
+ GameObject P2dialog = new GameObject("P2Dialog");
+ P2dialog.transform.SetParent(transform);
+ P2dialog.transform.position = new Vector3(0, 0, 0);
+ P2dialog.AddComponent();
+ P2Renderer = P2dialog.GetComponent();
+ P2Renderer.sprite = P2Background;
+ P2Renderer.sortingLayerName = "UI";
+
+ //使其二透明度变为0
+ P1Renderer.color = new Color(1, 1, 1, 0);
+ P2Renderer.color = new Color(1, 1, 1, 0);
+
+ //新增对话框内容游戏物体,挂在对话框游戏物体上
+ GameObject P1Content = new GameObject("P1Content");
+ P1Content.transform.SetParent(P1dialog.transform);
+ P1Content.transform.localPosition = new Vector3(0, 0, 0);
+ P1Content.AddComponent();
+ P1ContentRenderer = P1Content.GetComponent();
+ P1ContentRenderer.sortingLayerName = "UI";
+ P1ContentRenderer.sortingOrder = 2;
+
+ GameObject P2Content = new GameObject("P2Content");
+ P2Content.transform.SetParent(P2dialog.transform);
+ P2Content.transform.localPosition = new Vector3(0, 0, 0);
+ P2Content.AddComponent();
+ P2ContentRenderer = P2Content.GetComponent();
+ P2ContentRenderer.sortingLayerName = "UI";
+ P2ContentRenderer.sortingOrder = 2;
+
+ //使其二透明度变为0
+ P1ContentRenderer.color = new Color(1, 1, 1, 0);
+ P2ContentRenderer.color = new Color(1, 1, 1, 0);
+ }
+
+ protected void MoveDialog()
+ {
+ P1Renderer.transform.position = P1Pos.position + new Vector3(offset.x, offset.y, 0);
+ P2Renderer.transform.position = P2Pos.position + new Vector3(offset.x * - 1, offset.y, 0);
+ }
+
+}
diff --git a/Assets/Scripts/勍/对话框架/AConversation.cs.meta b/Assets/Scripts/勍/对话框架/AConversation.cs.meta
new file mode 100644
index 0000000..58aa9c9
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/AConversation.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6cb90a10e58c42d47b5142ad61ef47d8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/勍/对话框架/ASpeak.cs b/Assets/Scripts/勍/对话框架/ASpeak.cs
new file mode 100644
index 0000000..ebfebfd
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/ASpeak.cs
@@ -0,0 +1,19 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using Sirenix.OdinInspector;
+
+///
+/// 代表一句对话,包含内容的Sprite和enum的对话者
+///
+/// 此次对话的Spaker的枚举类型
+public class ASpeak
+{
+ public enum Speaker
+ {
+ P1,
+ P2
+ }
+ public Sprite content;
+ public Speaker speaker;
+}
diff --git a/Assets/Scripts/勍/对话框架/ASpeak.cs.meta b/Assets/Scripts/勍/对话框架/ASpeak.cs.meta
new file mode 100644
index 0000000..d424721
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/ASpeak.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 02035d4c700710b4e9160c4e67fece58
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/勍/对话框架/ConversationController.cs b/Assets/Scripts/勍/对话框架/ConversationController.cs
new file mode 100644
index 0000000..7b14aa4
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/ConversationController.cs
@@ -0,0 +1,30 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ConversationController : UnitySingleton
+{
+ private AConversation[] conversationList;
+
+ void Start()
+ {
+ conversationList = FindObjectsOfType();
+ }
+
+ public void OnCall(string name)
+ {
+ //找到叫name的对话,并调用其OnCall()
+ foreach (AConversation conversation in conversationList)
+ {
+ if (conversation.conversationName == name)
+ {
+ conversation.OnCall();
+ //改变玩家地图至Null
+ FindObjectOfType().ToMap("Null");
+ return;
+ }
+ }
+ //如果没找到,则报错
+ Debug.LogError("没有找到名为" + name + "的对话");
+ }
+}
diff --git a/Assets/Scripts/勍/对话框架/ConversationController.cs.meta b/Assets/Scripts/勍/对话框架/ConversationController.cs.meta
new file mode 100644
index 0000000..b165efe
--- /dev/null
+++ b/Assets/Scripts/勍/对话框架/ConversationController.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d9222d1d92d354f43bf3ecf3ad5f5e68
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/美术素材/杂项/测试用对话框.png b/Assets/美术素材/杂项/测试用对话框.png
new file mode 100644
index 0000000000000000000000000000000000000000..76c7d3d37c02e22914cae366c0be61381625dd1f
GIT binary patch
literal 72389
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