add character edit sliders

This commit is contained in:
2025-01-07 20:45:53 +02:00
parent 62c0a21987
commit bf4bdfdfd1
5 changed files with 1837 additions and 900 deletions
@@ -3,19 +3,24 @@ using UnityEngine.AI;
using UMA;
using UMA.CharacterSystem;
using System.Collections.Generic;
using UnityEngine.UI;
public class CharacterDescriptor : MonoBehaviour
{
[SerializeField]
public CharacterSex Sex;
public CharacterSex Sex { get; private set; }
private NavMeshAgent _navMeshAgent;
[SerializeField]
private DynamicCharacterAvatar _avatar;
private Dictionary<string, DnaSetter> _dna;
[SerializeField]
private Slider _height;
[SerializeField]
private Slider _belly;
private void Start()
{
_avatar = GetComponent<DynamicCharacterAvatar>();
_navMeshAgent = GetComponentInParent<NavMeshAgent>();
}
@@ -27,11 +32,51 @@ public class CharacterDescriptor : MonoBehaviour
}
}
private void OnEnable()
{
_avatar.CharacterUpdated.AddListener(Updated);
_height.onValueChanged.AddListener(HeightChange);
_belly.onValueChanged.AddListener(BellyChange);
}
private void OnDisable()
{
_avatar.CharacterUpdated.RemoveListener(Updated);
_height.onValueChanged.RemoveListener(HeightChange);
_belly.onValueChanged.RemoveListener(BellyChange);
}
public void ChangeSex(bool isMale)
{
if (isMale)
{
Sex = CharacterSex.Male;
_avatar.ChangeRace("HumanMale");
}
else
{
Sex = CharacterSex.Female;
_avatar.ChangeRace("HumanFemale");
}
}
private void Updated(UMAData data)
{
_dna = _avatar.GetDNA();
_height.value = _dna["height"].Get();
_belly.value = _dna["belly"].Get();
}
private void HeightChange(float value)
{
_dna["height"].Set(value);
_avatar.BuildCharacter();
}
private void BellyChange(float value)
{
_dna["belly"].Set(value);
_avatar.BuildCharacter();
}
}