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 SkinnedQuad : MonoBehaviour {
- public Transform[] bones;
- SkinnedMeshRenderer smr;
- private void Awake()
- {
- Mesh m = new Mesh();
- m.vertices = new Vector3[]
- {
- //몸통
- new Vector3(0,-0.5f,0), //0
- new Vector3(-1f,1f,0), //1
- new Vector3(1, 1f, 0), //2
- //머리
- new Vector3(0,1f,0), //3
- new Vector3(-0.5f,2f,0), //4
- new Vector3(0.5f,2f,0), //5
- //왼쪽 팔
- new Vector3(1f,1f,0), //6
- new Vector3(2.5f,1.25f,0), //7
- new Vector3(2.5f,0.75f,0), //8
- new Vector3(2.5f,1f,0), //9
- new Vector3(4f,1.25f,0), //10
- new Vector3(4f,0.75f,0), //11
- //오른쪽 팔
- new Vector3(-1f,1f,0), //12
- new Vector3(-2.5f,1.25f,0), //13
- new Vector3(-2.5f,0.75f,0), //14
- new Vector3(-2.5f,1f,0), //15
- new Vector3(-4f,1.25f,0), //16
- new Vector3(-4f,0.75f,0), //17
- //골반 //
- new Vector3(0,-0.5f,0), //18
- new Vector3(-0.5f,-1.25f,0), //19
- new Vector3(0.5f,-1.25f,0), //20
- //오른쪽 다리 //
- new Vector3(-0.5f,-1.25f,0), //21
- new Vector3(-0.75f,-2.75f,0), //22
- new Vector3(-0.25f,-2.75f,0), //23
- new Vector3(-0.5f,-2.75f,0), //24
- new Vector3(-0.75f,-4.25f,0), //25
- new Vector3(-0.25f,-4.25f,0), //26
- //왼쪽 다리 //
- new Vector3(0.5f,-1.25f,0), //27
- new Vector3(0.25f,-2.75f,0), //28
- new Vector3(0.75f,-2.75f,0), //29
- new Vector3(0.5f,-2.75f,0), //30
- new Vector3(0.25f,-4.25f,0), //31
- new Vector3(0.75f,-4.25f,0) //32
- };
- m.triangles = new int[]
- {
- 0,1,2,
- 3,4,5,
- 6,7,8,
- 9,10,11,
- 12,14,13,
- 15,17,16,
- 18,20,19,
- 21,23,22,
- 24,26,25,
- 27,29,28,
- 30,32,31
- };
- // m.uv = new Vector2[]
- // {
- // new Vector2(0.125f,0.75f),
- // new Vector2(0.125f,0.875f),
- // new Vector2(0.25f,0.875f),
- // new Vector2(0.25f,0.75f)
- // };
- 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
- };
- 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 = 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 = 0, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 0, weight0 = 1},
- new BoneWeight(){ boneIndex0 = 0, 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}
- };
- smr = GetComponent<SkinnedMeshRenderer>();
- smr.bones = bones;
- smr.sharedMesh = m;
- smr.quality = SkinQuality.Bone1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement