Advertisement
diegographics

Untitled

May 17th, 2017
571
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.87 KB | None | 0 0
  1. //MD5Hash:b15973bedfd2f2255349321d3e97e981;
  2. using UnityEngine;
  3. using Opsive.ThirdPersonController;
  4. using System;
  5. using UnityEngine.Events;
  6. using System.Collections.Generic;
  7. using Opsive.ThirdPersonController.Abilities;
  8.  
  9.  
  10. public class UMAMaker1 : UnityEngine.MonoBehaviour
  11. {
  12.     public Opsive.ThirdPersonController.RigidbodyCharacterController.MovementType movementType = Opsive.ThirdPersonController.RigidbodyCharacterController.MovementType.Combat;
  13.     public UnityEngine.PhysicMaterial maxFrictionMaterial = null;
  14.     public UnityEngine.PhysicMaterial frictionlessMaterial = null;
  15.     public bool aiAgent = false;
  16.     public bool isNetworked = false;
  17.     public UMA.UMAGeneratorBase generator = null;
  18.     public SlotLibrary slotLibrary = null;
  19.     public OverlayLibrary overlayLibrary = null;
  20.     public RaceLibrary raceLibrary = null;
  21.     public UnityEngine.RuntimeAnimatorController AnimationController = null;
  22.     public UMADynamicAvatar umaDynamicAvatar = null;
  23.     public UMA.UMAData umaData = null;
  24.     public UMA.UMADnaHumanoid umaDna = null;
  25.     public UMA.UMADnaTutorial umaTutorialDna = null;
  26.     public int numberOfSlots = 20;
  27.     [UnityEngine.HideInInspector]
  28.     public UMA.UMADataEvent umaDataEvent_CharacterCreated = null;
  29.     [UnityEngine.HideInInspector]
  30.     public UMA.UMADataEvent umaDataEvent_CharacterUpdated = null;
  31.     [UnityEngine.HideInInspector]
  32.     public UMA.UMADataEvent umaDataEvent_CharacterDestroyed = null;
  33.  
  34.  
  35.     public void Start()
  36.     {
  37.         GenerateUMA();
  38.     }
  39.     public void GenerateUMA()
  40.     {
  41.         UnityEngine.GameObject GO = new UnityEngine.GameObject("MyUMA");
  42.  
  43.         umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>();
  44.         umaDynamicAvatar.CharacterCreated = umaDataEvent_CharacterCreated;
  45.         umaDataEvent_CharacterCreated.AddListener(delegate (UMA.UMAData arg0)
  46.         {
  47.             CharacterCreaded(arg0);
  48.         });
  49.         umaDynamicAvatar.CharacterUpdated = umaDataEvent_CharacterUpdated;
  50.         umaDataEvent_CharacterUpdated.AddListener(delegate (UMA.UMAData arg0)
  51.         {
  52.             CharacterUpdated(arg0);
  53.         });
  54.         umaDynamicAvatar.Initialize();
  55.         umaData = umaDynamicAvatar.umaData;
  56.         umaDynamicAvatar.umaGenerator = generator;
  57.         umaData.umaGenerator = generator;
  58.         ///Set up slot Array
  59.         umaData.umaRecipe.slotDataList = new UMA.SlotData[numberOfSlots];
  60.         umaDna = new UMA.UMADnaHumanoid();
  61.         umaTutorialDna = new UMA.UMADnaTutorial();
  62.         umaData.umaRecipe.AddDna(umaDna);
  63.         umaData.umaRecipe.AddDna(umaTutorialDna);
  64.         CreateMale();
  65.         umaDynamicAvatar.animationController = AnimationController;
  66.         umaDynamicAvatar.UpdateNewRace();
  67.         GO.transform.parent = this.gameObject.transform;
  68.         GO.transform.localPosition = UnityEngine.Vector3.zero;
  69.         GO.transform.localRotation = UnityEngine.Quaternion.identity;
  70.     }
  71.     public void CreateMale()
  72.     {
  73.         UMA.UMAData.UMARecipe UmaRecipe = null;
  74.  
  75.         UmaRecipe = umaDynamicAvatar.umaData.umaRecipe;
  76.         UmaRecipe.SetRace(raceLibrary.GetRace("HumanMale"));
  77.         ///Generate Eyes
  78.         umaData.umaRecipe.slotDataList[0] = slotLibrary.InstantiateSlot("MaleEyes");
  79.         ///Generate Eyes
  80.         umaData.umaRecipe.slotDataList[0].AddOverlay(overlayLibrary.InstantiateOverlay("EyeOverlay"));
  81.         ///Generate InnerMouth
  82.         umaData.umaRecipe.slotDataList[1] = slotLibrary.InstantiateSlot("MaleInnerMouth");
  83.         ///Generate InnerMouth
  84.         umaData.umaRecipe.slotDataList[1].AddOverlay(overlayLibrary.InstantiateOverlay("InnerMouth"));
  85.         ///Generate Head
  86.         umaData.umaRecipe.slotDataList[2] = slotLibrary.InstantiateSlot("MaleFace");
  87.         ///Generate Head
  88.         umaData.umaRecipe.slotDataList[2].AddOverlay(overlayLibrary.InstantiateOverlay("MaleHead02"));
  89.         ///Generate Torso
  90.         umaData.umaRecipe.slotDataList[3] = slotLibrary.InstantiateSlot("MaleTorso");
  91.         umaData.umaRecipe.slotDataList[3].AddOverlay(overlayLibrary.InstantiateOverlay("MaleBody02"));
  92.         ///Generate Hands
  93.         umaData.umaRecipe.slotDataList[4] = slotLibrary.InstantiateSlot("MaleHands");
  94.         ///Generate Hands
  95.         umaData.umaRecipe.slotDataList[4].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
  96.         ///Generate Legs
  97.         umaData.umaRecipe.slotDataList[5] = slotLibrary.InstantiateSlot("MaleLegs");
  98.         ///Generate Legs
  99.         umaData.umaRecipe.slotDataList[5].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
  100.         ///Generate Feets
  101.         umaData.umaRecipe.slotDataList[6] = slotLibrary.InstantiateSlot("MaleFeet");
  102.         ///Generate Feets
  103.         umaData.umaRecipe.slotDataList[6].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
  104.     }
  105.     public void CharacterCreaded(UMA.UMAData umaData_delegate)
  106.     {
  107.         Opsive.ThirdPersonController.CameraController CameraController = null;
  108.  
  109.         Opsive.ThirdPersonController.CharacterBuilder.BuildHumanoidCharacter(umaData_delegate.gameObject, aiAgent, isNetworked, movementType, AnimationController, maxFrictionMaterial, frictionlessMaterial);
  110.         CameraController = Opsive.ThirdPersonController.Utility.FindCamera(umaData_delegate.gameObject).GetComponent<Opsive.ThirdPersonController.CameraController>();
  111.         if ((CameraController != null))
  112.         {
  113.             CameraController.Character = umaData_delegate.gameObject;
  114.         }
  115.  
  116.         SetupCharacter();
  117.     }
  118.     public void CharacterUpdated(UMA.UMAData umaData_delegate)
  119.     {
  120.         UnityEngine.CapsuleCollider capsuleCollider = null;
  121.  
  122.         umaData_delegate.GetComponent<Opsive.ThirdPersonController.RigidbodyCharacterController>().StopMovement();
  123.     }
  124.     public void CharactherDestroyed(UMA.UMAData umaData)
  125.     {
  126.     }
  127.     public void AddAbility(Opsive.ThirdPersonController.RigidbodyCharacterController controller, System.Type Type, string inputName, Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType startType, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType stopType)
  128.     {
  129.         Opsive.ThirdPersonController.Abilities.Ability ability = null;
  130.         Opsive.ThirdPersonController.Abilities.Ability[] abilities = null;
  131.  
  132.         ability = (controller.gameObject.AddComponent(Type) as Opsive.ThirdPersonController.Abilities.Ability);
  133.         ability.hideFlags = UnityEngine.HideFlags.HideInInspector;
  134.         ability.StartType = startType;
  135.         ability.StopType = stopType;
  136.         ability.InputName = inputName;
  137.         abilities = controller.Abilities;
  138.         ability.Index = abilities.Length;
  139.         System.Array.Resize<Opsive.ThirdPersonController.Abilities.Ability>(ref abilities, (abilities.Length + 1));
  140.         abilities[(abilities.Length - 1)] = ability;
  141.         controller.Abilities = abilities;
  142.     }
  143.     public void SetupCharacter()
  144.     {
  145.         Opsive.ThirdPersonController.RigidbodyCharacterController controller = null;
  146.  
  147.         controller = umaData.GetComponent<Opsive.ThirdPersonController.RigidbodyCharacterController>();
  148.         AddAbility(controller, typeof(Opsive.ThirdPersonController.Abilities.Fall), "", Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType.Automatic, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType.Manual);
  149.         AddAbility(controller, typeof(Opsive.ThirdPersonController.Abilities.Jump), "Jump", Opsive.ThirdPersonController.Abilities.Ability.AbilityStartType.ButtonDown, Opsive.ThirdPersonController.Abilities.Ability.AbilityStopType.Automatic);
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement