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;
            }
        }
    }
示例#2
0
    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);
    }