using System.Collections.Generic; using System.Linq; using System.Security.Policy; using Sfs2X; using Sfs2X.Util; using UnityEngine.UI; namespace AtlasUtility { using UnityEngine; //[ExecuteInEditMode] public class Test : MonoBehaviour { #region Variable public GameObject GameObject; public TextAsset TextAsset; public Text Text; public Texture2D Texture2D; public SpriteRenderer SpriteRenderer; public Sprite Sprite; public MeshFilter MeshFilter; public MeshRenderer MeshRenderer; public static Material Material; public static int TcpPort = 9933; public static string Host = "127.0.0.1"; public static string Zone = "Garden"; #endregion private SmartFox smartFox = new SmartFox(); private VirtualScrollRectPlus VirtualScrollRectPlus; private void Start() { VirtualScrollRectPlus = GetComponent(); VirtualScrollRectPlus.Init(5, 15, GetNextItem, GetPreviousItem, (i, item) => { item.SetParent(null); Items.Add(item); item.SetActive(false); }); } private VirtualScrollRectItem GetPreviousItem(int index) { //Debug.LogWarning("previous " + index); if (index < 0) { return null; } else { if (Items.Count > 0) { VirtualScrollRectItem item = Items[0]; item.GetComponentInChildren().text = index.ToString(); item.SetParent(VirtualScrollRectPlus.content); Items.RemoveAt(0); item.SetActive(true); return item; } else { GameObject go = Instantiate(GameObject); go.GetComponentInChildren().text = index.ToString(); VirtualScrollRectItem virtualScrollRectItem = go.GetComponent(); virtualScrollRectItem.Init(); virtualScrollRectItem.SetParent(VirtualScrollRectPlus.content); return virtualScrollRectItem; } } } public int MaxAmount = 23; private List Items = new List(); private VirtualScrollRectItem GetNextItem(int index) { //Debug.LogWarning("next " + index); if (index >= MaxAmount) { return null; } else { if (Items.Count > 0) { VirtualScrollRectItem item = Items[0]; item.GetComponentInChildren().text = index.ToString(); item.SetParent(VirtualScrollRectPlus.content); Items.RemoveAt(0); item.SetActive(true); return item; } else { GameObject go = Instantiate(GameObject); go.GetComponentInChildren().text = index.ToString(); VirtualScrollRectItem virtualScrollRectItem = go.GetComponent(); virtualScrollRectItem.Init(); virtualScrollRectItem.SetParent(VirtualScrollRectPlus.content); return virtualScrollRectItem; } } } private void Update() { if (Input.GetKeyDown(KeyCode.A)) { ConfigData configData = new ConfigData { Host = Host, Port = TcpPort, Zone = Zone }; smartFox.Connect(configData); Debug.Log("Send connect request"); } smartFox.ProcessEvents(); } private void OnApplicationQuit() { smartFox.Disconnect(); //Debug.Log("Disconnect"); } } }