Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. [ExecuteInEditMode]
  6. public class SkindQuad : MonoBehaviour {
  7. public Transform[] bones;
  8. SkinnedMeshRenderer smr;
  9. private void Awake()
  10. {
  11. Mesh m = new Mesh();
  12.  
  13. m.vertices = new Vector3[]
  14. {
  15.  
  16. new Vector3(0,-3,0),
  17. new Vector3(1,-4,0),
  18. new Vector3(-1,-4,0),//Spine
  19.  
  20. new Vector3(-1,0,0),
  21. new Vector3(1,0,0),
  22. new Vector3(0,-1,0),//NECK
  23.  
  24. new Vector3(-3,-1,0),
  25. new Vector3(-2,-1,0),
  26. new Vector3(-3,-3,0),//leftSoulder
  27.  
  28. new Vector3(-3,-3,0),
  29. new Vector3(-2,-5,0),
  30. new Vector3(-3,-5,0),//LeftArm
  31.  
  32. new Vector3(2,-1,0),
  33. new Vector3(3,-1,0),
  34. new Vector3(3,-3,0),//RightSoulder
  35.  
  36. new Vector3(3,-3,0),
  37. new Vector3(3,-5,0),
  38. new Vector3(2,-5,0),//RightArm
  39.  
  40. new Vector3(-1,-4,0),
  41. new Vector3(0,-4,0),
  42. new Vector3(-0.5f,-6,0),//leftLeg
  43.  
  44. new Vector3(-0.5f,-6,0),
  45. new Vector3(0,-9,0),
  46. new Vector3(-1,-9,0),//LeftKnee
  47.  
  48. new Vector3(0,-4,0),
  49. new Vector3(1,-4,0),
  50. new Vector3(0.5f,-6,0),//RightLeg
  51.  
  52. new Vector3(0.5f,-6,0),
  53. new Vector3(1,-9,0),
  54. new Vector3(0,-9,0),//RightKnee
  55.  
  56. new Vector3(-2,-1,0),
  57. new Vector3(2,-1,0),//body
  58. new Vector3(0,-3,0)
  59.  
  60. };
  61.  
  62. int[] triangles;
  63.  
  64. triangles = new int[33];
  65. for (int i = 0; i < 33; i++)
  66. triangles[i] = i;
  67. m.triangles = triangles;
  68.  
  69. m.bindposes = new Matrix4x4[]
  70. {
  71. bones[0].worldToLocalMatrix * transform.localToWorldMatrix,
  72. bones[1].worldToLocalMatrix * transform.localToWorldMatrix,
  73. bones[2].worldToLocalMatrix * transform.localToWorldMatrix,
  74. bones[3].worldToLocalMatrix * transform.localToWorldMatrix,
  75. bones[4].worldToLocalMatrix * transform.localToWorldMatrix,
  76. bones[5].worldToLocalMatrix * transform.localToWorldMatrix,
  77. bones[6].worldToLocalMatrix * transform.localToWorldMatrix,
  78. bones[7].worldToLocalMatrix * transform.localToWorldMatrix,
  79. bones[8].worldToLocalMatrix * transform.localToWorldMatrix,
  80. bones[9].worldToLocalMatrix * transform.localToWorldMatrix,
  81. bones[10].worldToLocalMatrix * transform.localToWorldMatrix,
  82. };
  83.  
  84. BoneWeight[] bwIndex;
  85. bwIndex = new BoneWeight[33];
  86.  
  87. for (int i = 0; i < 33; i++)
  88. {
  89. int tmp = i / 3;
  90. bwIndex[i] = new BoneWeight() { boneIndex0 = tmp, weight0 = 1.0f };
  91. }
  92.  
  93. m.boneWeights = bwIndex;
  94.  
  95. smr = GetComponent<SkinnedMeshRenderer>();
  96. smr.bones = bones;
  97. smr.sharedMesh = m;
  98.  
  99. smr.quality = SkinQuality.Bone1;
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement