Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UMA;
- using UMA.CharacterSystem;
- using UnityEngine.UI;
- using System.IO;
- public class CharacterCreator : MonoBehaviour
- {
- public DynamicCharacterAvatar avatar;
- public Slider heightSlider;
- public Slider bellySlider;
- private Dictionary<string, DnaSetter> dna;
- public List<string> hairModelsMale = new List<string>();
- private int currentHairMale;
- public List<string> hairModelsFemale = new List<string>();
- private int currentHairFemale;
- public string myRecipe;
- void OnEnable()
- {
- avatar.CharacterUpdated.AddListener(Updated);
- heightSlider.onValueChanged.AddListener(HeightChange);
- bellySlider.onValueChanged.AddListener(BellyChange);
- }
- void OnDisable()
- {
- avatar.CharacterUpdated.RemoveListener(Updated);
- heightSlider.onValueChanged.RemoveListener(HeightChange);
- bellySlider.onValueChanged.RemoveListener(BellyChange);
- }
- public void SwitchGender(bool male)
- {
- if(male && avatar.activeRace.name != "HumanMaleDCS")
- avatar.ChangeRace("HumanMaleDCS");
- if(!male && avatar.activeRace.name != "HumanFemaleDCS")
- avatar.ChangeRace("HumanFemaleDCS");
- }
- void Updated(UMAData data)
- {
- dna = avatar.GetDNA();
- heightSlider.value = dna["height"].Get();
- bellySlider.value = dna["belly"].Get();
- }
- public void HeightChange(float val)
- {
- dna["height"].Set(val);
- avatar.BuildCharacter();
- }
- public void BellyChange(float val)
- {
- dna["belly"].Set(val);
- avatar.BuildCharacter();
- }
- public void ChangeSkinColor(Color col)
- {
- avatar.SetColor("Skin", col);
- avatar.UpdateColors(true);
- //Debug.Log(avatar.GetColor("Skin").color);
- }
- public void ChangeHair(bool plus)
- {
- if(avatar.activeRace.name == "HumanMaleDCS")
- {
- if(plus)
- currentHairMale ++;
- else
- currentHairMale --;
- currentHairMale = Mathf.Clamp(currentHairMale, 0, hairModelsMale.Count -1);
- if(hairModelsMale[currentHairMale] == "None")
- avatar.ClearSlot("Hair");
- else
- avatar.SetSlot("Hair", hairModelsMale[currentHairMale]);
- }
- if(avatar.activeRace.name == "HumanFemaleDCS")
- {
- if(plus)
- currentHairFemale ++;
- else
- currentHairFemale --;
- currentHairFemale = Mathf.Clamp(currentHairFemale, 0, hairModelsFemale.Count -1);
- if(hairModelsFemale[currentHairFemale] == "None")
- avatar.ClearSlot("Hair");
- else
- avatar.SetSlot("Hair", hairModelsFemale[currentHairFemale]);
- }
- avatar.BuildCharacter();
- //Debug.Log(avatar.GetWardrobeItemName("Hair"));
- }
- public void SaveRecipe()
- {
- myRecipe = avatar.GetCurrentRecipe();
- File.WriteAllText(Application.persistentDataPath + "/dude.txt", myRecipe);
- }
- public void LoadRecipe()
- {
- myRecipe = File.ReadAllText(Application.persistentDataPath + "/dude.txt");
- avatar.ClearSlots();
- avatar.LoadFromRecipeString(myRecipe);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment