void OnPostprocessModel(GameObject go) { Renderer[] renderers = go.GetComponentsInChildren <Renderer>(); if (renderers != null) { foreach (Renderer renderer in renderers) { MeshInstanceRendererComponent r = renderer.gameObject.AddComponent <MeshInstanceRendererComponent>(); MeshFilter mf = r.GetComponent <MeshFilter>(); if (mf == null) { continue; } MeshInstanceRenderer meshInstance = new MeshInstanceRenderer { mesh = mf.sharedMesh, subMesh = 0, receiveShadows = true, castShadows = UnityEngine.Rendering.ShadowCastingMode.On, material = renderer.sharedMaterial }; r.Value = meshInstance; } } }
private static void AfterSceneLoad() { _arrowRenderer = Object.FindObjectOfType <MeshInstanceRendererComponent>(); var arrow = _entityManager.CreateEntity(_arrowArchetype); _entityManager.SetComponentData(arrow, new Position(new float3(0, 0, 0))); _entityManager.SetComponentData(arrow, new Rotation(quaternion.identity)); _entityManager.SetSharedComponentData(arrow, _arrowRenderer.Value); }