Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //MD5Hash:489a5e9b7987118c746801f7961eae12;
- using UnityEngine;
- using System;
- using UnityEngine.Events;
- using System.Collections.Generic;
- public class UMAMaker1 : UnityEngine.MonoBehaviour
- {
- public UMA.UMAGeneratorBase generator = null;
- public SlotLibrary slotLibrary = null;
- public OverlayLibrary overlayLibrary = null;
- public RaceLibrary raceLibrary = null;
- public UnityEngine.RuntimeAnimatorController AnimationController = null;
- public UMADynamicAvatar umaDynamicAvatar = null;
- public UMA.UMAData umaData = null;
- public UMA.UMADnaHumanoid umaDna = null;
- public UMA.UMADnaTutorial umaTutorialDna = null;
- public int numberOfSlots = 20;
- public UMA.UMADataEvent umaDataEvent_CharacterCreated = null;
- public UMA.UMADataEvent umaDataEvent_CharacterUpdated = null;
- public UMA.UMADataEvent umaDataEvent_CharacterDestroyed = null;
- public void Start()
- {
- GenerateUMA();
- }
- public void GenerateUMA()
- {
- UnityEngine.GameObject GO = new UnityEngine.GameObject("MyUMA");
- umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>();
- GO = GO.AddComponent<Opsive.ThirdPersonController.Integration.UMA.UMACharacterBuilder>().gameObject;
- GO = GO.AddComponent<Opsive.ThirdPersonController.Integration.UMA.UMAItemBuilder>().gameObject;
- GO = GO.AddComponent<Opsive.ThirdPersonController.Sample.UMA.CharacterSetup>().gameObject;
- umaDynamicAvatar.CharacterCreated = umaDataEvent_CharacterCreated;
- umaDataEvent_CharacterCreated.AddListener(delegate (UMA.UMAData arg0)
- {
- CharacterCreaded(arg0, GO);
- });
- umaDynamicAvatar.CharacterUpdated = umaDataEvent_CharacterUpdated;
- umaDataEvent_CharacterUpdated.AddListener(CharacterUpdated);
- umaDynamicAvatar.CharacterDestroyed = umaDataEvent_CharacterDestroyed;
- umaDataEvent_CharacterDestroyed.AddListener(CharactherDestroyed);
- umaDynamicAvatar.Initialize();
- umaData = umaDynamicAvatar.umaData;
- umaDynamicAvatar.umaGenerator = generator;
- umaData.umaGenerator = generator;
- ///Set up slot Array
- umaData.umaRecipe.slotDataList = new UMA.SlotData[numberOfSlots];
- umaDna = new UMA.UMADnaHumanoid();
- umaTutorialDna = new UMA.UMADnaTutorial();
- umaData.umaRecipe.AddDna(umaDna);
- umaData.umaRecipe.AddDna(umaTutorialDna);
- CreateMale();
- umaDynamicAvatar.animationController = AnimationController;
- umaDynamicAvatar.UpdateNewRace();
- GO.transform.parent = this.gameObject.transform;
- GO.transform.localPosition = UnityEngine.Vector3.zero;
- GO.transform.localRotation = UnityEngine.Quaternion.identity;
- }
- public void CreateMale()
- {
- UMA.UMAData.UMARecipe UmaRecipe = null;
- UmaRecipe = umaDynamicAvatar.umaData.umaRecipe;
- UmaRecipe.SetRace(raceLibrary.GetRace("HumanMale"));
- ///Generate Eyes
- umaData.umaRecipe.slotDataList[0] = slotLibrary.InstantiateSlot("MaleEyes");
- ///Generate Eyes
- umaData.umaRecipe.slotDataList[0].AddOverlay(overlayLibrary.InstantiateOverlay("EyeOverlay"));
- ///Generate InnerMouth
- umaData.umaRecipe.slotDataList[1] = slotLibrary.InstantiateSlot("MaleInnerMouth");
- ///Generate InnerMouth
- umaData.umaRecipe.slotDataList[1].AddOverlay(overlayLibrary.InstantiateOverlay("InnerMouth"));
- ///Generate Head
- umaData.umaRecipe.slotDataList[2] = slotLibrary.InstantiateSlot("MaleFace");
- ///Generate Head
- umaData.umaRecipe.slotDataList[2].AddOverlay(overlayLibrary.InstantiateOverlay("MaleHead02"));
- ///Generate Torso
- umaData.umaRecipe.slotDataList[3] = slotLibrary.InstantiateSlot("MaleTorso");
- umaData.umaRecipe.slotDataList[3].AddOverlay(overlayLibrary.InstantiateOverlay("MaleBody02"));
- ///Generate Hands
- umaData.umaRecipe.slotDataList[4] = slotLibrary.InstantiateSlot("MaleHands");
- ///Generate Hands
- umaData.umaRecipe.slotDataList[4].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
- ///Generate Legs
- umaData.umaRecipe.slotDataList[5] = slotLibrary.InstantiateSlot("MaleLegs");
- ///Generate Legs
- umaData.umaRecipe.slotDataList[5].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
- ///Generate Feets
- umaData.umaRecipe.slotDataList[6] = slotLibrary.InstantiateSlot("MaleFeet");
- ///Generate Feets
- umaData.umaRecipe.slotDataList[6].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
- }
- public void CharacterCreaded(UMA.UMAData umaData, UnityEngine.GameObject GO)
- {
- UnityEngine.Debug.Log("Charachter was Created and Event was Triggered...");
- GO.GetComponent<Opsive.ThirdPersonController.Integration.UMA.UMACharacterBuilder>().BuildCharacter(umaData);
- GO.GetComponent<Opsive.ThirdPersonController.Integration.UMA.UMAItemBuilder>().BuildItem(umaData);
- GO.GetComponent<Opsive.ThirdPersonController.Sample.UMA.CharacterSetup>().SetupCharacter(umaData);
- }
- public void CharacterUpdated(UMA.UMAData umaData)
- {
- }
- public void CharactherDestroyed(UMA.UMAData umaData)
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement