ãUnityãLINEã£ã½ããã£ããã§Scroll View ãã¥ã¼ããªã¢ã«â¢ChatControlleråç·¨
Unity 2019.2.0f1 Personal(2019å¹´8æ)
ååã®ç¶ãã§ãã
ä»åã¯ãã£ãããåãããã¹ã¯ãªãããä½æãã¦ããã¾ãã
Scroll ViewãAuto Layoutã«ã¤ãã¦ã¯ååã¾ã§ã§ã»ã¼çµãã£ã¦ãã¾ãã¾ãããâ¦ã
ãã£ãããªã®ã§ã¡ããã¨æ©è½ããã¨ããã¾ã§é²ãã¦ããã¾ãã
ChatControllerä½æ
CharSystem.csã¨ããã¹ã¯ãªãããä½æãã
ChatSystemãªãã¸ã§ã¯ãã«ã¤ãã¾ãããã
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ChatSystem : MonoBehaviour { private int id = 0; [SerializeField] InputField chatInputField; [SerializeField] GameObject chatNodePrefab; [SerializeField] GameObject content; void Start() { } public void OnClickMineButton() { CreateChatNode(ChatRoll.MINE); } public void OnClickOthersButton() { CreateChatNode(ChatRoll.OTHERS); } private void CreateChatNode(ChatRoll roll) { id++; string str = chatInputField.text; chatInputField.text = ""; ChatData data = new ChatData(id, roll, str); Debug.Log("id:" + data.id + " roll:" + roll.ToString() + " body:" + str); } } public enum ChatRoll { MINE, OTHERS, } public class ChatData { public int id; public ChatRoll roll; public string body; public ChatData(int id, ChatRoll roll, string body) { this.id = id; this.roll = roll; this.body = body; } }
ChatSystem.cs
InputFieldããæåå
¥åããButtonãæ¼ãã¨ã
ChatDataã¯ã©ã¹ãçæãã¦id, roll, bodyãä¿åããã¹ã¯ãªããã§ãã
å種è¨å®
ã¾ãã¯åã¡ã³ãå¤æ°ãInspectorããè¨å®ãã¾ãã
ChatNodePrefabã«ã¯ååä½æããPrefabãè¨å®ãã¾ãã
ç¶ãã¦MineButtonã®Button>OnClickã«OnClickMineButtonãã
OthersButtonã®Button>OnClickã«OnClickOthersButtonãè¨å®ãã¾ãã
æå¾ã«Input Fieldã®Line TypeãMulti Line Newlineã«è¨å®ãã
æ¥æ¬èªå
¥åãã§ããããã«ãã¾ãã
å®è¡
ãããã«ã¡ã¯ãã¨å
¥åãã¦MINEãã¿ã³ãã
ãããããªããã¨å
¥åãã¦OTHERSãã¿ã³ãæ¼ãã¾ããã
次åã¯ChatNodeãçæãã¦ChatDataã®ãã¼ã¿ãæµãè¾¼ãã§ããã¾ãã
ã¨ããããã§ä»åã¯ããã¾ã§ã§ãããããã¨ããããã¾ããã