Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by jerokblck · Jun 15, 2020 at 09:35 AM · scripting problemscript.prefabs

problems with List

Hello, I'm stuck I have Synty Studios asset pack, I tried to modify the script that comes with the demo to customize a character, what I want to do is be able to modify each prefab aside if I get a random character, but all the attempts I've made didn't work.

it's a pretty extensive code and I can't understand how it works, if someone can help me with any idea not to use lists in the script or somehow to run the demo script for my purpose, in advance thank you very much. (Cambridge Traductor)

annex the demo code

 // character randomizer version 1.30
 using System.Collections.Generic;
 using UnityEngine;
 
 namespace PsychoticLab
 {
     public enum Gender { Male, Female }
     public enum Race { Human, Elf }
     public enum SkinColor { White, Brown, Black, Elf }
     public enum Elements {  Yes, No }
     public enum HeadCovering { HeadCoverings_Base_Hair, HeadCoverings_No_FacialHair, HeadCoverings_No_Hair }
     public enum FacialHair { Yes, No }
 
     public class CharacterRandomizer : MonoBehaviour
     {
         [Header("Demo Settings")]
         public bool repeatOnPlay = false;
         public float shuffleSpeed = 0.7f;
 
         [Header("Material")]
         public Material mat;
 
         [Header("Gear Colors")]
         public Color[] primary = { new Color(0.2862745f, 0.4f, 0.4941177f), new Color(0.4392157f, 0.1960784f, 0.172549f), new Color(0.3529412f, 0.3803922f, 0.2705882f), new Color(0.682353f, 0.4392157f, 0.2196079f), new Color(0.4313726f, 0.2313726f, 0.2705882f), new Color(0.5921569f, 0.4941177f, 0.2588235f), new Color(0.482353f, 0.4156863f, 0.3529412f), new Color(0.2352941f, 0.2352941f, 0.2352941f), new Color(0.2313726f, 0.4313726f, 0.4156863f) };
         public Color[] secondary = { new Color(0.7019608f, 0.6235294f, 0.4666667f), new Color(0.7372549f, 0.7372549f, 0.7372549f), new Color(0.1647059f, 0.1647059f, 0.1647059f), new Color(0.2392157f, 0.2509804f, 0.1882353f) };
 
         [Header("Metal Colors")]
         public Color[] metalPrimary = { new Color(0.6705883f, 0.6705883f, 0.6705883f), new Color(0.5568628f, 0.5960785f, 0.6392157f), new Color(0.5568628f, 0.6235294f, 0.6f), new Color(0.6313726f, 0.6196079f, 0.5568628f), new Color(0.6980392f, 0.6509804f, 0.6196079f) };
         public Color[] metalSecondary = { new Color(0.3921569f, 0.4039216f, 0.4117647f), new Color(0.4784314f, 0.5176471f, 0.5450981f), new Color(0.3764706f, 0.3607843f, 0.3372549f), new Color(0.3254902f, 0.3764706f, 0.3372549f), new Color(0.4f, 0.4039216f, 0.3568628f) };
 
         [Header("Leather Colors")]
         public Color[] leatherPrimary;
         public Color[] leatherSecondary;
 
         [Header("Skin Colors")]
         public Color[] whiteSkin = { new Color(1f, 0.8000001f, 0.682353f) };
         public Color[] brownSkin = { new Color(0.8196079f, 0.6352941f, 0.4588236f) };
         public Color[] blackSkin = { new Color(0.5647059f, 0.4078432f, 0.3137255f) };
         public Color[] elfSkin = { new Color(0.9607844f, 0.7843138f, 0.7294118f) };
 
         [Header("Hair Colors")]
         public Color[] whiteHair = { new Color(0.3098039f, 0.254902f, 0.1764706f), new Color(0.2196079f, 0.2196079f, 0.2196079f), new Color(0.8313726f, 0.6235294f, 0.3607843f), new Color(0.8901961f, 0.7803922f, 0.5490196f), new Color(0.8000001f, 0.8196079f, 0.8078432f), new Color(0.6862745f, 0.4f, 0.2352941f), new Color(0.5450981f, 0.427451f, 0.2156863f), new Color(0.8470589f, 0.4666667f, 0.2470588f) };
         public Color whiteStubble = new Color(0.8039216f, 0.7019608f, 0.6313726f);
         public Color[] brownHair = { new Color(0.3098039f, 0.254902f, 0.1764706f), new Color(0.1764706f, 0.1686275f, 0.1686275f), new Color(0.3843138f, 0.2352941f, 0.0509804f), new Color(0.6196079f, 0.6196079f, 0.6196079f), new Color(0.6196079f, 0.6196079f, 0.6196079f) };
         public Color brownStubble = new Color(0.6588235f, 0.572549f, 0.4627451f);
         public Color[] blackHair = { new Color(0.2431373f, 0.2039216f, 0.145098f), new Color(0.1764706f, 0.1686275f, 0.1686275f), new Color(0.1764706f, 0.1686275f, 0.1686275f) };
         public Color blackStubble = new Color(0.3882353f, 0.2901961f, 0.2470588f);
         public Color[] elfHair = { new Color(0.9764706f, 0.9686275f, 0.9568628f), new Color(0.1764706f, 0.1686275f, 0.1686275f), new Color(0.8980393f, 0.7764707f, 0.6196079f) };
         public Color elfStubble = new Color(0.8627452f, 0.7294118f, 0.6862745f);
 
         [Header("Scar Colors")]
         public Color whiteScar = new Color(0.9294118f, 0.6862745f, 0.5921569f);
         public Color brownScar = new Color(0.6980392f, 0.5450981f, 0.4f);
         public Color blackScar = new Color(0.4235294f, 0.3176471f, 0.282353f);
         public Color elfScar = new Color(0.8745099f, 0.6588235f, 0.6313726f);
 
         [Header("Body Art Colors")]
         public Color[] bodyArt = { new Color(0.0509804f, 0.6745098f, 0.9843138f), new Color(0.7215686f, 0.2666667f, 0.2666667f), new Color(0.3058824f, 0.7215686f, 0.6862745f), new Color(0.9254903f, 0.882353f, 0.8509805f), new Color(0.3098039f, 0.7058824f, 0.3137255f), new Color(0.5294118f, 0.3098039f, 0.6470588f), new Color(0.8666667f, 0.7764707f, 0.254902f), new Color(0.2392157f, 0.4588236f, 0.8156863f) };
 
         // list of enabed objects on character
         [HideInInspector]
         public List<GameObject> enabledObjects = new List<GameObject>();
 
         // character object lists
         // male list
         [HideInInspector]
         public CharacterObjectGroups male;
 
         // female list
         [HideInInspector]
         public CharacterObjectGroups female;
 
         // universal list
         [HideInInspector]
         public CharacterObjectListsAllGender allGender;
 
         // reference to camera transform, used for rotation around the model during or after a randomization (this is sourced from Camera.main, so the main camera must be in the scene for this to work)
         Transform camHolder;
 
         // cam rotation x
         float x = 16;
 
         // cam rotation y
         float y = -30;
 
         // randomize character creating button
         void OnGUI()
         {
             /*
             if (GUI.Button(new Rect(10, 10, 150, 50), "Randomize Character"))
             {
                 // call randomization method
                 Randomize();
             }
             */
 
             GUIStyle style = new GUIStyle();
             style.normal.textColor = Color.white;
             style.fontStyle = FontStyle.Bold;
             style.fontSize = 24;
             GUI.Label(new Rect(10, 10, 150, 50), "Hold Right Mouse Button Down\nor use W A S D To Rotate.", style);
         }
 
         private void Start()
         {
             // rebuild all lists
             BuildLists();
 
             // disable any enabled objects before clear
             if (enabledObjects.Count != 0)
             {
                 foreach (GameObject g in enabledObjects)
                 {
                     g.SetActive(false);
                 }
             }
 
             // clear enabled objects list
             enabledObjects.Clear();
 
             // set default male character
             ActivateItem(male.headAllElements[0]);
             ActivateItem(male.eyebrow[0]);
             ActivateItem(male.facialHair[0]);
             ActivateItem(male.torso[0]);
             ActivateItem(male.arm_Upper_Right[0]);
             ActivateItem(male.arm_Upper_Left[0]);
             ActivateItem(male.arm_Lower_Right[0]);
             ActivateItem(male.arm_Lower_Left[0]);
             ActivateItem(male.hand_Right[0]);
             ActivateItem(male.hand_Left[0]);
             ActivateItem(male.hips[0]);
             ActivateItem(male.leg_Right[0]);
             ActivateItem(male.leg_Left[0]);
 
             // setting up the camera position, rotation, and reference for use
             Transform cam = Camera.main.transform;
             if(cam)
             {
                 cam.position = transform.position + new Vector3(0, 0.3f, 2);
                 cam.rotation = Quaternion.Euler(0, -180, 0);
                 camHolder = new GameObject().transform;
                 camHolder.position = transform.position + new Vector3(0, 1, 0);
                 cam.LookAt(camHolder);
                 cam.SetParent(camHolder);
             }
 
             // if repeat on play is checked in the inspector, repeat the randomize method based on the shuffle speed, also defined in the inspector
             if (repeatOnPlay)
                 InvokeRepeating("Randomize", shuffleSpeed, shuffleSpeed);
         }
 
         private void Update()
         {
             if (camHolder)
             {
                 if (Input.GetKey(KeyCode.Mouse1))
                 {
                     x += 1 * Input.GetAxis("Mouse X");
                     y -= 1 * Input.GetAxis("Mouse Y");
                     Cursor.lockState = CursorLockMode.Locked;
                     Cursor.visible = false;
                 }
                 else
                 {
                     x -= 1 * Input.GetAxis("Horizontal");
                     y -= 1 * Input.GetAxis("Vertical");
                     Cursor.lockState = CursorLockMode.None;
                     Cursor.visible = true;
                 }
             }
         }
 
         void LateUpdate()
         {
             // method for handling the camera rotation around the character
             if (camHolder)
             {
                 y = Mathf.Clamp(y, -45, 15);
                 camHolder.eulerAngles = new Vector3(y, x, 0.0f);
             }
         }
 
         // character randomization method
         void Randomize()
         {
             // initialize settings
             Gender gender = Gender.Male;
             Race race = Race.Human;
             SkinColor skinColor = SkinColor.White;
             Elements elements = Elements.Yes;
             HeadCovering headCovering = HeadCovering.HeadCoverings_Base_Hair;
             FacialHair facialHair = FacialHair.Yes;
 
             // disable any enabled objects before clear
             if (enabledObjects.Count != 0)
             {
                 foreach (GameObject g in enabledObjects)
                 {
                     g.SetActive(false);
                 }
             }
 
             // clear enabled objects list (all objects now disabled)
             enabledObjects.Clear();
 
             // roll for gender
             if (!GetPercent(50))
                 gender = Gender.Female;
 
             // roll for human (70% chance, 30% chance for elf)
             if (!GetPercent(70))
                 race = Race.Elf;
 
             // roll for facial elements (beard, eyebrows)
             if (!GetPercent(50))
                 elements = Elements.No;
 
             // select head covering 33% chance for each
             int headCoveringRoll = Random.Range(0, 100);
             // HeadCoverings_Base_Hair
             if (headCoveringRoll <= 33)
                 headCovering = HeadCovering.HeadCoverings_Base_Hair;
             // HeadCoverings_No_FacialHair
             if (headCoveringRoll > 33 && headCoveringRoll < 66)
                 headCovering = HeadCovering.HeadCoverings_No_FacialHair;
             // HeadCoverings_No_Hair
             if (headCoveringRoll >= 66)
                 headCovering = HeadCovering.HeadCoverings_No_Hair;
 
             // select skin color if human, otherwise set skin color to elf
             switch (race)
             {
                 case Race.Human:
                     // select human skin 33% chance for each
                     int colorRoll = Random.Range(0, 100);
                     // select white skin
                     if (colorRoll <= 33)
                         skinColor = SkinColor.White;
                     // select brown skin
                     if (colorRoll > 33 && colorRoll < 66)
                         skinColor = SkinColor.Brown;
                     // select black skin
                     if (colorRoll >= 66)
                         skinColor = SkinColor.Black;
                     break;
                 case Race.Elf:
                     // select elf skin
                     skinColor = SkinColor.Elf;
                     break;
             }
 
             //roll for gender
             switch (gender)
             {
                 case Gender.Male:
                     // roll for facial hair if male
                     if (!GetPercent(50))
                         facialHair = FacialHair.No;
 
                     // initialize randomization
                     RandomizeByVariable(male, gender, elements, race, facialHair, skinColor, headCovering);
                     break;
 
                 case Gender.Female:
 
                     // no facial hair if female
                     facialHair = FacialHair.No;
 
                     // initialize randomization
                     RandomizeByVariable(female, gender, elements, race, facialHair, skinColor, headCovering);
                     break;
             }
         }
 
         // randomization method based on previously selected variables
         void RandomizeByVariable(CharacterObjectGroups cog, Gender gender, Elements elements, Race race, FacialHair facialHair, SkinColor skinColor, HeadCovering headCovering)
         {
             // if facial elements are enabled
             switch (elements)
             {
                 case Elements.Yes:
                     //select head with all elements
                     if (cog.headAllElements.Count != 0)
                         ActivateItem(cog.headAllElements[Random.Range(0, cog.headAllElements.Count)]);
 
                     //select eyebrows
                     if (cog.eyebrow.Count != 0)
                         ActivateItem(cog.eyebrow[Random.Range(0, cog.eyebrow.Count)]);
 
                     //select facial hair (conditional)
                     if (cog.facialHair.Count != 0 && facialHair == FacialHair.Yes && gender == Gender.Male && headCovering != HeadCovering.HeadCoverings_No_FacialHair)
                         ActivateItem(cog.facialHair[Random.Range(0, cog.facialHair.Count)]);
 
                     // select hair attachment
                     switch (headCovering)
                     {
                         case HeadCovering.HeadCoverings_Base_Hair:
                             // set hair attachment to index 1
                             if (allGender.all_Hair.Count != 0)
                                 ActivateItem(allGender.all_Hair[1]);
                             if (allGender.headCoverings_Base_Hair.Count != 0)
                                 ActivateItem(allGender.headCoverings_Base_Hair[Random.Range(0, allGender.headCoverings_Base_Hair.Count)]);
                             break;
                         case HeadCovering.HeadCoverings_No_FacialHair:
                             // no facial hair attachment
                             if (allGender.all_Hair.Count != 0)
                                 ActivateItem(allGender.all_Hair[Random.Range(0, allGender.all_Hair.Count)]);
                             if (allGender.headCoverings_No_FacialHair.Count != 0)
                                 ActivateItem(allGender.headCoverings_No_FacialHair[Random.Range(0, allGender.headCoverings_No_FacialHair.Count)]);
                             break;
                         case HeadCovering.HeadCoverings_No_Hair:
                             // select hair attachment
                             if (allGender.headCoverings_No_Hair.Count != 0)
                                 ActivateItem(allGender.all_Hair[Random.Range(0, allGender.all_Hair.Count)]);
                             // if not human
                             if (race != Race.Human)
                             {
                                 // select elf ear attachment
                                 if (allGender.elf_Ear.Count != 0)
                                     ActivateItem(allGender.elf_Ear[Random.Range(0, allGender.elf_Ear.Count)]);
                             }
                             break;
                     }
                     break;
 
                 case Elements.No:
                     //select head with no elements
                     if (cog.headNoElements.Count != 0)
                         ActivateItem(cog.headNoElements[Random.Range(0, cog.headNoElements.Count)]);
                     break;
             }
 
             // select torso starting at index 1
             if (cog.torso.Count != 0)
                 ActivateItem(cog.torso[Random.Range(1, cog.torso.Count)]);
 
             // determine chance for upper arms to be different and activate
             if (cog.arm_Upper_Right.Count != 0)
                 RandomizeLeftRight(cog.arm_Upper_Right, cog.arm_Upper_Left, 15);
 
             // determine chance for lower arms to be different and activate
             if (cog.arm_Lower_Right.Count != 0)
                 RandomizeLeftRight(cog.arm_Lower_Right, cog.arm_Lower_Left, 15);
 
             // determine chance for hands to be different and activate
             if (cog.hand_Right.Count != 0)
                 RandomizeLeftRight(cog.hand_Right, cog.hand_Left, 15);
 
             // select hips starting at index 1
             if (cog.hips.Count != 0)
                 ActivateItem(cog.hips[Random.Range(1, cog.hips.Count)]);
 
             // determine chance for legs to be different and activate
             if (cog.leg_Right.Count != 0)
                 RandomizeLeftRight(cog.leg_Right, cog.leg_Left, 15);
 
             // select chest attachment
             if (allGender.chest_Attachment.Count != 0)
                 ActivateItem(allGender.chest_Attachment[Random.Range(0, allGender.chest_Attachment.Count)]);
 
             // select back attachment
             if (allGender.back_Attachment.Count != 0)
                 ActivateItem(allGender.back_Attachment[Random.Range(0, allGender.back_Attachment.Count)]);
 
             // determine chance for shoulder attachments to be different and activate
             if (allGender.shoulder_Attachment_Right.Count != 0)
                 RandomizeLeftRight(allGender.shoulder_Attachment_Right, allGender.shoulder_Attachment_Left, 10);
 
             // determine chance for elbow attachments to be different and activate
             if (allGender.elbow_Attachment_Right.Count != 0)
                 RandomizeLeftRight(allGender.elbow_Attachment_Right, allGender.elbow_Attachment_Left, 10);
 
             // select hip attachment
             if (allGender.hips_Attachment.Count != 0)
                 ActivateItem(allGender.hips_Attachment[Random.Range(0, allGender.hips_Attachment.Count)]);
 
             // determine chance for knee attachments to be different and activate
             if (allGender.knee_Attachement_Right.Count != 0)
                 RandomizeLeftRight(allGender.knee_Attachement_Right, allGender.knee_Attachement_Left, 10);
 
             // start randomization of the random characters colors
             RandomizeColors(skinColor);
         }
 
         // handle randomization of the random characters colors
         void RandomizeColors(SkinColor skinColor)
         {
             // set skin and hair colors based on skin color roll
             switch (skinColor)
             {
                 case SkinColor.White:
                     // randomize and set white skin, hair, stubble, and scar color
                     RandomizeAndSetHairSkinColors("White", whiteSkin, whiteHair, whiteStubble, whiteScar);
                     break;
 
                 case SkinColor.Brown:
                     // randomize and set brown skin, hair, stubble, and scar color
                     RandomizeAndSetHairSkinColors("Brown", brownSkin, brownHair, brownStubble, brownScar);
                     break;
 
                 case SkinColor.Black:
                     // randomize and black elf skin, hair, stubble, and scar color
                     RandomizeAndSetHairSkinColors("Black", blackSkin, blackHair, blackStubble, blackScar);
                     break;
 
                 case SkinColor.Elf:
                     // randomize and set elf skin, hair, stubble, and scar color
                     RandomizeAndSetHairSkinColors("Elf", elfSkin, elfHair, elfStubble, elfScar);
                     break;
             }
 
             // randomize and set primary color
             if (primary.Length != 0)
                 mat.SetColor("_Color_Primary", primary[Random.Range(0, primary.Length)]);
             else
                 Debug.Log("No Primary Colors Specified In The Inspector");
 
             // randomize and set secondary color
             if (secondary.Length != 0)
                 mat.SetColor("_Color_Secondary", secondary[Random.Range(0, secondary.Length)]);
             else
                 Debug.Log("No Secondary Colors Specified In The Inspector");
 
             // randomize and set primary metal color
             if (metalPrimary.Length != 0)
                 mat.SetColor("_Color_Metal_Primary", metalPrimary[Random.Range(0, metalPrimary.Length)]);
             else
                 Debug.Log("No Primary Metal Colors Specified In The Inspector");
 
             // randomize and set secondary metal color
             if (metalSecondary.Length != 0)
                 mat.SetColor("_Color_Metal_Secondary", metalSecondary[Random.Range(0, metalSecondary.Length)]);
             else
                 Debug.Log("No Secondary Metal Colors Specified In The Inspector");
 
             // randomize and set primary leather color
             if (leatherPrimary.Length != 0)
                 mat.SetColor("_Color_Leather_Primary", leatherPrimary[Random.Range(0, leatherPrimary.Length)]);
             else
                 Debug.Log("No Primary Leather Colors Specified In The Inspector");
 
             // randomize and set secondary leather color
             if (leatherSecondary.Length != 0)
                 mat.SetColor("_Color_Leather_Secondary", leatherSecondary[Random.Range(0, leatherSecondary.Length)]);
             else
                 Debug.Log("No Secondary Leather Colors Specified In The Inspector");
 
             // randomize and set body art color
             if (bodyArt.Length != 0)
                 mat.SetColor("_Color_BodyArt", bodyArt[Random.Range(0, bodyArt.Length)]);
             else
                 Debug.Log("No Body Art Colors Specified In The Inspector");
 
             // randomize and set body art amount
             mat.SetFloat("_BodyArt_Amount", Random.Range(0.0f, 1.0f));
         }
 
         void RandomizeAndSetHairSkinColors(string info, Color[] skin, Color[] hair, Color stubble, Color scar)
         {
             // randomize and set elf skin color
             if (skin.Length != 0)
             {
                 mat.SetColor("_Color_Skin", skin[Random.Range(0, skin.Length)]);
             }
             else
             {
                 Debug.Log("No " + info + " Skin Colors Specified In The Inspector");
             }
 
             // randomize and set elf hair color
             if (hair.Length != 0)
             {
                 mat.SetColor("_Color_Hair", hair[Random.Range(0, hair.Length)]);
             }
             else
             {
                 Debug.Log("No " + info + " Hair Colors Specified In The Inspector");
             }
 
             // set stubble color
             mat.SetColor("_Color_Stubble", stubble);
 
             // set scar color
             mat.SetColor("_Color_Scar", scar);
         }
 
         // method for handling the chance of left/right items to be differnt (such as shoulders, hands, legs, arms)
         void RandomizeLeftRight(List<GameObject> objectListRight, List<GameObject> objectListLeft, int rndPercent)
         {
             // rndPercent = chance for left item to be different
 
             // stored right index
             int index = Random.Range(0, objectListRight.Count);
 
             // enable item from list using index
             ActivateItem(objectListRight[index]);
 
             // roll for left item mismatch, if true randomize index based on left item list
             if (GetPercent(rndPercent))
                 index = Random.Range(0, objectListLeft.Count);
 
             // enable left item from list using index
             ActivateItem(objectListLeft[index]);
         }
 
         // enable game object and add it to the enabled objects list
         void ActivateItem(GameObject go)
         {
             // enable item
             go.SetActive(true);
 
             // add item to the enabled items list
             enabledObjects.Add(go);
         }
 
         Color ConvertColor(int r, int g, int b)
         {
             return new Color(r / 255.0f, g / 255.0f, b / 255.0f, 1);
         }
 
         // method for rolling percentages (returns true/false)
         bool GetPercent(int pct)
         {
             bool p = false;
             int roll = Random.Range(0, 100);
             if (roll <= pct)
             {
                 p = true;
             }
             return p;
         }
 
         // build all item lists for use in randomization
         private void BuildLists()
         {
             //build out male lists
             BuildList(male.headAllElements, "Male_Head_All_Elements");
             BuildList(male.headNoElements, "Male_Head_No_Elements");
             BuildList(male.eyebrow, "Male_01_Eyebrows");
             BuildList(male.facialHair, "Male_02_FacialHair");
             BuildList(male.torso, "Male_03_Torso");
             BuildList(male.arm_Upper_Right, "Male_04_Arm_Upper_Right");
             BuildList(male.arm_Upper_Left, "Male_05_Arm_Upper_Left");
             BuildList(male.arm_Lower_Right, "Male_06_Arm_Lower_Right");
             BuildList(male.arm_Lower_Left, "Male_07_Arm_Lower_Left");
             BuildList(male.hand_Right, "Male_08_Hand_Right");
             BuildList(male.hand_Left, "Male_09_Hand_Left");
             BuildList(male.hips, "Male_10_Hips");
             BuildList(male.leg_Right, "Male_11_Leg_Right");
             BuildList(male.leg_Left, "Male_12_Leg_Left");
 
             //build out female lists
             BuildList(female.headAllElements, "Female_Head_All_Elements");
             BuildList(female.headNoElements, "Female_Head_No_Elements");
             BuildList(female.eyebrow, "Female_01_Eyebrows");
             BuildList(female.facialHair, "Female_02_FacialHair");
             BuildList(female.torso, "Female_03_Torso");
             BuildList(female.arm_Upper_Right, "Female_04_Arm_Upper_Right");
             BuildList(female.arm_Upper_Left, "Female_05_Arm_Upper_Left");
             BuildList(female.arm_Lower_Right, "Female_06_Arm_Lower_Right");
             BuildList(female.arm_Lower_Left, "Female_07_Arm_Lower_Left");
             BuildList(female.hand_Right, "Female_08_Hand_Right");
             BuildList(female.hand_Left, "Female_09_Hand_Left");
             BuildList(female.hips, "Female_10_Hips");
             BuildList(female.leg_Right, "Female_11_Leg_Right");
             BuildList(female.leg_Left, "Female_12_Leg_Left");
 
             // build out all gender lists
             BuildList(allGender.all_Hair, "All_01_Hair");
             BuildList(allGender.all_Head_Attachment, "All_02_Head_Attachment");
             BuildList(allGender.headCoverings_Base_Hair, "HeadCoverings_Base_Hair");
             BuildList(allGender.headCoverings_No_FacialHair, "HeadCoverings_No_FacialHair");
             BuildList(allGender.headCoverings_No_Hair, "HeadCoverings_No_Hair");
             BuildList(allGender.chest_Attachment, "All_03_Chest_Attachment");
             BuildList(allGender.back_Attachment, "All_04_Back_Attachment");
             BuildList(allGender.shoulder_Attachment_Right, "All_05_Shoulder_Attachment_Right");
             BuildList(allGender.shoulder_Attachment_Left, "All_06_Shoulder_Attachment_Left");
             BuildList(allGender.elbow_Attachment_Right, "All_07_Elbow_Attachment_Right");
             BuildList(allGender.elbow_Attachment_Left, "All_08_Elbow_Attachment_Left");
             BuildList(allGender.hips_Attachment, "All_09_Hips_Attachment");
             BuildList(allGender.knee_Attachement_Right, "All_10_Knee_Attachement_Right");
             BuildList(allGender.knee_Attachement_Left, "All_11_Knee_Attachement_Left");
             BuildList(allGender.elf_Ear, "Elf_Ear");
         }
 
         // called from the BuildLists method
         void BuildList(List<GameObject> targetList, string characterPart)
         {
             Transform[] rootTransform = gameObject.GetComponentsInChildren<Transform>();
 
             // declare target root transform
             Transform targetRoot = null;
 
             // find character parts parent object in the scene
             foreach (Transform t in rootTransform)
             {
                 if (t.gameObject.name == characterPart)
                 {
                     targetRoot = t;
                     break;
                 }
             }
 
             // clears targeted list of all objects
             targetList.Clear();
 
             // cycle through all child objects of the parent object
             for (int i = 0; i < targetRoot.childCount; i++)
             {
                 // get child gameobject index i
                 GameObject go = targetRoot.GetChild(i).gameObject;
 
                 // disable child object
                 go.SetActive(false);
 
                 // add object to the targeted object list
                 targetList.Add(go);
 
                 // collect the material for the random character, only if null in the inspector;
                 if (!mat)
                 {
                     if (go.GetComponent<SkinnedMeshRenderer>())
                         mat = go.GetComponent<SkinnedMeshRenderer>().material;
                 }
             }
         }
     }
 
     // classe for keeping the lists organized, allows for simple switching from male/female objects
     [System.Serializable]
     public class CharacterObjectGroups
     {
         public List<GameObject> headAllElements;
         public List<GameObject> headNoElements;
         public List<GameObject> eyebrow;
         public List<GameObject> facialHair;
         public List<GameObject> torso;
         public List<GameObject> arm_Upper_Right;
         public List<GameObject> arm_Upper_Left;
         public List<GameObject> arm_Lower_Right;
         public List<GameObject> arm_Lower_Left;
         public List<GameObject> hand_Right;
         public List<GameObject> hand_Left;
         public List<GameObject> hips;
         public List<GameObject> leg_Right;
         public List<GameObject> leg_Left;
     }
 
     // classe for keeping the lists organized, allows for organization of the all gender items
     [System.Serializable]
     public class CharacterObjectListsAllGender
     {
         public List<GameObject> headCoverings_Base_Hair;
         public List<GameObject> headCoverings_No_FacialHair;
         public List<GameObject> headCoverings_No_Hair;
         public List<GameObject> all_Hair;
         public List<GameObject> all_Head_Attachment;
         public List<GameObject> chest_Attachment;
         public List<GameObject> back_Attachment;
         public List<GameObject> shoulder_Attachment_Right;
         public List<GameObject> shoulder_Attachment_Left;
         public List<GameObject> elbow_Attachment_Right;
         public List<GameObject> elbow_Attachment_Left;
         public List<GameObject> hips_Attachment;
         public List<GameObject> knee_Attachement_Right;
         public List<GameObject> knee_Attachement_Left;
         public List<GameObject> all_12_Extra;
         public List<GameObject> elf_Ear;
     }
 }

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
â–¼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

246 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How can i add all the prefabs in the assets directory and sub directories to List or Array ? 0 Answers

time.deltaTime timer increasing faster and faster 1 Answer

Is it possible to set one particle system equal to another through script? 0 Answers

Unity Scripts is disabled 1 Answer

problems with ReplacePrefab script 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges