Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Unity.Entities;
- using UnityEngine;
- using Unity.Rendering;
- using UnityEngine.Rendering;
- [DisallowMultipleComponent]
- [RequiresEntityConversion]
- public class RenderSpriteAuthoring : MonoBehaviour, IConvertGameObjectToEntity
- {
- private SpriteRenderer myspriteRenderer;
- private Sprite sprite;
- private Mesh mesh;
- private Material material;
- private GameObject myGameObject;
- public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
- {
- // Get the gameobject this script is attached to
- myGameObject = gameObject;
- // Get the sprite renderer component of this game object
- myspriteRenderer = myGameObject.GetComponent<SpriteRenderer>();
- // Get the sprite the sprite renderer is using
- sprite = myspriteRenderer.sprite;
- // Build the rendermesh
- Vector3[] verts = new Vector3[sprite.vertices.Length];
- for (int i = 0; i < sprite.vertices.Length; i++)
- {
- verts[i] = sprite.vertices[i];
- }
- int[] tris = new int[sprite.triangles.Length];
- for (int i = 0; i < sprite.triangles.Length; i++)
- {
- tris[i] = sprite.triangles[i];
- }
- // Assemble the rendermesh
- mesh = new Mesh();
- mesh.vertices = verts;
- mesh.triangles = tris;
- mesh.uv = sprite.uv;
- material = new Material(Shader.Find("Sprites/Default"));
- material.mainTexture = sprite.texture;
- // Construct the rendermesh
- var rendermesh = new RenderMesh
- {
- castShadows = ShadowCastingMode.On,
- layer = 0,
- material = material,
- mesh = mesh,
- receiveShadows = true,
- subMesh = -1
- };
- // Add the constructed rendermesh to the entity as a shared component
- dstManager.AddSharedComponentData(entity,rendermesh);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement