Accept Merge Request #42: (RomanVersion -> master)

1.基本完成了句子系统
2.合理化了场景物体分层结构
This commit is contained in:
Roman 2021-07-20 00:36:16 +08:00
commit 2ed4c0d161
5 changed files with 297 additions and 31 deletions

View File

@ -554,6 +554,85 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &144076820
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 144076821}
- component: {fileID: 144076823}
- component: {fileID: 144076822}
m_Layer: 5
m_Name: "\u53E5\u5B502"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &144076821
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 144076820}
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: 1701930268}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.019539753, y: 0.23600002}
m_AnchorMax: {x: 0.47471207, y: 0.5}
m_AnchoredPosition: {x: 0.11991882, y: 2}
m_SizeDelta: {x: -15, y: -16}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &144076822
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 144076820}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 0
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &144076823
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 144076820}
m_CullTransparentMesh: 1
--- !u!1 &181444955
GameObject:
m_ObjectHideFlags: 0
@ -659,6 +738,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1466476645}
- {fileID: 973378802}
m_Father: {fileID: 1860666399}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -1692,7 +1772,11 @@ MonoBehaviour:
m_interface: {fileID: 1500782587}
sentences:
- {fileID: 1466476646}
whenFinishFathersCode: {fileID: 1037109831}
- {fileID: 973378803}
m_Event: {fileID: 1037109831}
sentencesTextView:
- {fileID: 1071101930}
- {fileID: 144076822}
--- !u!61 &742864121
BoxCollider2D:
m_ObjectHideFlags: 0
@ -2504,7 +2588,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
needCount: 0
OKCount: 0
OKCount: 1
--- !u!4 &913332110
Transform:
m_ObjectHideFlags: 0
@ -2554,7 +2638,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.2732673, y: 0.23600002}
m_AnchorMax: {x: 0.72315717, y: 0.80067426}
m_AnchoredPosition: {x: 0.5, y: -3.9999695}
m_AnchoredPosition: {x: 0.5, y: -3.9999619}
m_SizeDelta: {x: -79, y: -26}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &917003919
@ -2781,6 +2865,51 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 943472245}
m_CullTransparentMesh: 1
--- !u!1 &973378801
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 973378802}
- component: {fileID: 973378803}
m_Layer: 0
m_Name: "\u53E5\u5B502"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &973378802
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 973378801}
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: 192880847}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &973378803
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 973378801}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0563b81dfbe815a46a07fc8e7067c664, type: 3}
m_Name:
m_EditorClassIdentifier:
content: "\u4E2D\u56FD"
num: 02948
--- !u!1 &995089249
GameObject:
m_ObjectHideFlags: 0
@ -2951,6 +3080,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1070038164}
m_CullTransparentMesh: 1
--- !u!1 &1071101928
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1071101929}
- component: {fileID: 1071101931}
- component: {fileID: 1071101930}
m_Layer: 5
m_Name: "\u53E5\u5B501"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1071101929
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1071101928}
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: 1701930268}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.019539753, y: 0.5}
m_AnchorMax: {x: 0.47471207, y: 0.73800004}
m_AnchoredPosition: {x: 1.6592407, y: 1.7999992}
m_SizeDelta: {x: -12, y: -10}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1071101930
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1071101928}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 0
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &1071101931
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1071101928}
m_CullTransparentMesh: 1
--- !u!1 &1132274496
GameObject:
m_ObjectHideFlags: 0
@ -3850,8 +4058,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0563b81dfbe815a46a07fc8e7067c664, type: 3}
m_Name:
m_EditorClassIdentifier:
content: "\u6211\u7231\u4F60"
num: 123
content: "\u516B\u8DEF\u519B"
num: 864246511
--- !u!1 &1500782587
GameObject:
m_ObjectHideFlags: 0
@ -4119,7 +4327,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.030000001, y: 0.031479284}
m_AnchorMax: {x: 0.52917886, y: 0.39900002}
m_AnchoredPosition: {x: 0.034118652, y: 1.5471191}
m_AnchoredPosition: {x: 0.034118652, y: 1.5471497}
m_SizeDelta: {x: -6.344902, y: -5.0294952}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1647231579
@ -4194,7 +4402,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.019539753, y: 0.6984626}
m_AnchorMax: {x: 0.356, y: 0.93500006}
m_AnchoredPosition: {x: 1.2168427, y: 1.6634979}
m_AnchoredPosition: {x: 1.2168274, y: 1.6634979}
m_SizeDelta: {x: -9.605, y: -15.7174}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1682759845
@ -4269,12 +4477,14 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1682759844}
- {fileID: 1071101929}
- {fileID: 144076821}
m_Father: {fileID: 1500782588}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.52917886, y: 0.031479284}
m_AnchorMax: {x: 0.99000007, y: 0.39900002}
m_AnchoredPosition: {x: -2.2779846, y: 1.7249146}
m_AnchoredPosition: {x: -2.2779846, y: 1.7249451}
m_SizeDelta: {x: -11.304703, y: -4.6799927}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1701930269
@ -5272,7 +5482,7 @@ MonoBehaviour:
playerMoveSpeed: 10
playerJumpSpeed: 10
runSpeedMultiple: 1.5
dotRoLineTime: 0.5
dotRoLineTime: 0.2
TelephoneNeedTime: 2
bombingAreaMinimumTimeInterval: 0.5
bombingAreaMaximumTimeInterval: 2
@ -5431,7 +5641,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.2732673, y: 0.23600002}
m_AnchorMax: {x: 0.72315717, y: 0.80067426}
m_AnchoredPosition: {x: 0.5, y: -3.9999695}
m_AnchoredPosition: {x: 0.5, y: -3.9999619}
m_SizeDelta: {x: -79, y: -26}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2057909280
@ -5613,7 +5823,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.028, y: 0.8655201}
m_AnchorMax: {x: 0.2527861, y: 0.95120806}
m_AnchoredPosition: {x: 1.000061, y: -0.1533966}
m_AnchoredPosition: {x: 1.0001526, y: -0.1533966}
m_SizeDelta: {x: -6.6341, y: -3.6931992}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2083069445

View File

@ -19,13 +19,13 @@ public class Father : NormalInvestableItems
public override void OnCall()
{
Debug.Log("我触发了和父亲的对话");
//Debug.Log("我触发了和父亲的对话");
Flowchart.BroadcastFungusMessage("与父亲对话");
}
public void OnTalkToSonEnd()
{
Debug.Log("对话结束,打开电报机页面");
//Debug.Log("对话结束,打开电报机页面");
m_interface.SetActive(true);
M_Player player = FindObjectOfType<M_Player>();
player.catched = m_interface.GetComponent<Machine>();

View File

@ -38,7 +38,8 @@ public class IndexRecoder : MonoBehaviour
{
GameObject.DontDestroyOnLoad(gameObject);
//开发者捷径
codeBook.Add("..--.","123");
codeBook.Add("..--.","864246511");
codeBook.Add("--..-","02948");
//
codeBook.Add(".----","1");
codeBook.Add("..---","2");

View File

@ -5,18 +5,18 @@ using UnityEngine.UI;
public class Machine : Interactive
{
// Start is called before the first frame update
private Text codeTextView;//电码TextView显示目前打了打码
private IndexRecoder indexRecoder;//策划数值接口
private AllLinesInfo linesChecker;//路线信息
[Tooltip("把这台机器需要打的句子拖进来,在:抽象的东西->句子们。没有就自己建一个创建新物体加上Sentence组件")]
public Sentence[] sentences;//这台机器需要的句子们
private string code;//目前记录中已打的电码
private string tempTranslateResult;//临时翻译结果,一般是数字序列
[Tooltip("机器电码打完后的事件,由于不同的机器打完后触发的东西不一样,所以用事件像拼图一样把这个函数写在外面")]
public Event m_Event;//机器电码打完后的事件,由于不同的机器打完后触发的东西不一样,所以用事件像拼图一样把这个函数写在外面
[Tooltip("界面展示需要打的句子的TextView数组请把对应的显示句子的TextView们拖进来。就算后面两行不够也直接加就行。但是要记得和sentencs数组的长度相同")]
public Text[] sentencesTextView;//界面展示需要打的句子的TextView数组
void Start()
{
codeTextView = m_interface.GetComponentInChildren<Text>();
@ -24,17 +24,14 @@ public class Machine : Interactive
linesChecker = FindObjectOfType<AllLinesInfo>();
}
// Update is called once per frame
void Update()
{
}
//电报机界面被打开的时候调用
public override void OnCall()
{
if(LinesCheck())//如果线路全通
{
m_interface.SetActive(true);
m_interface.SetActive(true);//把这个交互对象的界面打开,这里是电报机界面
ShwoTheSentencesInfo();//初始化展示电报机界面的需要打的句子
UpdateTheSentencesTextViewStates();//更新一下显示句子TextView的颜色状态
}
else
{
@ -42,6 +39,31 @@ public class Machine : Interactive
}
}
//更新界面句子们的颜色信息的函数,黄色代表该句正在打,绿色代表该句已经完成,红色代表该句等待打
private void UpdateTheSentencesTextViewStates()
{
bool firstFlag = true;//设立一个首次标记,因为首次碰到没打完的标记为黄色,表示正在打此句
for(int i = 0; i < sentences.Length; i++)//便利每一个句子
{
if(sentences[i].IsThisFinished()) sentencesTextView[i].color = Color.green;//如果打完了,标记为绿色
else if(firstFlag){sentencesTextView[i].color = Color.yellow;firstFlag = false;}//如果第一次碰到没打完的,标记为黄色,表示在打
else sentencesTextView[i].color = Color.red;//此外代表没打的,标记为红色
}
}
//初始化展示电报机界面的需要打的句子的函数,一般只在电报机界面启动的时候调用一次
private void ShwoTheSentencesInfo()
{
for(int i = 0; i < sentences.Length; i++)//便利每一个句子把句子的内容放到对应的TextView里面
{
sentencesTextView[i].text = //把对应textView的内容设置为
sentences[i].content +//句子的中文加上
"\n" +//换一行加上
sentences[i].num;//句子对应的数字序列
//粗鲁的写法但是后期这个会更新仅作debug使用
}
}
//用来检查电话线的函数如果电话线全通返回true否则返回false
private bool LinesCheck()
{
@ -49,7 +71,6 @@ public class Machine : Interactive
else return false;
}
//从Player类发消息来调用这个函数temp为接受到的字符可能是. || -。
public override void Coding(string temp)
{
@ -67,11 +88,13 @@ public class Machine : Interactive
private void CompleteChecker()
{
Sentence temp = null;//目前在打的句子
foreach(Sentence i in sentences) if(!i.IsThisFinished()) temp = i;//找到最近的那个没有完成的句子,也就是目前在打的句子
foreach(Sentence i in sentences) if(!i.IsThisFinished()) {temp = i;break;}//找到最近的那个没有完成的句子,也就是目前在打的句子
try{
if(temp.num.Equals(tempTranslateResult))//如果这个句子的数字序列等于目前翻译出来的数字序列
{
temp.CompleteTheSentence();//说明这个句子完成了,修改它的标记
UpdateTheSentencesTextViewStates();//有句子打完了,更新一下句子的颜色状态
ClearTheInputAndTempResult();//有句子打完后,清除输入框和临时翻译结果
if(AllSentenceClearChecker()) OnAllSentenceClear();//当所有句子都打完了,触发此函数
}
}
@ -122,10 +145,12 @@ public class Machine : Interactive
if(hasClearer != -1)
{
Debug.Log("检查到特殊码,清除所有输入内容");
tempTranslateResult = "";
this.code = "";
// tempTranslateResult = "";
// this.code = "";
ClearTheInputAndTempResult();
}
}
//清除目前输入框的内容、记录中的电码和临时翻译结果。在检查到清除特殊码和打完一句的时候调用
private void ClearTheInputAndTempResult(){tempTranslateResult = "";code = "";}
}

View File

@ -338,3 +338,33 @@ C# parse time : 204ms
candidates check time : 65ms
console write time : 0ms
[api-updater (non-obsolete-error-filter)] 2021/7/19 23:13:14 : Starting D:/unity3.7/Unity/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe
[api-updater (non-obsolete-error-filter)]
----------------------------------
jit/startup time : 702.1926ms
moved types parse time: 52ms
candidates parse time : 1ms
C# parse time : 519ms
candidates check time : 32ms
console write time : 0ms
[api-updater (non-obsolete-error-filter)] 2021/7/19 23:14:58 : Starting D:/unity3.7/Unity/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe
[api-updater (non-obsolete-error-filter)]
----------------------------------
jit/startup time : 67.8192ms
moved types parse time: 48ms
candidates parse time : 1ms
C# parse time : 183ms
candidates check time : 31ms
console write time : 0ms
[api-updater (non-obsolete-error-filter)] 2021/7/19 23:16:15 : Starting D:/unity3.7/Unity/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe
[api-updater (non-obsolete-error-filter)]
----------------------------------
jit/startup time : 66.7961ms
moved types parse time: 49ms
candidates parse time : 1ms
C# parse time : 185ms
candidates check time : 43ms
console write time : 0ms