private void Start() { var foodPreference = Random.Range(0, 100); if (foodPreference >= 0 && foodPreference < 30) { TypeOfCreature = "Carnivorous"; } if (foodPreference >= 30 && foodPreference <= 100) { TypeOfCreature = "Herbiverous"; } _t = transform; // default transform of creature (parent) //name = "creature" + gameObject.GetInstanceID(); // name of creature (planning on randomising this) _t.gameObject.layer = LayerMask.NameToLayer("Creature"); _environment = EnvironmentController.GetInstance(); _settingsReader = SettingsReader.GetInstance(); // everything from here is to do with the transforms of the creature and its limbs _maxRootScale = new Vector3 { x = _settingsReader.RootMaxRootScaleX, y = _settingsReader.RootMaxRootScaleY, z = _settingsReader.RootMaxRootScaleZ }; _minRootScale = new Vector3 { x = _settingsReader.RootMinRootScaleX, y = _settingsReader.RootMinRootScaleY, z = _settingsReader.RootMinRootScaleZ }; _jointFrequency = ChromosomeComposition.JointFrequency; _jointAmplitude = ChromosomeComposition.JointAmplitude; _jointPhase = ChromosomeComposition.JointPhase; RootSetup(); EyeSetup(); MouthSetup(); GenitalSetup(); VariableSetup(); InvokeRepeating("UpdateState", 0, 5f); // update state every 5 seconds InvokeRepeating("RandomDirection", 1F, 5F); // update direction every 5 seconds Root.GetComponent <Rigidbody>().SetDensity(4F); Root.AddComponent <AudioSource>(); _ms = GetComponentsInChildren <MeshRenderer>(); ChromosomeComposition.SetTypeOfCreature(TypeOfCreature); // setup a name name = NameCreator.Name(ChromosomeComposition); NameSetup(); }