Example #1
0
 /// <summary>
 /// 更新发起草稿记录表{发起草稿记录表}对象(即:一条记录
 /// </summary>
 public int Update(InstanceDraft instanceDraft)
 {
     using (var dbContext = UnitOfWork.Get(Unity.ContainerName))
     {
         return(new InstanceDraftRepository(dbContext).Update(instanceDraft));
     }
 }
 /// <summary>
 /// 添加发起草稿记录表{发起草稿记录表}对象(即:一条记录
 /// </summary>
 public long Add(InstanceDraft instanceDraft)
 {
     return(Add <InstanceDraft>(instanceDraft));
 }
 /// <summary>
 /// 更新发起草稿记录表{发起草稿记录表}对象(即:一条记录
 /// </summary>
 public int Update(InstanceDraft instanceDraft)
 {
     return(Update <InstanceDraft>(instanceDraft));
 }
Example #4
0
        public IEnumerator SetTransformsCoroutine(InstanceDraft[] drafts)
        {
            //removing all objects if reposition is not allowed
            if (!allowReposition)
            {
                for (int i = transforms.Count - 1; i >= 0; i--)
                {
                    if (transforms[i] != null)
                    {
                        GameObject.DestroyImmediate(transforms[i].gameObject);
                    }
                }
                transforms.Clear();
            }

            //removing nulls from transforms array
            for (int i = transforms.Count - 1; i >= 0; i--)
            {
                if (transforms[i] == null)
                {
                    transforms.RemoveAt(i);
                }
            }

            //shrinking transforms array
            if (transforms.Count > drafts.Length)
            {
                for (int i = transforms.Count - 1; i >= drafts.Length; i--)
                {
                    if (transforms[i] != null)
                    {
                        GameObject.DestroyImmediate(transforms[i].gameObject);
                    }
                    transforms.RemoveAt(i);
                }
            }

            //re-positioning transforms
            for (int i = transforms.Count - 1; i >= 0; i--)
            {
                transforms[i].localPosition = drafts[i].pos;
                transforms[i].localRotation = drafts[i].rotation;
                transforms[i].localScale    = drafts[i].scale;
            }

            //creating new
            int oldObjsCount = transforms.Count;
            int newObjsCount = drafts.Length - transforms.Count;
            int objsPerFrame = 400;
            int frames       = (int)(1f * newObjsCount / objsPerFrame);

            for (int f = 0; f <= frames; f++)
            {
                int numObjs = Mathf.Min(objsPerFrame, newObjsCount - f * objsPerFrame);

                                #if UNITY_5_4
                //creating hunk
                GameObject hunk = new GameObject();
                hunk.name = "Unity54 Pool Hunk";
                hunk.transform.position = parent.position;
                                #endif

                //instantiating
                for (int i = 0; i < numObjs; i++)
                {
                    Transform tfm = null;

                                        #if UNITY_EDITOR
                    if (!UnityEditor.EditorApplication.isPlaying)
                    {
                        tfm = (Transform)UnityEditor.PrefabUtility.InstantiatePrefab(prefab);
                    }
                    else
                    {
                        tfm = (Transform)GameObject.Instantiate(prefab);
                    }
                                        #else
                    tfm = (Transform)GameObject.Instantiate(prefab, drafts[i].pos, drafts[i].rotation);
                                        #endif

                                        #if UNITY_5_4
                    tfm.parent = hunk.transform;
                                        #else
                    tfm.parent = parent;
                                        #endif

                    InstanceDraft draft = drafts[oldObjsCount + f * objsPerFrame + i];
                    tfm.localPosition = draft.pos;
                    tfm.localRotation = draft.rotation;
                    if ((draft.scale - Vector3.one).sqrMagnitude > 0.0001f)
                    {
                        tfm.localScale = draft.scale;
                    }

                    transforms.Add(tfm);
                }

                                #if UNITY_5_4
                hunk.transform.parent = parent;
                                #endif

                yield return(null);
            }

            //removing empty hunks
            //#if UNITY_5_4
            for (int i = parent.childCount - 1; i >= 0; i--)
            {
                Transform child = parent.GetChild(i);
                if (child.name == "Unity54 Pool Hunk" && child.childCount == 0)
                {
                    GameObject.DestroyImmediate(child.gameObject);
                }
            }
            //#endif

            yield return(null);
        }