= 4 vuotta sitten
vanhempi
sitoutus
5b639e1f9a

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 563 - 561
Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/SOURCEHANSANSCN-BOLD SDF.asset


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
Assets/Plugins/TextMesh Pro/Resources/Fonts & Materials/SOURCEHANSANSCN-NORMAL SDF.asset


+ 4 - 3
Assets/Resources/Dice/DiceEntity.cs

@@ -18,10 +18,11 @@ public class DiceEntity : MonoBehaviour {
     private void UpdateSpriteText() => spriteText.sprite = InputM.GetKeyTextSprite(currentLetter);
 
     const float rollTime = 3.5f, endTime = 1.5f;
-    public bool canRestore = true;
+    public bool canRestore = true, pickedUp = false;
     private void OnCollisionEnter2D(Collision2D collision) {
-        if (!collision.gameObject.CompareTag("Player")) return;
-        AudioM.Play("DicePickup1", 0.8f);
+        if (!collision.gameObject.CompareTag("Player") || pickedUp) return;
+        pickedUp = true;
+        AudioM.Play("DicePickup1");
         // 关闭其他移动
         GetComponent<Collider2D>().enabled = false;
         GetComponent<Rigidbody2D>().gravityScale = 0;

+ 1 - 5
Assets/Resources/Dice/DiceUI.cs

@@ -42,12 +42,8 @@ public class DiceUI : MonoBehaviour {
 
     public bool isDropped = false;
     public void DropDice() {
-        Vector2 currentPos = AspectUtility.cam.ScreenToWorldPoint((Vector2) rectTransform.localPosition);
-        Vector2 currentPos2 = AspectUtility.cam.ScreenToWorldPoint((Vector2) rectTransform.localPosition + rectTransform.sizeDelta);
-        Vector2 currentScale = Vector2.one * 1.11f; //(currentPos2.x - currentPos.x);
-        Debug.Log("Dice scale: " + currentScale);
         DiceEntity diceNew = GameObject.Instantiate(InputM.instance.dicePrefab).GetComponent<DiceEntity>();
-        diceNew.transform.localScale = currentScale;
+        diceNew.transform.localScale = Vector2.one * 1.11f;
         diceNew.transform.position = rectTransform.position;
         diceNew.key = keybind;
         isDropped = true;

+ 1 - 1
Assets/Resources/Entities/Bullet.prefab

@@ -125,7 +125,7 @@ Rigidbody2D:
   m_Simulated: 1
   m_UseFullKinematicContacts: 0
   m_UseAutoMass: 0
-  m_Mass: 0.2
+  m_Mass: 0.1
   m_LinearDrag: 0
   m_AngularDrag: 0.05
   m_GravityScale: 0

+ 9 - 10
Assets/Resources/Entities/Player.cs

@@ -6,6 +6,10 @@ using System.Linq;
 using UnityEngine;
 
 public class Player : EntityBase {
+    public static Player instance;
+    private void Awake() {
+        instance = this;
+    }
 
     internal override bool isPressingCrouch() => InputM.GetKeyEvent(InputM.KeyType.Crouch);
     internal override bool isPressDownJump() => InputM.GetKeyEvent(InputM.KeyType.Jump);
@@ -14,20 +18,19 @@ public class Player : EntityBase {
 
     // 生命
     public RectTransform[] hearts;
-    private int _hp = 3;
-    private int hp {
+    private static int _hp = 3;
+    public static int hp {
         get { return _hp; }
         set {
             if (_hp == value) return;
             _hp = value;
-            if (_hp == 0) _hp = 3;
-            RefreshHearts();
+            instance.RefreshHearts();
         }
     }
     public float knockbackForceH = 30f, knockbackForceV = 15f;
     internal override void OnHitBorder() {
         Hurt();
-        resistanceTime = resistanceOnHurt * 1.5f;
+        resistanceTime = resistanceOnHurt;
         transform.position = new Vector3(-6, 10, 0);
     }
     internal override void OnHitEnemy(Collision2D collision) {
@@ -44,7 +47,7 @@ public class Player : EntityBase {
             AudioM.Play("hurt", 0.6f);
             rb.velocity = Vector2.zero;
             DOTween.Kill("ScreenShake");
-            Camera.current.DOShakePosition(0.3f, 0.3f, 20).SetId("ScreenShake");
+            Camera.current.DOShakePosition(0.4f, 0.5f, 25).SetId("ScreenShake");
             return true;
         } else {
             return false;
@@ -106,10 +109,6 @@ public class Player : EntityBase {
             currentShootDelay -= Time.deltaTime;
         }
         // 更新 UI
-        {
-
-        }
-        // ���� UI
         textBullet.text = currentReloadDelay > 0f ?
             "".PadLeft(maxBullet - Mathf.RoundToInt(currentReloadDelay / reloadDelay * maxBullet), "|".ToCharArray().First()) :
             "".PadLeft(currentBullet, "|".ToCharArray().First());

+ 189 - 33
Assets/Resources/System/StoryM.cs

@@ -23,7 +23,7 @@ public class StoryM : MonoBehaviour {
         DOTween.Kill("StoryFont"); textStory.DOColor(Color.white, 0.25f).SetId("StoryFont");
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX((textStory.rectTransform.rect.width + 40f) / 100f, 0.15f).SetId("StoryBackground");
         // 消失
-        float time = 1.5f + (isCn ? textCn.Length / 3f : textEn.Split(" ").Length / 3f);
+        float time = 1f + (isCn ? textCn.Length / 4f : textEn.Split(" ").Length / 4f);
         StopCoroutine("WaitForHideStoryText"); StartCoroutine("WaitForHideStoryText", time);
         Debug.Log(time + " -> " + textCn);
         return time;
@@ -33,8 +33,12 @@ public class StoryM : MonoBehaviour {
     }
     IEnumerator WaitForHideStoryText(float delay) {
         yield return new WaitForSeconds(delay);
+        Debug.Log("隐藏:" + delay);
+        HideStoryText();
+    }
+    void HideStoryText() {
+        StopCoroutine("WaitForHideStoryText");
         textStory.text = "";
-        Debug.Log(delay);
         DOTween.Kill("StoryBackground"); shapeBack.DOScaleX(0, 0.2f).SetId("StoryBackground");
     }
 
@@ -61,51 +65,203 @@ public class StoryM : MonoBehaviour {
     }
 
     // 流程控制
-    IEnumerator WaitUntilClear(int remain = 0) {
-        while (FindObjectsOfType<EnemyBase>().Length - FindObjectsOfType<EnemyArrow>().Length > remain) { // 要算上自己
-            yield return new WaitForSeconds(0.1f);
+    IEnumerator WaitUntilClear(int remain, float waitTime = -1, string textCn = "", string textEn = "") {
+        while (GetEnemyCount() > remain && !respawning) {
+            if (waitTime >= 0f && waitTime < 0.3f) SetStoryText(textCn, textEn);
+            waitTime -= 0.3f;
+            yield return new WaitForSeconds(0.3f);
         }
     }
-    IEnumerator WaitUntilPickDice() {
-        while (FindObjectsOfType<DiceEntity>().Length > 0) {
-            yield return new WaitForSeconds(0.1f);
+    int GetEnemyCount() => FindObjectsOfType<EnemyBase>().Length - FindObjectsOfType<EnemyArrow>().Length;
+    IEnumerator WaitUntilPickDice(float waitTime = -1, string textCn = "", string textEn = "") {
+        while (GetDiceCount() > 0 && !respawning) {
+            if (waitTime >= 0f && waitTime < 0.3f) SetStoryText(textCn, textEn);
+            waitTime -= 0.3f;
+            yield return new WaitForSeconds(0.3f);
         }
     }
+    int GetDiceCount() => FindObjectsOfType<DiceEntity>().Count(dice => !dice.pickedUp);
 
     // 故事
-    public int stage = 0;
+    public int stage = 0; private bool stageCompleted = true;
+    public Image panDeath;
     void Start() {
-        StartCoroutine(test());
-        StartCoroutine(spawnArrow());
+        StartCoroutine("ArrowSpawner");
+        StartCoroutine("Main");
     }
-    bool canSpawnArrow = true;
-    IEnumerator test() {
+    IEnumerator Main() {
         while (true) {
-            canSpawnArrow = true;
-            Spawn(Spawner.EnemyType.Mover, 3);
-            SetStoryText("先刷几个瞎晃悠的", "");
-            yield return new WaitForSeconds(3f);
+            if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyUp(KeyCode.Q)) {
+                SetStoryText("已跳过阶段:" + stage, "Skip Stage: " + stage);
+                stageCompleted = true;
+            }
+            if (Player.hp <= 0) {
+                stageCompleted = false;
+                yield return StartCoroutine("Respawn");
+            }
+            if (stageCompleted) {
+                deathInStage = 0;
+                stageCompleted = false;
+                StopCoroutine("Stage" + stage);
+                stage++;
+                Debug.Log("已到达阶段:" + stage);
+                StartCoroutine("Stage" + stage);
+            }
+            yield return new WaitForFixedUpdate();
+        }
+    }
+    private int deathInStage = 0; private bool respawning = false, noDifficulty = false;
+    IEnumerator Respawn() {
+        deathInStage++; respawning = true;
+        // 停止场景
+        arrowMax = 0;
+        Player.instance.transform.localScale = Vector3.zero;
+        Player.instance.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
+        Player.instance.enabled = false;
+        StopCoroutine("Stage" + stage);
+        StopCoroutine("HideStoryText");
+        yield return new WaitForSeconds(1.5f);
+        if (!noDifficulty) {
+            _ = Modules.randomDefault.Next(0, 3) switch {
+                0 => SetStoryText("完了,寄咯!", ""),
+                1 => SetStoryText("哦吼,下次加油吧", ""),
+                2 => SetStoryText("诶,怎么回事?", ""),
+                3 => SetStoryText("还好没开极限模式……", ""),
+                _ => throw new System.NotImplementedException(),
+            };
+        } else {
+            _ = Modules.randomDefault.Next(0, 2) switch {
+                0 => SetStoryText("不是吧?这也能死?", ""),
+                1 => SetStoryText("你是特么故意的吧!", ""),
+                2 => SetStoryText("哈?", ""),
+                _ => throw new System.NotImplementedException(),
+            };
+        }
+        yield return new WaitForSeconds(0.5f);
+        // 转为黑屏
+        panDeath.DOFade(1, 0.3f); panDeath.GetComponentInChildren<TMPro.TextMeshProUGUI>().DOFade(1, 1f);
+        yield return new WaitForSeconds(0.3f);
+        // 复原
+        FindObjectsOfType<EnemyBase>().ToList().ForEach(e => GameObject.Destroy(e.gameObject, 1f));
+        Player.hp = 3;
+        Player.instance.currentBullet = Player.instance.maxBullet;
+        yield return new WaitForSeconds(3f);
+        // 淡出黑屏,玩家重生
+        respawning = false;
+        panDeath.DOFade(0, 0.8f); panDeath.GetComponentInChildren<TMPro.TextMeshProUGUI>().DOFade(0, 0.3f);
+        Player.instance.enabled = true;
+        Player.instance.transform.localScale = Vector3.one;
+        Player.instance.transform.position = new Vector3(-6, 10, 0);
+        // 继续游戏
+        yield return new WaitForSeconds(2f);
+        StartCoroutine("Stage" + stage);
+    }
+    IEnumerator Stage1() {
+        arrowMax = 0; noDifficulty = false;
+        yield return new WaitForSeconds(3f);
+        yield return StartCoroutine(WaitForStoryText("哦,哦!你好,欢迎欢迎", "Oh, oh! Hello there!"));
+        yield return StartCoroutine(WaitForStoryText("先来过个教程啥的吧", "Let's go through a quick tutrial before we start."));
+        yield return StartCoroutine(WaitForStoryText("游戏的按键操作写在了右上角,应该是个人都看得懂", "All control buttons are shown on the top-right corner. I bet nobody can't understand that."));
+        SetStoryText("你不如先拿它们俩试试按键吧!", "Now, let's try some buttons with these two cute guys!");
+        Spawn(Spawner.EnemyType.Mover, 2);
+        yield return StartCoroutine(WaitUntilClear(0, 10f, "快点把它干掉,然后才好继续……", "You have to defeat them to continue..."));
+        stageCompleted = true;
+    }
+    IEnumerator Stage2() {
+        arrowMax = 1; noDifficulty = false;
+        Spawn(Spawner.EnemyType.Mover, 2);
+        yield return StartCoroutine(WaitForStoryText("哦,教程最后一条……", "Oh, a final reminder before I leave..."));
+        Spawn(Spawner.EnemyType.Mover, 2);
+        yield return StartCoroutine(WaitForStoryText("弹药不够的时候记得换弹!", "Don't forget to reload the weapon before you run out of ammo!"));
+        Spawn(Spawner.EnemyType.Shooter, 1);
+        SetStoryText("加油,教程结束了!", "There you go, that's end of the tutrial!");
+        yield return StartCoroutine(WaitUntilClear(1, 10f, "仔细一看,这个角色的手上连枪都没有……", "Hmm... He does not even have a gun in his hand after a closer look."));
+        if (Player.hp < 3) {
+            Player.hp = 3;
+            Spawn(Spawner.EnemyType.Mover, 1);
+            yield return StartCoroutine(WaitForStoryText("对了,教程结束得先给你回个血……", "Whoops, I almost forgot to heal you after the tutrial."));
+        }
+        stageCompleted = true;
+    }
+    IEnumerator Stage3() {
+        arrowMax = 3; noDifficulty = false;
+        Spawn(Spawner.EnemyType.Mover, 1);
+        yield return StartCoroutine(WaitForStoryText("说实话啊,我觉得这个游戏有点无聊", "To be honest, I think this game is kind of boring..."));
+        Spawn(Spawner.EnemyType.Mover, 1);
+        yield return StartCoroutine(WaitForStoryText("我看了看,这游戏往后的新内容就只剩一种换皮怪了!", "Let's see... We only have one more skin for our monsters!"));
+        Spawn(Spawner.EnemyType.Mover, 1);
+        yield return StartCoroutine(WaitForStoryText("然后就是“在无限的怪物中生存下来吧!”的无尽模式……", "And then, all we have is endless mode of \"Survive with infinite monsters!\"....."));
+        Spawn(Spawner.EnemyType.Mover, 1);
+        yield return StartCoroutine(WaitForStoryText("没有升级,没有装备,没有峰回路转的牛逼剧情", "No upgrade, no equipments, no twist to the plot or any boss to fight."));
+        Spawn(Spawner.EnemyType.Shooter, 1);
+        yield return StartCoroutine(WaitForStoryText("并且最重要的是,“丢骰子”的主题呢?", "And most importantly, where's our \"Roll of the Dice\" theme?"));
+        yield return StartCoroutine(WaitForStoryText("骰子、骰子……哪儿有骰子……?", "Dice... Dice... Where is the dice...?"));
+        arrowMax = 0;
+        Spawn(Spawner.EnemyType.Mover, 1);
+        yield return StartCoroutine(WaitUntilClear(0, 6f, "这里一个骰子都没有!切题呢?作者到底咋想的?", "Not a single dice here! What's the point? What‘s wrong with this author?"));
+        stageCompleted = true;
+    }
+    IEnumerator Stage4() {
+        arrowMax = 0;
+        Player.hp = 3;
+        yield return StartCoroutine(WaitForStoryText("要不然这样,我们随便拿个东西,把它弄成骰子算了", "Hold on... How about we grab something and make it a dice?"));
+        yield return new WaitForSeconds(2f);
+        if (GetDiceCount() == 0) {
+            InputM.DropDice(InputM.KeyType.Fire);
+            SetStoryText("嘿,成了!", "Let's go!");
+        }
+        yield return StartCoroutine(WaitUntilPickDice(5f, "看到右边掉下来的东西了么?把它捡起来摇一摇!", "You see the falling stuff on the right? Pick it up and try shaking it!"));
+        yield return new WaitForSeconds(2f);
+        yield return StartCoroutine(WaitForStoryText("你看,完美!", "See? Perfect!"));
+        stageCompleted = true;
+    }
+    IEnumerator Stage5() {
+        arrowMax = 0; noDifficulty = true;
+        yield return new WaitForSeconds(1.5f);
+        yield return StartCoroutine(WaitForStoryText("噔噔噔……!", ""));
+        yield return new WaitForSeconds(6f);
+        yield return StartCoroutine(WaitForStoryText("你看,这就是天才制作的骰子", ""));
+        yield return new WaitForSeconds(1.5f);
+        Spawn(Spawner.EnemyType.Mover, 1);
+        if (Player.hp < 3) {
+            Player.hp = 3;
+            yield return StartCoroutine(WaitForStoryText("让我帮你回个血,我们继续!", ""));
+        } else {
+            yield return StartCoroutine(WaitForStoryText("来,我们继续!", ""));
+        }
+        stageCompleted = true;
+    }
+    IEnumerator Stage6() {
+        arrowMax = 1; noDifficulty = false;
+        Spawn(Spawner.EnemyType.Mover, 3);
+        yield return new WaitForSeconds(1.5f);
+    }
+    //IEnumerator test() {
+    //    while (true) {
+    //        Spawn(Spawner.EnemyType.Mover, 3);
+    //        SetStoryText("先刷几个瞎晃悠的", "");
+    //        yield return new WaitForSeconds(3f);
 
-            Spawn(Spawner.EnemyType.Shooter);
-            SetStoryText("炮塔!", "");
-            yield return new WaitForSeconds(2f);
+    //        Spawn(Spawner.EnemyType.Shooter);
+    //        SetStoryText("炮塔!", "");
+    //        yield return new WaitForSeconds(2f);
 
-            Spawn(Spawner.EnemyType.Heavy, 2);
-            SetStoryText("最后是两个贼硬的……", "");
-            yield return StartCoroutine(WaitUntilClear(2));
+    //        Spawn(Spawner.EnemyType.Heavy, 2);
+    //        SetStoryText("最后是两个贼硬的……", "");
+    //        yield return StartCoroutine(WaitUntilClear(2));
 
-            canSpawnArrow = false;
-            InputM.DropDice(Modules.RandomOne(InputM.keyTypes.ToList()));
-            SetStoryText("来一个骰子吧……?", "");
-            yield return StartCoroutine(WaitUntilPickDice());
+    //        InputM.DropDice(Modules.RandomOne(InputM.keyTypes.ToList()));
+    //        SetStoryText("来一个骰子吧……?", "");
+    //        yield return StartCoroutine(WaitUntilPickDice());
 
-            yield return StartCoroutine(WaitForStoryText("准备好,下一轮要来了!", ""));
-        }
-    }
-    IEnumerator spawnArrow() {
+    //        yield return StartCoroutine(WaitForStoryText("准备好,下一轮要来了!", ""));
+    //    }
+    //}
+    int arrowMax = 0; float arrowTime = 4f;
+    IEnumerator ArrowSpawner() {
         while (true) {
-            yield return new WaitForSeconds(5f);
-            if (canSpawnArrow) Spawn(Spawner.EnemyType.Arrow, 2);
+            yield return new WaitForSeconds(arrowTime);
+            if (arrowMax > 0) Spawn(Spawner.EnemyType.Arrow, Modules.randomDefault.Next(0, arrowMax));
         }
     }
 

+ 11 - 2
Assets/Resources/UI/SelectLanguage.cs

@@ -1,4 +1,5 @@
-using UnityEngine;
+using System.Collections;
+using UnityEngine;
 using UnityEngine.EventSystems;
 using UnityEngine.Localization.Settings;
 using UnityEngine.SceneManagement;
@@ -58,6 +59,14 @@ public class SelectLanguage : MonoBehaviour, IPointerClickHandler
                 LocalizationSettings.SelectedLocale = availableLocales.GetLocale("en-US");
                 break;
         }
-        SceneManager.LoadScene("SceneMain");
+        StartCoroutine(LoadScene());
+    }
+
+    IEnumerator LoadScene() {
+        AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("SceneMain");
+        // Wait until the asynchronous scene fully loads
+        while (!asyncLoad.isDone) {
+            yield return null;
+        }
     }
 }

+ 1 - 46
Assets/Scenes/Camera Profile.asset

@@ -12,49 +12,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
   m_Name: Camera Profile
   m_EditorClassIdentifier: 
-  settings:
-  - {fileID: 6024429662025868851}
---- !u!114 &6024429662025868851
-MonoBehaviour:
-  m_ObjectHideFlags: 3
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 40b924e2dad56384a8df2a1e111bb675, type: 3}
-  m_Name: Vignette
-  m_EditorClassIdentifier: 
-  active: 1
-  enabled:
-    overrideState: 1
-    value: 1
-  mode:
-    overrideState: 1
-    value: 0
-  color:
-    overrideState: 1
-    value: {r: 0, g: 0, b: 0, a: 1}
-  center:
-    overrideState: 1
-    value: {x: 0.5, y: 0.5}
-  intensity:
-    overrideState: 1
-    value: 0.91
-  smoothness:
-    overrideState: 0
-    value: 0.2
-  roundness:
-    overrideState: 0
-    value: 1
-  rounded:
-    overrideState: 0
-    value: 0
-  mask:
-    overrideState: 0
-    value: {fileID: 0}
-    defaultState: 1
-  opacity:
-    overrideState: 0
-    value: 1
+  settings: []

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 576 - 186
Assets/Scenes/SceneMain.unity


+ 277 - 5
Assets/Scenes/SceneMenu.unity

@@ -123,6 +123,276 @@ NavMeshSettings:
     debug:
       m_Flags: 0
   m_NavMeshData: {fileID: 0}
+--- !u!1 &226399613
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 226399614}
+  - component: {fileID: 226399616}
+  - component: {fileID: 226399615}
+  m_Layer: 5
+  m_Name: Text (TMP) (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &226399614
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 226399613}
+  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_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1851392765}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 300, y: -150}
+  m_SizeDelta: {x: 200, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &226399615
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 226399613}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, 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_text: English
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 283cec36496b84640a3220e6d4736677, type: 2}
+  m_sharedMaterial: {fileID: -4366241451420931623, guid: 283cec36496b84640a3220e6d4736677, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &226399616
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 226399613}
+  m_CullTransparentMesh: 1
+--- !u!1 &391652188
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 391652189}
+  - component: {fileID: 391652191}
+  - component: {fileID: 391652190}
+  m_Layer: 5
+  m_Name: Text (TMP)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &391652189
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 391652188}
+  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_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 1851392765}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -300, y: -150}
+  m_SizeDelta: {x: 200, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &391652190
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 391652188}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, 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_text: "\u4E2D\u6587"
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 283cec36496b84640a3220e6d4736677, type: 2}
+  m_sharedMaterial: {fileID: -4366241451420931623, guid: 283cec36496b84640a3220e6d4736677, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!222 &391652191
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 391652188}
+  m_CullTransparentMesh: 1
 --- !u!1 &1222581161
 GameObject:
   m_ObjectHideFlags: 0
@@ -160,8 +430,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -452, y: 0}
-  m_SizeDelta: {x: 500, y: 500}
+  m_AnchoredPosition: {x: -300, y: 0}
+  m_SizeDelta: {x: 200, y: 200}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1222581163
 MonoBehaviour:
@@ -475,8 +745,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 404, y: 0}
-  m_SizeDelta: {x: 500, y: 500}
+  m_AnchoredPosition: {x: 300, y: 0}
+  m_SizeDelta: {x: 200, y: 200}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1754331886
 MonoBehaviour:
@@ -675,6 +945,8 @@ RectTransform:
   m_Children:
   - {fileID: 1222581162}
   - {fileID: 1754331885}
+  - {fileID: 391652189}
+  - {fileID: 226399614}
   m_Father: {fileID: 1836840626}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -740,7 +1012,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
-  m_AdditionalShaderChannelsFlag: 0
+  m_AdditionalShaderChannelsFlag: 25
   m_SortingLayerID: 0
   m_SortingOrder: 0
   m_TargetDisplay: 0

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä