mirror of
https://github.com/maxartz15/VertexAnimation.git
synced 2024-11-09 22:32:55 +01:00
Include inactive meshes.
Option to include inactive meshes.
This commit is contained in:
parent
1c9ab36bd8
commit
1afaa6d81f
@ -28,9 +28,10 @@ namespace TAO.VertexAnimation.Editor
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("model"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("animationClips"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("applyRootMotion"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("fps"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("textureWidth"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("applyRootMotion"));
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty("includeInactive"));
|
||||
}
|
||||
|
||||
private void BakeGUI()
|
||||
|
@ -12,10 +12,11 @@ namespace TAO.VertexAnimation.Editor
|
||||
// Input.
|
||||
public GameObject model;
|
||||
public AnimationClip[] animationClips;
|
||||
public bool applyRootMotion = false;
|
||||
[Range(1, 60)]
|
||||
public int fps = 24;
|
||||
public int textureWidth = 512;
|
||||
public bool applyRootMotion = false;
|
||||
public bool includeInactive = false;
|
||||
|
||||
public LODSettings lodSettings = new LODSettings();
|
||||
public bool generateAnimationBook = true;
|
||||
@ -97,7 +98,7 @@ namespace TAO.VertexAnimation.Editor
|
||||
var target = Instantiate(model);
|
||||
target.name = model.name;
|
||||
|
||||
target.ConbineAndConvertGameObject();
|
||||
target.ConbineAndConvertGameObject(includeInactive);
|
||||
AnimationBaker.BakedData bakedData = target.Bake(animationClips, applyRootMotion, fps, textureWidth);
|
||||
|
||||
positionMap = VA_Texture2DArrayUtils.CreateTextureArray(bakedData.positionMaps.ToArray(), false, true, TextureWrapMode.Repeat, FilterMode.Point, 1, string.Format("{0}_PositionMap", name), true);
|
||||
|
@ -225,17 +225,25 @@ namespace TAO.VertexAnimation
|
||||
return target;
|
||||
}
|
||||
|
||||
public static void ConbineAndConvertGameObject(this GameObject gameObject)
|
||||
public static void ConbineAndConvertGameObject(this GameObject gameObject, bool includeInactive = false)
|
||||
{
|
||||
// Get Skinned Meshes.
|
||||
List<SkinnedMeshRenderer> skinnedMeshes = gameObject.GetComponentsInChildren<SkinnedMeshRenderer>(true).ToList();
|
||||
List<SkinnedMeshRenderer> skinnedMeshes = new List<SkinnedMeshRenderer>();
|
||||
gameObject.GetComponentsInChildren(includeInactive, skinnedMeshes);
|
||||
|
||||
List<MeshFilter> meshFilters = new List<MeshFilter>();
|
||||
gameObject.GetComponentsInChildren(includeInactive, meshFilters);
|
||||
|
||||
// Get Meshes.
|
||||
List<(MeshFilter, MeshRenderer)> meshes = new List<(MeshFilter, MeshRenderer)>();
|
||||
foreach (var mf in gameObject.GetComponentsInChildren<MeshFilter>(true))
|
||||
foreach (var mf in meshFilters)
|
||||
{
|
||||
if (mf.TryGetComponent(out MeshRenderer mr))
|
||||
{
|
||||
meshes.Add((mf, mr));
|
||||
if (includeInactive || (!includeInactive && mr.enabled))
|
||||
{
|
||||
meshes.Add((mf, mr));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user