Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //MD5Hash:b15973bedfd2f2255349321d3e97e981;
- using UnityEngine;
- using Opsive.ThirdPersonController;
- using System;
- using UnityEngine.Events;
- using System.Collections.Generic;
- using Opsive.ThirdPersonController.Abilities;
- public class UMAMaker1 : UnityEngine.MonoBehaviour
- {
- public Opsive.ThirdPersonController.RigidbodyCharacterController.MovementType movementType = Opsive.ThirdPersonController.RigidbodyCharacterController.MovementType.Combat;
- public UnityEngine.PhysicMaterial maxFrictionMaterial = null;
- public UnityEngine.PhysicMaterial frictionlessMaterial = null;
- public bool aiAgent = false;
- public bool isNetworked = false;
- 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;
- [UnityEngine.HideInInspector]
- public UMA.UMADataEvent umaDataEvent_CharacterCreated = null;
- [UnityEngine.HideInInspector]
- public UMA.UMADataEvent umaDataEvent_CharacterUpdated = null;
- [UnityEngine.HideInInspector]
- public UMA.UMADataEvent umaDataEvent_CharacterDestroyed = null;
- public void Start()
- {
- GenerateUMA();
- }
- public void GenerateUMA()
- {
- UnityEngine.GameObject GO = new UnityEngine.GameObject("MyUMA");
- umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>();
- umaDynamicAvatar.CharacterCreated = umaDataEvent_CharacterCreated;
- umaDataEvent_CharacterCreated.AddListener(delegate (UMA.UMAData arg0)
- {
- CharacterCreaded(arg0);
- });
- umaDynamicAvatar.CharacterUpdated = umaDataEvent_CharacterUpdated;
- umaDataEvent_CharacterUpdated.AddListener(delegate (UMA.UMAData arg0)
- {
- CharacterUpdated(arg0);
- });
- 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_delegate)
- {
- Opsive.ThirdPersonController.CameraController CameraController = null;
- Opsive.ThirdPersonController.CharacterBuilder.BuildHumanoidCharacter(umaData_delegate.gameObject, aiAgent, isNetworked, movementType, AnimationController, maxFrictionMaterial, frictionlessMaterial);
- CameraController = Opsive.ThirdPersonController.Utility.FindCamera(umaData_delegate.gameObject).GetComponent<Opsive.ThirdPersonController.CameraController>();
- if ((CameraController != null))
- {
- CameraController.Character = umaData_delegate.gameObject;
- }
- SetupCharacter();
- }
- public void CharacterUpdated(UMA.UMAData umaData_delegate)
- {
- UnityEngine.CapsuleCollider capsuleCollider = null;
- umaData_delegate.GetComponent<Opsive.ThirdPersonController.RigidbodyCharacterController>().StopMovement();
- }
- public void CharactherDestroyed(UMA.UMAData umaData)
- {
- }
- public void AddAbility(Opsive.ThirdPersonController.RigidbodyCharacterController controller, System.Type Type, string inputName, Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType startType, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType stopType)
- {
- Opsive.ThirdPersonController.Abilities.Ability ability = null;
- Opsive.ThirdPersonController.Abilities.Ability[] abilities = null;
- ability = (controller.gameObject.AddComponent(Type) as Opsive.ThirdPersonController.Abilities.Ability);
- ability.hideFlags = UnityEngine.HideFlags.HideInInspector;
- ability.StartType = startType;
- ability.StopType = stopType;
- ability.InputName = inputName;
- abilities = controller.Abilities;
- ability.Index = abilities.Length;
- System.Array.Resize<Opsive.ThirdPersonController.Abilities.Ability>(ref abilities, (abilities.Length + 1));
- abilities[(abilities.Length - 1)] = ability;
- controller.Abilities = abilities;
- }
- public void SetupCharacter()
- {
- Opsive.ThirdPersonController.RigidbodyCharacterController controller = null;
- controller = umaData.GetComponent<Opsive.ThirdPersonController.RigidbodyCharacterController>();
- AddAbility(controller, typeof(Opsive.ThirdPersonController.Abilities.Fall), "", Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType.Automatic, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType.Manual);
- AddAbility(controller, typeof(Opsive.ThirdPersonController.Abilities.Jump), "Jump", Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType.ButtonDown, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType.Automatic);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement