/// <summary> /// Tweak the wheel values in function of the genome received /// </summary> /// <param name="wheel"></param> /// <param name="genome"></param> /// <param name="scaleID"></param> /// <param name="isMotorID"></param> /// <param name="speedID"></param> private void TuneWheel(GameObject wheel, Genome genome, FGenID scaleID, BGenID isMotorID, FGenID speedID) { SpriteRenderer spriteRenderer = wheel.GetComponent <SpriteRenderer>(); Transform wheelTr = wheel.transform; WheelJoint2D wheelJoint = wheel.GetComponent <WheelJoint2D>(); if (genome.ExistsGen(scaleID)) { wheelTr.localScale *= genome.GetGen(scaleID).Value(); } if (genome.ExistsGen(isMotorID)) { if (genome.GetGen(isMotorID).Value()) // If is motor { spriteRenderer.color = Color.green; if (genome.ExistsGen(speedID)) { JointMotor2D wheelJointMotor = wheelJoint.motor; wheelJointMotor.motorSpeed = genome.GetGen(speedID).Value(); } } else // If is not motor { spriteRenderer.color = Color.red; wheelJoint.useMotor = false; } } }
/// <summary> /// Check if exists a gen of type boolean with input key /// </summary> /// <param name="ID"></param> /// <returns></returns> public bool ExistsGen(BGenID ID) { return(m_bGenes.ContainsKey(ID)); }
/// <summary> /// Get an bGen by key /// </summary> /// <param name="genType"></param> /// <returns></returns> public BGen GetGen(BGenID genType) { return(m_bGenes[genType]); }
/// <summary> /// Create a gen of type boolean with the input paramaters /// </summary> /// <param name="genID"></param> /// <param name="genValue"></param> /// <param name="genMinValue"></param> /// <param name="genMaxValue"></param> public void AddGen(BGenID genID, bool genValue, bool genMinValue, bool genMaxValue) { AddGen(new BGen(genID, genValue, genMinValue, genMaxValue)); }