IEnumerator PropsUpdater() { yield return(null); //int step = 0; int count = PropsInfo.AllPropsTypes.Count; int i = 0; PropsInfo.PropTypeGroup Ptg = null; Vector3 LocalPos = Vector3.zero; float Realtime = Time.realtimeSinceStartup; //Debug.LogWarning("Start updating props: " + count); for (i = 0; i < count; i++) { Ptg = PropsInfo.AllPropsTypes[i]; var listEnum = Ptg.PropsInstances.GetEnumerator(); while (listEnum.MoveNext()) { LocalPos = listEnum.Current.Obj.Tr.localPosition; LocalPos.y = ScmapEditor.Current.Teren.SampleHeight(LocalPos); listEnum.Current.Obj.Tr.localPosition = LocalPos; //step++; if (Time.realtimeSinceStartup - Realtime > MaxAllowedOverhead) { //Debug.Log(step + "\n" + Time.realtimeSinceStartup + " : " + Realtime + "\n" + (Time.realtimeSinceStartup - Realtime).ToString("0.0000")); yield return(null); Realtime = Time.realtimeSinceStartup; } /*if (step > PauseEvery) * { * step = 0; * yield return null; * }*/ } listEnum.Dispose(); } yield return(null); UpdateProcess = null; if (BufforUpdate) { BufforUpdate = false; UpdatePropsHeights(); } }
IEnumerator PropsUpdater() { yield return(null); int step = 0; int count = PropsInfo.AllPropsTypes.Count; int i = 0; PropsInfo.PropTypeGroup Ptg = null; Vector3 LocalPos = Vector3.zero; for (i = 0; i < count; i++) { Ptg = PropsInfo.AllPropsTypes[i]; foreach (Prop PropInstance in Ptg.PropsInstances) { LocalPos = PropInstance.Obj.Tr.localPosition; LocalPos.y = ScmapEditor.Current.Teren.SampleHeight(LocalPos); PropInstance.Obj.Tr.localPosition = LocalPos; step++; if (step > PauseEvery) { step = 0; yield return(null); } } } yield return(null); UpdateProcess = null; if (BufforUpdate) { BufforUpdate = false; UpdatePropsHeights(); } }