コード例 #1
0
ファイル: Messenger.cs プロジェクト: OK111/hack_me_3
        public Chat(string name, string firstMsg, GameObject obj)
        {
            ChatObject = obj;
            ChatName   = name;
            Messages.Add(("msg", firstMsg));
            chatNameText = obj.transform.GetChild(1).GetChild(0).GetComponent <Text>();
            previewText  = obj.transform.GetChild(1).GetChild(1).GetComponent <Text>();
            ChatObject.GetComponent <Button>().onClick.AddListener(delegate
            {
                activeChatName                 = name;
                instance.isTyping.text         = $"{name} is typing...";
                ChatList.ForEach(A => A.active = false);
                active = true;
                instance.MessagePanel.SetActive(true);
                for (int i = instance.MessageHolder.childCount - 1; i >= 0; i--)
                {
                    Destroy(instance.MessageHolder.GetChild(i).gameObject);
                }
                Messages.ForEach(A =>
                {
                    GameObject msg;
                    switch (A.Item1)
                    {
                    case "msg":
                        msg = Instantiate(instance.MessageFromPrefab, instance.MessageHolder, false);
                        break;

                    case "r":
                        msg = Instantiate(instance.MessageToPrefab, instance.MessageHolder, false);
                        break;

                    case "img":
                        msg = Instantiate(instance.MessageImgPrefab, instance.MessageHolder, false);
                        //IMAGE
                        break;

                    default:
                        msg = new GameObject();
                        break;
                    }
                    Text msgText = msg.transform.GetChild(0).GetChild(0).GetComponent <Text>();
                    msgText.text = A.Item2;
                    msgText.GetComponent <ContentSizeFitter>().SetLayoutVertical();
                    msg.GetComponent <LayoutElement>().minHeight = 60 + (msgText.transform as RectTransform).sizeDelta.y;
                    Button copyBtn = msg.transform.GetChild(0).GetChild(1).GetComponent <Button>();
                    copyBtn.onClick.AddListener(delegate
                    {
                        TextEditor te = new TextEditor();
                        te.text       = A.Item2;
                        te.SelectAll();
                        te.Copy();
                    });
                });
            });
            chatNameText.text = name;
            previewText.text  = string.Join(string.Empty, firstMsg.Take(20)) + "...";
        }