Version: 2019.4
  • C#


struct in UnityEngine


Implemented in:UnityEngine.CoreModule

Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.




Describes 4 skinning bone weights that affect a vertex in a mesh.

Bone weights must be in descending order, and add up to 1. If a vertex is affected by fewer than 4 bones, each of the remaining bone weights must be 0.

This struct, and the associated Mesh.boneWeights and Mesh.GetBoneWeights APIs, can only describe 4 bone weights per vertex. The newer BoneWeight1 struct and associated [Mesh.GetAllBoneWeights]], Mesh.SetBoneWeights and Mesh.GetBonesPerVertex APIs, can describe any number of bone weights per vertex.

For meshes that have more than 4 bones per vertex, you must use BoneWeight1. For all other meshes, there is no performance disadvantage to using BoneWeight1, and it might result in small performance benefits as Unity does not have to perform unnessary conversion operations to describe vertices with exactly 4 bone weights.

See Also: Mesh.boneWeights, Mesh.GetBoneWeights, Mesh.GetAllBoneWeights, Mesh.SetBoneWeights, Mesh.GetBonesPerVertex, ModelImporter.maxBonesPerVertex, QualitySettings.skinWeights, SkinnedMeshRenderer.quality.


boneIndex0Index of first bone.
boneIndex1Index of second bone.
boneIndex2Index of third bone.
boneIndex3Index of fourth bone.
weight0Skinning weight for first bone.
weight1Skinning weight for second bone.
weight2Skinning weight for third bone.
weight3Skinning weight for fourth bone.