public BetterColor(BetterColor copyColor) { R = copyColor.R; G = copyColor.G; B = copyColor.B; A = copyColor.A; RGBtoHSV(); }
public void Clone(GameObject parent, bool copyColor) { network = new NeuralNetwork(parent.GetComponent <CarController>().GetNetwork()); if (copyColor) { color = parent.GetComponent <CarController>().GetColor(); } }
// Update is called once per frame private void Update() { if (finished) { if (speed.Count() > 0) { avgSpeed = 0f; speed = speed.OrderByDescending(e => e).ToList(); topSpeed = speed[0]; foreach (float item in speed) { avgSpeed += item; } avgSpeed /= (float)speed.Count(); speed = new List <float>(); } } else { speed.Add(currentSpeed); // speed in mph } BetterColor value = new BetterColor(color.GetColor()); //Color value = color.GetColor(); if (died) { value.V = 0.25f; } if (hitGoal) { value.S = 0.25f; } if (finished) { value.A = 0.5f; } else { value.A = 1f; } value.HSVtoRGB(); GetComponent <Renderer>().material.SetColor("_Color", value.GetColor()); }
public void Mutate(GameObject parent) { network = new NeuralNetwork(parent.GetComponent <CarController>().GetNetwork()); network.Mutate(); color = parent.GetComponent <CarController>().GetColor(); color.MutateColor(); color.ModifyColor(); color.V = 1f; }
public void MixColors(BetterColor color1, BetterColor color2) { float difference = Mathf.Abs(color1.H - color2.H); H = (color1.H + color2.H) / 2f; if (difference > 0.5f) { H += 0.5f; } WrapHue(); HSVtoRGB(); }
private void Awake() { //color = new Vector3(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f)); //renderer.material.set speed = new List <float>(); color = new BetterColor(); if (!File.Exists(Application.dataPath + "/carSettings.xml")) // check if file exists { CarSettings carSettings = new CarSettings { brakeForce = this.brakeForce, drag = this.drag, maxVelocity = this.maximumVelocity, steeringAngle = this.steeringAngle, throttleForce = this.throttleForce }; //XmlSerializer xmls = new XmlSerializer(typeof(CarSettings)); //FileStream file = new FileStream(Application.dataPath + "/carSettings.xml", FileMode.Create); //xmls.Serialize(file, carSettings); //file.Close(); XMLManager.SaveData(carSettings, Application.dataPath + "/carSettings.xml"); } else // load modded file { XMLManager.LoadData(out CarSettings carSettings, Application.dataPath + "/carSettings.xml"); brakeForce = carSettings.brakeForce; drag = carSettings.drag; maximumVelocity = carSettings.maxVelocity; steeringAngle = carSettings.steeringAngle; throttleForce = carSettings.throttleForce; } if (!legacyControls) { GetComponent <Rigidbody>().centerOfMass = new Vector3(0f, -0.5f, -0.2f); GetComponent <Rigidbody>().drag = drag; } }