Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. [ExecuteInEditMode]
  6. public class TriangleCharacter : MonoBehaviour
  7. {
  8. public Transform[] bones;
  9. [SerializeField]
  10. int maxBones = 2;
  11.  
  12. SkinnedMeshRenderer smr;
  13.  
  14. private void Awake()
  15. {
  16. Mesh m = new Mesh();
  17. MeshFilter mf = GetComponent<MeshFilter>();
  18.  
  19.  
  20. m.vertices = new Vector3[]
  21. {
  22. // Head 0,1,2
  23. new Vector3(0,4,0),
  24. new Vector3(-1,6,0),
  25. new Vector3(1,6,0),
  26.  
  27. // Body 3,4,5
  28. new Vector3(0,0,0), // 중심좌표
  29. new Vector3(-2,4,0),
  30. new Vector3(2,4,0),
  31.  
  32. // Right Arm 6,7,8,9,10,11
  33. new Vector3(2,4,0),
  34. new Vector3(3,5,0),
  35. new Vector3(4,4,0),
  36.  
  37. new Vector3(4,4,0),
  38. new Vector3(5,5,0),
  39. new Vector3(6,4,0),
  40.  
  41. // Left Arm 12,13,14,15,16,17
  42. new Vector3(-2,4,0),
  43. new Vector3(-3,5,0),
  44. new Vector3(-4,4,0),
  45. new Vector3(-4,4,0),
  46. new Vector3(-5,5,0),
  47. new Vector3(-6,4,0),
  48.  
  49. // Spine 18,19,20
  50. new Vector3(0,0,0),
  51. new Vector3(1,-2,0),
  52. new Vector3(-1,-2,0),
  53.  
  54. // Right Leg 21,22,23,24,25,26
  55. new Vector3(1,-2,0),
  56. new Vector3(2,-3,0),
  57. new Vector3(1,-4,0),
  58. new Vector3(1,-4,0),
  59. new Vector3(2,-5,0),
  60. new Vector3(1,-6,0),
  61.  
  62. // Left Leg 27,28,29,30,31,32
  63. new Vector3(-1,-2,0),
  64. new Vector3(-2,-3,0),
  65. new Vector3(-1,-4,0),
  66. new Vector3(-1,-4,0),
  67. new Vector3(-2,-5,0),
  68. new Vector3(-1,-6,0),
  69.  
  70.  
  71.  
  72. };
  73.  
  74. m.triangles = new int[]
  75. {
  76. // Pelvis
  77. 0,1,2,
  78. // Body
  79. 3,4,5,
  80. // Right Arm
  81. 6,7,8,
  82. 9,10,11,
  83. // Left Arm
  84. 12,14,13,
  85. 15,17,16,
  86. // Spine
  87. 18,19,20,
  88. // Right Leg
  89. 21,22,23,
  90. 24,25,26,
  91. // Left Leg
  92. 27,29,28,
  93. 30,32,31
  94.  
  95.  
  96.  
  97. };
  98.  
  99. m.bindposes = new Matrix4x4[]
  100. {
  101. bones[0].worldToLocalMatrix * transform.localToWorldMatrix,
  102. bones[1].worldToLocalMatrix * transform.localToWorldMatrix,
  103. bones[2].worldToLocalMatrix * transform.localToWorldMatrix,
  104. bones[3].worldToLocalMatrix * transform.localToWorldMatrix,
  105. bones[4].worldToLocalMatrix * transform.localToWorldMatrix,
  106. bones[5].worldToLocalMatrix * transform.localToWorldMatrix,
  107. bones[6].worldToLocalMatrix * transform.localToWorldMatrix,
  108. bones[7].worldToLocalMatrix * transform.localToWorldMatrix,
  109. bones[8].worldToLocalMatrix * transform.localToWorldMatrix,
  110. bones[9].worldToLocalMatrix * transform.localToWorldMatrix,
  111. bones[10].worldToLocalMatrix * transform.localToWorldMatrix
  112.  
  113. };
  114.  
  115. m.boneWeights = new BoneWeight[]
  116. {
  117. new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
  118. new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
  119. new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
  120.  
  121. new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
  122. new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
  123. new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
  124.  
  125. new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
  126. new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
  127. new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
  128.  
  129. new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
  130. new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
  131. new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
  132.  
  133. new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
  134. new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
  135. new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
  136.  
  137. new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
  138. new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
  139. new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
  140.  
  141. new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
  142. new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
  143. new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
  144.  
  145. new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
  146. new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
  147. new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
  148.  
  149. new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
  150. new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
  151. new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
  152.  
  153. new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
  154. new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
  155. new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
  156.  
  157. new BoneWeight(){ boneIndex0 = 10, weight0 = 1},
  158. new BoneWeight(){ boneIndex0 = 10, weight0 = 1},
  159. new BoneWeight(){ boneIndex0 = 10, weight0 = 1}
  160.  
  161.  
  162. };
  163.  
  164. smr = GetComponent<SkinnedMeshRenderer>();
  165. smr.bones = bones;
  166. smr.sharedMesh = m;
  167. smr.quality = SkinQuality.Bone1;
  168.  
  169. }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement