My goal was to have some variables I could use with Playmaker. For now I am going to use this as a solution. The UMACustomization2.cs makes one slider that can update the changes made in the inspector. You change the way the Avatar is selected and then run the AvatarSetup(). I am sure anyone with some knowledge of C# could come up with a better solution, but here it is.
using UnityEngine;
using System.Collections;
using UMA;
public class UMACustomization2 : MonoBehaviour {
public Transform sliderPrefab;
public UMAData umaData;
public UMADynamicAvatar umaDynamicAvatar;
public CameraTrack cameraTrack;
private UMADnaHumanoid umaDna;
public SliderControl[] sliderControlList;
public SlotLibrary mySlotLibrary;
public OverlayLibrary myOverlayLibrary;
public bool editing = false;
public float height = 1.0f;
public float headSize = 1.0f;
public float headWidth = 1.0f;
public float foreheadSize = 1.0f;
public float foreheadPosition = 1.0f;
public float earsSize = 1.0f;
public float earsPosition = 1.0f;
public float earsRotation = 1.0f;
public float cheekSize = 1.0f;
public float cheekPosition = 1.0f;
public float lowCheekPronounced = 1.0f;
public float lowCheekPosition = 1.0f;
public float noseSize = 1.0f;
public float noseCurve = 1.0f;
public float noseWidth = 1.0f;
public float noseInclination = 1.0f;
public float nosePosition = 1.0f;
public float nosePronounced = 1.0f;
public float noseFlatten = 1.0f;
public float eyeSize = 1.0f;
public float eyeRotation = 1.0f;
public float lipsSize = 1.0f;
public float mouthSize = 1.0f;
public float mandibleSize = 1.0f;
public float jawsSize = 1.0f;
public float jawsPosition = 1.0f;
public float neckThickness = 1.0f;
public float chinSize = 1.0f;
public float chinPronounced = 1.0f;
public float chinPosition = 1.0f;
public float upperMuscle = 1.0f;
public float upperWeight = 1.0f;
public float lowerMuscle = 1.0f;
public float lowerWeight = 1.0f;
public float armLength = 1.0f;
public float armWidth = 1.0f;
public float forearmLength = 1.0f;
public float forearmWidth = 1.0f;
public float handsSize = 1.0f;
public float feetSize = 1.0f;
public float legSeparation = 1.0f;
public float legsSize = 1.0f;
public float gluteusSize = 1.0f;
public float breastSize = 1.0f;
public float belly = 1.0f;
public float waist = 1.0f;
void Start () {
sliderControlList = new SliderControl[1];
//Changed slider order
sliderControlList[0] = InstantiateSlider("height",0,0);
// sliderControlList[1] = InstantiateSlider("headSize",1,0);
// sliderControlList[43] = InstantiateSlider("headWidth",2,0);
// sliderControlList[32] = InstantiateSlider("forehead size",3,0);
// sliderControlList[33] = InstantiateSlider("forehead position",4,0);
//
// sliderControlList[12] = InstantiateSlider("ears size",0,1);
// sliderControlList[13] = InstantiateSlider("ears position",1,1);
// sliderControlList[14] = InstantiateSlider("ears rotation",2,1);
//
// sliderControlList[28] = InstantiateSlider("cheek size",0,2);
// sliderControlList[29] = InstantiateSlider("cheek position",1,2);
// sliderControlList[30] = InstantiateSlider("lowCheek pronounced",2,2);
// sliderControlList[31] = InstantiateSlider("lowCheek position",3,2);
//
// sliderControlList[15] = InstantiateSlider("nose size",0,3);
// sliderControlList[16] = InstantiateSlider("nose curve",1,3);
// sliderControlList[17] = InstantiateSlider("nose width",2,3);
//
// sliderControlList[18] = InstantiateSlider("nose inclination",0,4);
// sliderControlList[19] = InstantiateSlider("nose position",1,4);
// sliderControlList[20] = InstantiateSlider("nose pronounced",2,4);
// sliderControlList[21] = InstantiateSlider("nose flatten",3,4);
//
// sliderControlList[44] = InstantiateSlider("eye Size",0,5);
// sliderControlList[45] = InstantiateSlider("eye Rotation",1,5);
// sliderControlList[34] = InstantiateSlider("lips size",2,5);
// sliderControlList[35] = InstantiateSlider("mouth size",3,5);
// sliderControlList[25] = InstantiateSlider("mandible size",4,5);
//
// sliderControlList[26] = InstantiateSlider("jaw Size",0,6);
// sliderControlList[27] = InstantiateSlider("jaw Position",1,6);
// sliderControlList[2] = InstantiateSlider("neck",2,6);
//
// sliderControlList[22] = InstantiateSlider("chinSize",0,7);
// sliderControlList[23] = InstantiateSlider("chinPronounced",1,7);
// sliderControlList[24] = InstantiateSlider("chinPosition",2,7);
//
// sliderControlList[7] = InstantiateSlider("upper muscle",0,8);
// sliderControlList[8] = InstantiateSlider("lower muscle",1,8);
// sliderControlList[9] = InstantiateSlider("upper weight",2,8);
// sliderControlList[10] = InstantiateSlider("lower weight",3,8);
//
// sliderControlList[3] = InstantiateSlider("arm Length",0,9);
// sliderControlList[38] = InstantiateSlider("arm Width",1,9);
// sliderControlList[39] = InstantiateSlider("forearm Length",2,9);
// sliderControlList[40] = InstantiateSlider("forearm Width",3,9);
// sliderControlList[4] = InstantiateSlider("hands Size",4,9);
//
// sliderControlList[5] = InstantiateSlider("feet Size",0,10);
// sliderControlList[6] = InstantiateSlider("leg Separation",1,10);
// sliderControlList[11] = InstantiateSlider("legsSize",2,10);
// sliderControlList[37] = InstantiateSlider("Gluteus Size",3,10);
//
// sliderControlList[36] = InstantiateSlider("breatsSize",0,11);
// sliderControlList[41] = InstantiateSlider("belly",1,11);
// sliderControlList[42] = InstantiateSlider("waist",2,11);
////////////////////////////New/////////////////////////////////
height = umaDna.height;
headSize = umaDna.headSize;
headWidth = umaDna.headWidth;
neckThickness = umaDna.neckThickness;
armLength = umaDna.armLength;
handsSize = umaDna.handsSize;
feetSize = umaDna.feetSize;
legSeparation = umaDna.legSeparation;
upperMuscle = umaDna.upperMuscle;
lowerMuscle = umaDna.lowerMuscle;
upperWeight = umaDna.upperWeight;
lowerWeight = umaDna.lowerWeight;
legsSize = umaDna.legsSize;
earsSize = umaDna.earsSize;
earsPosition = umaDna.earsPosition;
earsRotation = umaDna.earsRotation;
noseSize = umaDna.noseSize;
noseCurve = umaDna.noseCurve;
noseWidth = umaDna.noseWidth;
noseInclination = umaDna.noseInclination;
nosePosition = umaDna.nosePosition;
nosePronounced = umaDna.nosePronounced;
noseFlatten = umaDna.noseFlatten;
chinSize = umaDna.chinSize;
chinPronounced = umaDna.chinPronounced;
chinPosition = umaDna.chinPosition;
mandibleSize = umaDna.mandibleSize;
jawsSize = umaDna.jawsSize;
jawsPosition = umaDna.jawsPosition;
cheekSize = umaDna.cheekSize;
cheekPosition = umaDna.cheekPosition;
lowCheekPronounced = umaDna.lowCheekPronounced;
lowCheekPosition = umaDna.lowCheekPosition;
foreheadSize = umaDna.foreheadSize;
foreheadPosition = umaDna.foreheadPosition;
eyeSize = umaDna.eyeSize;
eyeRotation = umaDna.eyeRotation;
lipsSize = umaDna.lipsSize;
mouthSize = umaDna.mouthSize;
breastSize = umaDna.breastSize;
gluteusSize = umaDna.gluteusSize;
armWidth = umaDna.armWidth;
forearmLength = umaDna.forearmLength;
forearmWidth = umaDna.forearmWidth;
belly = umaDna.belly;
waist = umaDna.waist;
/////////////////////////////////////////////////////////////
}
void Update () {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Input.GetMouseButtonDown(1)){
if (Physics.Raycast(ray, out hit, 100)){
umaData = hit.collider.transform.parent.parent.GetComponent<UMAData>();
if(umaData){
AvatarSetup();
}
}
}
if(umaData){
TransferValues();
editing = false;
for(int i = 0; i < sliderControlList.Length; i++){
if(sliderControlList*.pressed == true){*
-
editing = true;*
-
UpdateUMAShape();*
-
}*
-
}*
-
}*
-
}*
-
public void AvatarSetup(){*
-
umaDynamicAvatar = umaData.gameObject.GetComponent<UMADynamicAvatar>();*
-
if(cameraTrack){*
-
cameraTrack.target = umaData.umaRoot.transform;*
-
}*
-
umaDna = umaData.umaRecipe.umaDna[typeof(UMADnaHumanoid)] as UMADnaHumanoid;*
-
ReceiveValues();*
-
}*
-
public SliderControl InstantiateSlider(string name, int X, int Y){*
-
Transform TempSlider;*
-
TempSlider = Instantiate(sliderPrefab,Vector3.zero, Quaternion.identity) as Transform;*
-
TempSlider.parent = transform;*
-
TempSlider.gameObject.name = name;*
-
SliderControl tempSlider = TempSlider.GetComponent("SliderControl") as SliderControl;*
-
tempSlider.actualValue = 0.5f;*
-
tempSlider.descriptionText.text = name;*
_ tempSlider.sliderOffset.x = 20 + X100;_
_ tempSlider.sliderOffset.y = -20 - Y60;_
-
return tempSlider;*
-
}*
-
public SliderControl InstantiateStepSlider(string name, int X, int Y){*
-
SliderControl tempSlider = InstantiateSlider(name,X,Y);*
-
tempSlider.stepSlider = true;*
-
return tempSlider;*
-
}*
-
public void UpdateUMAAtlas(){*
-
umaData.isTextureDirty = true;*
-
umaData.Dirty(); *
-
}*
-
public void UpdateUMAShape(){*
-
umaData.isShapeDirty = true;*
-
umaData.Dirty();*
-
}*
-
public void ReceiveValues(){*
-
if(umaDna != null){*
-
sliderControlList[0].actualValue = umaDna.height;*
// sliderControlList[1].actualValue = umaDna.headSize ;
// sliderControlList[43].actualValue = umaDna.headWidth ;
*// *
// sliderControlList[2].actualValue = umaDna.neckThickness;
*// *
// sliderControlList[3].actualValue = umaDna.armLength;
// sliderControlList[4].actualValue = umaDna.handsSize;
// sliderControlList[5].actualValue = umaDna.feetSize;
// sliderControlList[6].actualValue = umaDna.legSeparation;
*// *
*// *
// sliderControlList[7].actualValue = umaDna.upperMuscle;
// sliderControlList[8].actualValue = umaDna.lowerMuscle;
// sliderControlList[9].actualValue = umaDna.upperWeight;
// sliderControlList[10].actualValue = umaDna.lowerWeight;
*// *
// sliderControlList[11].actualValue = umaDna.legsSize;
*// *
// sliderControlList[12].actualValue = umaDna.earsSize;
// sliderControlList[13].actualValue = umaDna.earsPosition;
// sliderControlList[14].actualValue = umaDna.earsRotation;
*// *
// sliderControlList[15].actualValue = umaDna.noseSize;
*// *
// sliderControlList[16].actualValue = umaDna.noseCurve;
// sliderControlList[17].actualValue = umaDna.noseWidth;
// sliderControlList[18].actualValue = umaDna.noseInclination;
// sliderControlList[19].actualValue = umaDna.nosePosition;
// sliderControlList[20].actualValue = umaDna.nosePronounced;
// sliderControlList[21].actualValue = umaDna.noseFlatten;
*// *
// sliderControlList[22].actualValue = umaDna.chinSize;
// sliderControlList[23].actualValue = umaDna.chinPronounced;
// sliderControlList[24].actualValue = umaDna.chinPosition;
*// *
// sliderControlList[25].actualValue = umaDna.mandibleSize;
// sliderControlList[26].actualValue = umaDna.jawsSize;
// sliderControlList[27].actualValue = umaDna.jawsPosition;
*// *
// sliderControlList[28].actualValue = umaDna.cheekSize;
// sliderControlList[29].actualValue = umaDna.cheekPosition;
// sliderControlList[30].actualValue = umaDna.lowCheekPronounced;
// sliderControlList[31].actualValue = umaDna.lowCheekPosition;
*// *
// sliderControlList[32].actualValue = umaDna.foreheadSize;
// sliderControlList[33].actualValue = umaDna.foreheadPosition;
*// *
// sliderControlList[44].actualValue = umaDna.eyeSize;
// sliderControlList[45].actualValue = umaDna.eyeRotation;
// sliderControlList[34].actualValue = umaDna.lipsSize;
// sliderControlList[35].actualValue = umaDna.mouthSize;
*// sliderControlList[36].actualValue = umaDna.breastSize; *
*// sliderControlList[37].actualValue = umaDna.gluteusSize; *
*// *
// sliderControlList[38].actualValue = umaDna.armWidth;
// sliderControlList[39].actualValue = umaDna.forearmLength;
// sliderControlList[40].actualValue = umaDna.forearmWidth;
*// *
// sliderControlList[41].actualValue = umaDna.belly;
// sliderControlList[42].actualValue = umaDna.waist;
-
////////////////////////////New/////////////////////////////////*
-
height = umaDna.height;*
-
headSize = umaDna.headSize;*
-
headWidth = umaDna.headWidth;*
-
neckThickness = umaDna.neckThickness;*
-
armLength = umaDna.armLength;*
-
handsSize = umaDna.handsSize;*
-
feetSize = umaDna.feetSize;*
-
legSeparation = umaDna.legSeparation;*
-
upperMuscle = umaDna.upperMuscle;*
-
lowerMuscle = umaDna.lowerMuscle;*
-
upperWeight = umaDna.upperWeight;*
-
lowerWeight = umaDna.lowerWeight;*
-
legsSize = umaDna.legsSize;*
-
earsSize = umaDna.earsSize;*
-
earsPosition = umaDna.earsPosition;*
-
earsRotation = umaDna.earsRotation;*
-
noseSize = umaDna.noseSize;*
-
noseCurve = umaDna.noseCurve;*
-
noseWidth = umaDna.noseWidth;*
-
noseInclination = umaDna.noseInclination;*
-
nosePosition = umaDna.nosePosition;*
-
nosePronounced = umaDna.nosePronounced;*
-
noseFlatten = umaDna.noseFlatten;*
-
chinSize = umaDna.chinSize;*
-
chinPronounced = umaDna.chinPronounced;*
-
chinPosition = umaDna.chinPosition;*
-
mandibleSize = umaDna.mandibleSize;*
-
jawsSize = umaDna.jawsSize;*
-
jawsPosition = umaDna.jawsPosition;*
-
cheekSize = umaDna.cheekSize;*
-
cheekPosition = umaDna.cheekPosition;*
-
lowCheekPronounced = umaDna.lowCheekPronounced;*
-
lowCheekPosition = umaDna.lowCheekPosition;*
-
foreheadSize = umaDna.foreheadSize;*
-
foreheadPosition = umaDna.foreheadPosition;*
-
eyeSize = umaDna.eyeSize;*
-
eyeRotation = umaDna.eyeRotation;*
-
lipsSize = umaDna.lipsSize;*
-
mouthSize = umaDna.mouthSize;*
-
breastSize = umaDna.breastSize; *
-
gluteusSize = umaDna.gluteusSize; *
-
armWidth = umaDna.armWidth;*
-
forearmLength = umaDna.forearmLength;*
-
forearmWidth = umaDna.forearmWidth;*
-
belly = umaDna.belly;*
-
waist = umaDna.waist;*
-
/////////////////////////////////////////////////////////////*
-
///*
// for(int i = 0; i < sliderControlList.Length; i++){
// sliderControlList*.ForceUpdate();*
// }
* }*
* }*
* public void TransferValues(){*
* if(umaDna != null){*
// umaDna.height = sliderControlList[0].actualValue;
// umaDna.headSize = sliderControlList[1].actualValue;
// umaDna.headWidth = sliderControlList[43].actualValue;
*// *
// umaDna.neckThickness = sliderControlList[2].actualValue;
*// *
// umaDna.armLength = sliderControlList[3].actualValue;
// umaDna.handsSize = sliderControlList[4].actualValue;
// umaDna.feetSize = sliderControlList[5].actualValue;
// umaDna.legSeparation = sliderControlList[6].actualValue;
*// *
*// *
// umaDna.upperMuscle = sliderControlList[7].actualValue;
// umaDna.lowerMuscle = sliderControlList[8].actualValue;
// umaDna.upperWeight = sliderControlList[9].actualValue;
// umaDna.lowerWeight = sliderControlList[10].actualValue;
*// *
// umaDna.legsSize = sliderControlList[11].actualValue;
*// *
// umaDna.earsSize = sliderControlList[12].actualValue;
// umaDna.earsPosition = sliderControlList[13].actualValue;
// umaDna.earsRotation = sliderControlList[14].actualValue;
*// *
// umaDna.noseSize = sliderControlList[15].actualValue;
*// *
// umaDna.noseCurve = sliderControlList[16].actualValue;
// umaDna.noseWidth = sliderControlList[17].actualValue;
// umaDna.noseInclination = sliderControlList[18].actualValue;
// umaDna.nosePosition = sliderControlList[19].actualValue;
// umaDna.nosePronounced = sliderControlList[20].actualValue;
// umaDna.noseFlatten = sliderControlList[21].actualValue;
*// *
// umaDna.chinSize = sliderControlList[22].actualValue;
// umaDna.chinPronounced = sliderControlList[23].actualValue;
// umaDna.chinPosition = sliderControlList[24].actualValue;
*// *
// umaDna.mandibleSize = sliderControlList[25].actualValue;
// umaDna.jawsSize = sliderControlList[26].actualValue;
// umaDna.jawsPosition = sliderControlList[27].actualValue;
*// *
// umaDna.cheekSize = sliderControlList[28].actualValue;
// umaDna.cheekPosition = sliderControlList[29].actualValue;
// umaDna.lowCheekPronounced = sliderControlList[30].actualValue;
// umaDna.lowCheekPosition = sliderControlList[31].actualValue;
*// *
// umaDna.foreheadSize = sliderControlList[32].actualValue;
// umaDna.foreheadPosition = sliderControlList[33].actualValue;
*// *
// umaDna.eyeSize = sliderControlList[44].actualValue;
// umaDna.eyeRotation = sliderControlList[45].actualValue;
// umaDna.lipsSize = sliderControlList[34].actualValue;
// umaDna.mouthSize = sliderControlList[35].actualValue;
*// umaDna.breastSize = sliderControlList[36].actualValue; *
// umaDna.gluteusSize = sliderControlList[37].actualValue;
*// *
// umaDna.armWidth = sliderControlList[38].actualValue;
// umaDna.forearmLength = sliderControlList[39].actualValue;
// umaDna.forearmWidth = sliderControlList[40].actualValue;
*// *
// umaDna.belly = sliderControlList[41].actualValue;
// umaDna.waist = sliderControlList[42].actualValue;
* ////////////////////////////New/////////////////////////////////*
* umaDna.height = height;*
* umaDna.headSize = headSize;*
* umaDna.headWidth = headWidth;*
* umaDna.neckThickness = neckThickness;*
* umaDna.armLength = armLength;*
* umaDna.handsSize = handsSize;*
* umaDna.feetSize = feetSize;*
* umaDna.legSeparation = legSeparation;*
* umaDna.upperMuscle = upperMuscle;*
* umaDna.lowerMuscle = lowerMuscle;*
* umaDna.upperWeight = umaDna.upperWeight;*
* umaDna.lowerWeight = umaDna.lowerWeight;*
* umaDna.legsSize = legsSize;*
* umaDna.earsSize = earsSize;*
* umaDna.earsPosition = earsPosition;*
* umaDna.earsRotation = earsRotation;*
* umaDna.noseSize = noseSize;*
* umaDna.noseCurve = noseCurve;*
* umaDna.noseWidth = noseWidth;*
* umaDna.noseInclination = noseInclination;*
* umaDna.nosePosition = nosePosition;*
* umaDna.nosePronounced = nosePronounced;*
* umaDna.noseFlatten = noseFlatten;*
* umaDna.chinSize = chinSize;*
* umaDna.chinPronounced = chinPronounced;*
* umaDna.chinPosition = chinPosition;*
* umaDna.mandibleSize = mandibleSize;*
* umaDna.jawsSize = jawsSize;*
* umaDna.jawsPosition = jawsPosition;*
* umaDna.cheekSize = cheekSize;*
* umaDna.cheekPosition = cheekPosition;*
* umaDna.lowCheekPronounced = lowCheekPronounced;*
* umaDna.lowCheekPosition = lowCheekPosition;*
* umaDna.foreheadSize = foreheadSize;*
* umaDna.foreheadPosition = foreheadPosition;*
* umaDna.eyeSize = eyeSize;*
* umaDna.eyeRotation = eyeRotation;*
* umaDna.lipsSize = lipsSize;*
* umaDna.mouthSize = mouthSize;*
* umaDna.breastSize = breastSize; *
* umaDna.gluteusSize = gluteusSize;*
* umaDna.armWidth = armWidth;*
* umaDna.forearmLength = forearmLength;*
* umaDna.forearmWidth = forearmWidth;*
* umaDna.belly = belly;*
* umaDna.waist = waist;*
* /////////////////////////////////////////////////////////////*
* }*
* }*
}