Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- [ExecuteInEditMode]
- public class TriangleCharacter : MonoBehaviour
- {
- public Transform[] bones;
- [SerializeField]
- int maxBones = 2;
- SkinnedMeshRenderer smr;
- private void Awake()
- {
- Mesh m = new Mesh();
- MeshFilter mf = GetComponent<MeshFilter>();
- m.vertices = new Vector3[]
- {
- // Head 0,1,2
- new Vector3(0,4,0),
- new Vector3(-1,6,0),
- new Vector3(1,6,0),
- // Body 3,4,5
- new Vector3(0,0,0), // 중심좌표
- new Vector3(-2,4,0),
- new Vector3(2,4,0),
- // Right Arm 6,7,8,9,10,11
- new Vector3(2,4,0),
- new Vector3(3,5,0),
- new Vector3(4,4,0),
- new Vector3(4,4,0),
- new Vector3(5,5,0),
- new Vector3(6,4,0),
- // Left Arm 12,13,14,15,16,17
- new Vector3(-2,4,0),
- new Vector3(-3,5,0),
- new Vector3(-4,4,0),
- new Vector3(-4,4,0),
- new Vector3(-5,5,0),
- new Vector3(-6,4,0),
- // Spine 18,19,20
- new Vector3(0,0,0),
- new Vector3(1,-2,0),
- new Vector3(-1,-2,0),
- // Right Leg 21,22,23,24,25,26
- new Vector3(1,-2,0),
- new Vector3(2,-3,0),
- new Vector3(1,-4,0),
- new Vector3(1,-4,0),
- new Vector3(2,-5,0),
- new Vector3(1,-6,0),
- // Left Leg 27,28,29,30,31,32
- new Vector3(-1,-2,0),
- new Vector3(-2,-3,0),
- new Vector3(-1,-4,0),
- new Vector3(-1,-4,0),
- new Vector3(-2,-5,0),
- new Vector3(-1,-6,0),
- };
- m.triangles = new int[]
- {
- // Pelvis
- 0,1,2,
- // Body
- 3,4,5,
- // Right Arm
- 6,7,8,
- 9,10,11,
- // Left Arm
- 12,14,13,
- 15,17,16,
- // Spine
- 18,19,20,
- // Right Leg
- 21,22,23,
- 24,25,26,
- // Left Leg
- 27,29,28,
- 30,32,31
- };
- m.bindposes = new Matrix4x4[]
- {
- bones[0].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[1].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[2].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[3].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[4].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[5].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[6].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[7].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[8].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[9].worldToLocalMatrix * transform.localToWorldMatrix,
- bones[10].worldToLocalMatrix * transform.localToWorldMatrix
- };
- m.boneWeights = new BoneWeight[]
- {
- new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 1, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 2, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 3, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 4, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 5, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 6, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 7, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 8, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 9, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 10, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 10, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 10, weight0 = 1}
- };
- smr = GetComponent<SkinnedMeshRenderer>();
- smr.bones = bones;
- smr.sharedMesh = m;
- smr.quality = SkinQuality.Bone1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement