protected R GetEntityRow(int num) { R rowInstance; int col = num % this._entitiesPerRow; int row = num / this._entitiesPerRow; Vector3 localPos = new Vector3(col * this._rowWidth, (-row) * this._rowHeight, 0); if (num >= this._instances.Count) { rowInstance = GoPool.Spawn(this._entityRowPrefab, this._instancesRoot.TransformPoint(localPos), this._instancesRoot.rotation, this._instancesRoot); rowInstance.transform.SetSiblingIndex(num); rowInstance.List = this; this._instances.Add(rowInstance); } else { rowInstance = this._instances[num]; rowInstance.transform.localPosition = localPos; if (!rowInstance.gameObject.activeSelf) { rowInstance.gameObject.SetActive(true); } } return(rowInstance); }
// Use this for initialization void Start() { //Debug.Log(Utility.ReadFile(@"C:\Users\Administrator\Desktop", "siki.txt")); //Utility.WriteFile(@"C:\Users\Administrator\Desktop", "siki.txt", "测试测试自己写的写入脚本"); goPool = GetComponent <GoPool>(); }
public TransferTween SpawnClone(Vector2 screenPos, float depth) { Vector3 worldPosition; if (this.transform is RectTransform) { Vector3 canvasLocalPosition = this._cameraVar.Camera.ScreenToCanvasPoint(this._canvasVar.Canvas, screenPos); worldPosition = this._canvasVar.Canvas.transform.TransformPoint(canvasLocalPosition); } else { worldPosition = this._cameraVar.Camera.ScreenToWorldPoint(screenPos); } var instance = GoPool.Spawn(this, worldPosition, Quaternion.identity, this.PreferredParent); instance.SetDepth(depth); return(instance); }
private void Awake() { _waterfallParticles = FindObjectsOfType <ParticlePool>().First(it => it.gameObject.tag == "Pool"); _poolElements = FindObjectsOfType <GoPool>().First(it => it.gameObject.tag == "Pool"); }
public void Refresh() { int i = 0; this.OnBeforeRefresh(); if (this.ListVar == null) { this.Awake(); } if (this.ListVar != null && this.ListVar.Entities != null) { if (this._autoSelectIfNoPreselected) { bool selectedIsInList = false; if (this.SelectedEntity != null) //ensure entity is in list otherwise we must select another one { foreach (var entity in this.ListVar.Entities) { if (Object.Equals(entity, this.SelectedEntity)) { selectedIsInList = true; break; } } } if (!selectedIsInList) { foreach (var entity in this.ListVar.Entities) { this.SelectedEntity = (T)entity; break; } } } foreach (var entity in this.ListVar.Entities) { UnityEngine.Profiling.Profiler.BeginSample("RefreshEntities"); i = this.InitEntityRow(i, (T)entity); UnityEngine.Profiling.Profiler.EndSample(); } } for (var n = this._instances.Count - 1; n >= i; --n) { var instance = this._instances[n]; if (instance.gameObject.activeSelf) { instance.gameObject.SetActive(false); } instance.transform.SetParent(this.transform); this._instances.RemoveAt(n); GoPool.Despawn(instance); } //if (this._prevEntityCount != this._instances.Count) { if (this._centerRows && this._instances.Count > 1) { float rowOffset = (Mathf.Min(this._instances.Count, this._entitiesPerRow) - 1f) / 2f * -this._rowWidth; for (var n = 0; n < this._instances.Count; ++n) { var instance = this._instances[n]; var localPos = instance.transform.localPosition; localPos.x += rowOffset; instance.transform.localPosition = localPos; } } this._prevEntityCount = this._instances.Count; this.ResizeScrollView(); } this.OnAfterRefresh(); }