Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 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. private SpriteRenderer myspriteRenderer;
  11. private Sprite sprite;
  12. private Mesh mesh;
  13. private Material material;
  14. private GameObject myGameObject;
  15.  
  16. public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
  17. {
  18. // Get the gameobject this script is attached to
  19. myGameObject = gameObject;
  20.  
  21. // Get the sprite renderer component of this game object
  22. myspriteRenderer = myGameObject.GetComponent<SpriteRenderer>();
  23.  
  24. // Get the sprite the sprite renderer is using
  25. sprite = myspriteRenderer.sprite;
  26.  
  27. // Build the rendermesh
  28. Vector3[] verts = new Vector3[sprite.vertices.Length];
  29. for (int i = 0; i < sprite.vertices.Length; i++)
  30. {
  31. verts[i] = sprite.vertices[i];
  32. }
  33.  
  34. int[] tris = new int[sprite.triangles.Length];
  35. for (int i = 0; i < sprite.triangles.Length; i++)
  36. {
  37. tris[i] = sprite.triangles[i];
  38. }
  39.  
  40. // Assemble the rendermesh
  41. mesh = new Mesh();
  42. mesh.vertices = verts;
  43. mesh.triangles = tris;
  44. mesh.uv = sprite.uv;
  45.  
  46. material = new Material(Shader.Find("Sprites/Default"));
  47. material.mainTexture = sprite.texture;
  48.  
  49. // Construct the rendermesh
  50. var rendermesh = new RenderMesh
  51. {
  52. castShadows = ShadowCastingMode.On,
  53. layer = 0,
  54. material = material,
  55. mesh = mesh,
  56. receiveShadows = true,
  57. subMesh = -1
  58. };
  59.  
  60. // Add the constructed rendermesh to the entity as a shared component
  61. dstManager.AddSharedComponentData(entity,rendermesh);
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement