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 SkindQuad : MonoBehaviour {
- public Transform[] bones;
- SkinnedMeshRenderer smr;
- private void Awake()
- {
- Mesh m = new Mesh();
- m.vertices = new Vector3[]
- {
- new Vector3(0,-3,0),
- new Vector3(1,-4,0),
- new Vector3(-1,-4,0),//Spine
- new Vector3(-1,0,0),
- new Vector3(1,0,0),
- new Vector3(0,-1,0),//NECK
- new Vector3(-3,-1,0),
- new Vector3(-2,-1,0),
- new Vector3(-3,-3,0),//leftSoulder
- new Vector3(-3,-3,0),
- new Vector3(-2,-5,0),
- new Vector3(-3,-5,0),//LeftArm
- new Vector3(2,-1,0),
- new Vector3(3,-1,0),
- new Vector3(3,-3,0),//RightSoulder
- new Vector3(3,-3,0),
- new Vector3(3,-5,0),
- new Vector3(2,-5,0),//RightArm
- new Vector3(-1,-4,0),
- new Vector3(0,-4,0),
- new Vector3(-0.5f,-6,0),//leftLeg
- new Vector3(-0.5f,-6,0),
- new Vector3(0,-9,0),
- new Vector3(-1,-9,0),//LeftKnee
- new Vector3(0,-4,0),
- new Vector3(1,-4,0),
- new Vector3(0.5f,-6,0),//RightLeg
- new Vector3(0.5f,-6,0),
- new Vector3(1,-9,0),
- new Vector3(0,-9,0),//RightKnee
- new Vector3(-2,-1,0),
- new Vector3(2,-1,0),//body
- new Vector3(0,-3,0)
- };
- int[] triangles;
- triangles = new int[33];
- for (int i = 0; i < 33; i++)
- triangles[i] = i;
- m.triangles = triangles;
- 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,
- };
- BoneWeight[] bwIndex;
- bwIndex = new BoneWeight[33];
- for (int i = 0; i < 33; i++)
- {
- int tmp = i / 3;
- bwIndex[i] = new BoneWeight() { boneIndex0 = tmp, weight0 = 1.0f };
- }
- m.boneWeights = bwIndex;
- smr = GetComponent<SkinnedMeshRenderer>();
- smr.bones = bones;
- smr.sharedMesh = m;
- smr.quality = SkinQuality.Bone1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement