// Functions //------------------------------------------------ /// <summary> /// OptMesh -> PreRender 이벤트 등록 /// </summary> /// <param name="optMesh"></param> /// <param name="preRenderEvent"></param> public void AddPreRenderEvent(apOptMesh optMesh, FUNC_MESH_PRE_RENDERED preRenderEvent) { if (_meshPreRenderedEvents == null) { _meshPreRenderedEvents = new Dictionary <apOptMesh, FUNC_MESH_PRE_RENDERED>(); } if (!_meshPreRenderedEvents.ContainsKey(optMesh)) { _meshPreRenderedEvents.Add(optMesh, preRenderEvent); } else { _meshPreRenderedEvents[optMesh] = preRenderEvent; } //Debug.Log("PreRenderEvent Added [" + optMesh.name + " > " + name + "]"); _nEvent = _meshPreRenderedEvents.Count; }
//Pre Render Event private void OnPreRender() { if (_nEvent == 0) { return; } apOptMesh optMesh = null; FUNC_MESH_PRE_RENDERED funcMeshPreRendered = null; foreach (KeyValuePair <apOptMesh, FUNC_MESH_PRE_RENDERED> pair in _meshPreRenderedEvents) { optMesh = pair.Key; funcMeshPreRendered = pair.Value; if (optMesh == null || funcMeshPreRendered == null) { //메시가 없다면 리스트를 다시 봐야 한다. continue; } funcMeshPreRendered(_camera); } }