- Home /
Question by
dudedude123 · Oct 08, 2015 at 10:42 AM ·
c#uma
UMA wont display my player
I'm using the UMA to make a custom player for my game
I typed this code
void GenerateUMA()
{
// Create a new game object and add UMA componenets to it
GameObject GO = new GameObject("MyUMA");
umaDynamicAvatar = GO.AddComponent<UMADynamicAvatar>();
// Initialise Avatar and grab a reference to it's data component
umaDynamicAvatar.Initialize();
umaData = umaDynamicAvatar.umaData;
umaData.OnCharacterCreated += CharacterCreatedCallback;
// Attach our generator
umaDynamicAvatar.umaGenerator = generator;
umaData.umaGenerator = generator;
// Set up slot Array
umaData.umaRecipe.slotDataList = new SlotData[numberOfSlots];
// Set up our Morph references
umaDna = new UMADnaHumanoid();
umaTutorialDNA = new UMADnaTutorial();
umaData.umaRecipe.AddDna(umaDna);
umaData.umaRecipe.AddDna(umaTutorialDNA);
// >>> This is where the fun will happen <<<
CreateFemale();
umaDynamicAvatar.animationController = animController;
// Generate our UMA
umaDynamicAvatar.UpdateNewRace();
GO.transform.parent = this.gameObject.transform;
GO.transform.localPosition = Vector3.zero;
GO.transform.localRotation = Quaternion.identity;
}
void CreateFemale()
{
// Grab a reference to our recipe
var umaRecipe = umaDynamicAvatar.umaData.umaRecipe;
umaRecipe.SetRace(raceLibrary.GetRace("HumanFemale"));
umaData.umaRecipe.slotDataList[0] = slotLibraray.InstantiateSlot("FemaleEyes");
umaData.umaRecipe.slotDataList[0].AddOverlay(overlayLibrary.InstantiateOverlay("EyeOverlay"));
umaData.umaRecipe.slotDataList[1] = slotLibraray.InstantiateSlot("FemaleInnerMouth");
umaData.umaRecipe.slotDataList[1].AddOverlay(overlayLibrary.InstantiateOverlay("InnerMouth"));
umaData.umaRecipe.slotDataList[2] = slotLibraray.InstantiateSlot("FemaleFace");
umaData.umaRecipe.slotDataList[2].AddOverlay(overlayLibrary.InstantiateOverlay("FemaleHead01"));
umaData.umaRecipe.slotDataList[3] = slotLibraray.InstantiateSlot("FemaleTorso");
umaData.umaRecipe.slotDataList[3].AddOverlay(overlayLibrary.InstantiateOverlay("FemaleBody02"));
umaData.umaRecipe.slotDataList[4] = slotLibraray.InstantiateSlot("FemaleHands");
umaData.umaRecipe.slotDataList[4].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
umaData.umaRecipe.slotDataList[5] = slotLibraray.InstantiateSlot("FemaleLegs");
umaData.umaRecipe.slotDataList[5].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
umaData.umaRecipe.slotDataList[6] = slotLibraray.InstantiateSlot("FemaleFeet");
umaData.umaRecipe.slotDataList[6].SetOverlayList(umaData.umaRecipe.slotDataList[3].GetOverlayList());
umaData.umaRecipe.slotDataList[3].AddOverlay(overlayLibrary.InstantiateOverlay("FemaleUnderwear01"));
umaData.umaRecipe.slotDataList[2].AddOverlay(overlayLibrary.InstantiateOverlay("FemaleEyebrow01", Color.black));
SetSlot(3, "AL_FemaleTShirt01_Slot");
AddOverlay(3, "AL_FemaleTShirt01");
SetSlot(5, "AL_FemaleShortSkirt01_Slot");
AddOverlay(5, "AL_FemaleShortSkirt01");
SetSlot(6, "AL_FemaleSneakers01_Slot");
AddOverlay(6, "AL_FemaleSneakers01");
}
void Update()
{
if (bodyMass != umaDna.upperMuscle)
{
SetBodyMass(bodyMass);
umaData.isShapeDirty = true;
umaData.Dirty();
}
if (happy != expressionPlayer.midBrowUp_Down)
{
expressionPlayer.midBrowUp_Down = happy;
expressionPlayer.leftMouthSmile_Frown = happy;
expressionPlayer.rightMouthSmile_Frown = happy;
}
if (hairState && !lastHairState)
{
lastHairState = hairState;
SetSlot(7, "FemaleLongHair01");
AddOverlay(7, "FemaleLongHair01", hairColor);
umaData.isMeshDirty = true;
umaData.isTextureDirty = true;
umaData.isShapeDirty = true;
umaData.Dirty();
}
if (!hairState && lastHairState)
{
lastHairState = hairState;
RemoveSlot(7);
umaData.isMeshDirty = true;
umaData.isTextureDirty = true;
umaData.isShapeDirty = true;
umaData.Dirty();
}
if (upperAtireColor != lastUpperAtireColor )
{
lastUpperAtireColor = upperAtireColor;
ColorOverlay(3, "AL_FemaleTShirt01", upperAtireColor);
umaData.isTextureDirty = true;
umaData.Dirty();
}
if (lowerAtireColor != lastLowerAtireColor)
{
lastLowerAtireColor = lowerAtireColor;
ColorOverlay(5, "AL_FemaleShortSkirt01", lowerAtireColor);
umaData.isTextureDirty = true;
umaData.Dirty();
}
if (shoeColor != lastShoeColor)
{
lastShoeColor = shoeColor;
ColorOverlay(6, "AL_FemaleSneakers01", shoeColor);
umaData.isTextureDirty = true;
umaData.Dirty();
}
if (save)
{
save = false;
SaveAsset();
}
if (load)
{
load = false;
LoadAsset();
}
}
But it didn't show the player, how can I fix this?
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612040453im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Illuminating a 3D object's edges OnMouseOver (script in c#)? 1 Answer
Flip over an object (smooth transition) 3 Answers