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 0000000..76c7d3d
Binary files /dev/null and b/Assets/美术素材/杂项/测试用对话框.png differ
diff --git a/Assets/美术素材/杂项/测试用对话框.png.meta b/Assets/美术素材/杂项/测试用对话框.png.meta
new file mode 100644
index 0000000..5e03fa1
--- /dev/null
+++ b/Assets/美术素材/杂项/测试用对话框.png.meta
@@ -0,0 +1,144 @@
+fileFormatVersion: 2
+guid: af1a632119c2cae4590e3d61c88b4ad9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 200
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Windows Store Apps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/美术素材/杂项/测试用对话框P2.png b/Assets/美术素材/杂项/测试用对话框P2.png
new file mode 100644
index 0000000..032c052
Binary files /dev/null and b/Assets/美术素材/杂项/测试用对话框P2.png differ
diff --git a/Assets/美术素材/杂项/测试用对话框P2.png.meta b/Assets/美术素材/杂项/测试用对话框P2.png.meta
new file mode 100644
index 0000000..c37cab6
--- /dev/null
+++ b/Assets/美术素材/杂项/测试用对话框P2.png.meta
@@ -0,0 +1,144 @@
+fileFormatVersion: 2
+guid: 9c6f1b7fb2e78b541985e40a52b9ca6c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 200
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Windows Store Apps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant: