diff options
author | chai <215380520@qq.com> | 2023-10-27 11:05:14 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2023-10-27 11:05:14 +0800 |
commit | 766cdff5ffa72b65d7f106658d1603f47739b2ba (patch) | |
tree | 34d7799a94dfa9be182825577583c0fa6dc935f7 /GameCode/EmojiCombiner.cs |
+ init
Diffstat (limited to 'GameCode/EmojiCombiner.cs')
-rw-r--r-- | GameCode/EmojiCombiner.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/GameCode/EmojiCombiner.cs b/GameCode/EmojiCombiner.cs new file mode 100644 index 0000000..08039c4 --- /dev/null +++ b/GameCode/EmojiCombiner.cs @@ -0,0 +1,49 @@ +using UnityEngine; + +public class EmojiCombiner : MonoBehaviour +{ + public GameObject currentEmoji; + + public void AddEmoji(GameObject newEmoji) + { + CharacterItem characterItem = FindEmojiPiece(currentEmoji, "M"); + CharacterItem characterItem2 = FindEmojiPiece(newEmoji, "M"); + float delta = GetDelta(characterItem, characterItem2); + CharacterItem characterItem3 = FindEmojiPiece(currentEmoji, "E"); + CharacterItem characterItem4 = FindEmojiPiece(newEmoji, "E"); + float delta2 = GetDelta(characterItem3, characterItem4); + if (delta > delta2) + { + Object.Destroy(characterItem.gameObject); + GameObject obj = Object.Instantiate(characterItem2.gameObject); + obj.transform.SetParent(currentEmoji.transform); + obj.transform.localPosition = characterItem2.transform.localPosition; + } + else + { + Object.Destroy(characterItem3.gameObject); + GameObject obj2 = Object.Instantiate(characterItem4.gameObject); + obj2.transform.SetParent(currentEmoji.transform); + obj2.transform.localPosition = characterItem4.transform.localPosition; + } + } + + private float GetDelta(CharacterItem from, CharacterItem to) + { + return 1f; + } + + private CharacterItem FindEmojiPiece(GameObject emoji, string target) + { + target = target.ToUpper(); + CharacterItem[] componentsInChildren = emoji.GetComponentsInChildren<CharacterItem>(); + for (int i = 0; i < componentsInChildren.Length; i++) + { + if (componentsInChildren[i].name.ToUpper()[0] == target.ToCharArray()[0]) + { + return componentsInChildren[i]; + } + } + return null; + } +} |