2026-05-06 15:07:56 +02:00

65 lines
1.5 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace UMA.CharacterSystem
{
public class DNAEditor : MonoBehaviour
{
string _DNAName;
int _Index;
UMADnaBase _Owner; // different DNA
DynamicCharacterAvatar _Avatar;
float _InitialValue;
DNARangeAsset _dnr;
public Slider ValueSlider;
public Text Label;
// Use this for initialization
void Start()
{
ValueSlider.value = _InitialValue;
Label.text = _DNAName;
}
public void Initialize(string name, int index, UMADnaBase owner, DynamicCharacterAvatar avatar, float currentval)
{
_DNAName = name;
_Index = index;
_Owner = owner;
_Avatar = avatar;
_InitialValue = currentval;
DNARangeAsset[] dnaRangeAssets = avatar.activeRace.data.dnaRanges;
foreach (DNARangeAsset d in dnaRangeAssets)
{
if (d.ContainsDNARange (_Index, _DNAName)) {
_dnr = d;
return;
}
}
}
public void ChangeValue(float value)
{
if (_dnr == null) //No specified DNA Range Asset for this DNA
{
_Owner.SetValue (_Index, value);
_Avatar.ForceUpdate (true, false, false);
return;
}
if (_dnr.ValueInRange (_Index, value))
{
_Owner.SetValue (_Index, value);
_Avatar.ForceUpdate(true, false, false);
return;
}
else
{
//Debug.LogWarning ("DNA Value out of range!");
}
}
}
}