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);
        }
Пример #2
0
    // 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>();
    }
Пример #3
0
        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);
        }
Пример #4
0
 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();
        }