Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. using Unity.Entities;
  2. using UnityEngine;
  3. using Unity.Rendering;
  4. using UnityEngine.Rendering;
  5.  
  6. [DisallowMultipleComponent]
  7. [RequiresEntityConversion]
  8. public class RenderSpriteAuthoring : MonoBehaviour, IConvertGameObjectToEntity
  9. {
  10. [SerializeField] private Sprite sprite;
  11. private Mesh mesh;
  12. private Material material;
  13.  
  14. public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
  15. {
  16. Vector3[] verts = new Vector3[sprite.vertices.Length];
  17. for (int i = 0; i < sprite.vertices.Length; i++)
  18. {
  19. verts[i] = sprite.vertices[i];
  20. }
  21.  
  22. int[] tris = new int[sprite.triangles.Length];
  23. for (int i = 0; i < sprite.triangles.Length; i++)
  24. {
  25. tris[i] = sprite.triangles[i];
  26. }
  27.  
  28. mesh = new Mesh();
  29. mesh.vertices = verts;
  30. mesh.triangles = tris;
  31. mesh.uv = sprite.uv;
  32.  
  33. material = new Material(Shader.Find("Sprites/Default"));
  34. material.mainTexture = sprite.texture;
  35.  
  36. // Construct the rendermesh
  37. var rendermesh = new RenderMesh
  38. {
  39. castShadows = ShadowCastingMode.On,
  40. layer = 0,
  41. material = material,
  42. mesh = mesh,
  43. receiveShadows = true,
  44. subMesh = -1
  45. };
  46.  
  47. // Add the constructed rendermesh to the entity as a shared component
  48. dstManager.AddSharedComponentData(entity,rendermesh);
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement