Пример #1
0
 public RaycastSensorGenome(RaycastSensorGenome template)
 {
     this.parentID       = template.parentID;
     this.inno           = template.inno;
     this.sensorPosition = template.sensorPosition;
     this.maxDistance    = template.maxDistance;
 }
Пример #2
0
    public void Initialize(RaycastSensorGenome genome, Agent agent)
    {
        parentID  = genome.parentID;
        inno      = genome.inno;
        isVisible = agent.isVisible;

        distanceLeft        = new float[1];
        distanceLeftCenter  = new float[1];
        distanceCenter      = new float[1];
        distanceRightCenter = new float[1];
        distanceRight       = new float[1];
        distanceBack        = new float[1];
        distanceCenterShort = new float[1];

        parentObject   = agent.segmentList[parentID];
        sensorPosition = genome.sensorPosition;
        maxDistance    = genome.maxDistance;
    }
Пример #3
0
    public void CopyBodyGenomeFromTemplate(BodyGenome templateGenome)
    {
        // This method creates a clone of the provided BodyGenome - should have no shared references!!!

        bodyType = templateGenome.bodyType;
        // copy module lists:
        atmosphereSensorList = new List <AtmosphereSensorGenome>();
        for (int i = 0; i < templateGenome.atmosphereSensorList.Count; i++)
        {
            AtmosphereSensorGenome genomeCopy = new AtmosphereSensorGenome(templateGenome.atmosphereSensorList[i]);
            atmosphereSensorList.Add(genomeCopy);
        }
        basicJointList = new List <BasicJointGenome>();
        for (int i = 0; i < templateGenome.basicJointList.Count; i++)
        {
            BasicJointGenome genomeCopy = new BasicJointGenome(templateGenome.basicJointList[i]);
            basicJointList.Add(genomeCopy);
        }
        basicWheelList = new List <BasicWheelGenome>();
        for (int i = 0; i < templateGenome.basicWheelList.Count; i++)
        {
            BasicWheelGenome genomeCopy = new BasicWheelGenome(templateGenome.basicWheelList[i]);
            basicWheelList.Add(genomeCopy);
        }
        contactSensorList = new List <ContactGenome>();
        for (int i = 0; i < templateGenome.contactSensorList.Count; i++)
        {
            ContactGenome genomeCopy = new ContactGenome(templateGenome.contactSensorList[i]);
            contactSensorList.Add(genomeCopy);
        }
        gravitySensorList = new List <GravitySensorGenome>();
        for (int i = 0; i < templateGenome.gravitySensorList.Count; i++)
        {
            GravitySensorGenome genomeCopy = new GravitySensorGenome(templateGenome.gravitySensorList[i]);
            gravitySensorList.Add(genomeCopy);
        }
        healthModuleList = new List <HealthGenome>();
        for (int i = 0; i < templateGenome.healthModuleList.Count; i++)
        {
            HealthGenome genomeCopy = new HealthGenome(templateGenome.healthModuleList[i]);
            healthModuleList.Add(genomeCopy);
        }
        oscillatorInputList = new List <OscillatorGenome>();
        for (int i = 0; i < templateGenome.oscillatorInputList.Count; i++)
        {
            OscillatorGenome genomeCopy = new OscillatorGenome(templateGenome.oscillatorInputList[i]);
            oscillatorInputList.Add(genomeCopy);
        }
        raycastSensorList = new List <RaycastSensorGenome>();
        for (int i = 0; i < templateGenome.raycastSensorList.Count; i++)
        {
            RaycastSensorGenome genomeCopy = new RaycastSensorGenome(templateGenome.raycastSensorList[i]);
            raycastSensorList.Add(genomeCopy);
        }
        shieldList = new List <ShieldGenome>();
        for (int i = 0; i < templateGenome.shieldList.Count; i++)
        {
            ShieldGenome genomeCopy = new ShieldGenome(templateGenome.shieldList[i]);
            shieldList.Add(genomeCopy);
        }
        targetSensorList = new List <TargetSensorGenome>();
        for (int i = 0; i < templateGenome.targetSensorList.Count; i++)
        {
            TargetSensorGenome genomeCopy = new TargetSensorGenome(templateGenome.targetSensorList[i]);
            targetSensorList.Add(genomeCopy);
        }
        thrusterList = new List <ThrusterGenome>();
        for (int i = 0; i < templateGenome.thrusterList.Count; i++)
        {
            ThrusterGenome genomeCopy = new ThrusterGenome(templateGenome.thrusterList[i]);
            thrusterList.Add(genomeCopy);
        }
        torqueList = new List <TorqueGenome>();
        for (int i = 0; i < templateGenome.torqueList.Count; i++)
        {
            TorqueGenome genomeCopy = new TorqueGenome(templateGenome.torqueList[i]);
            torqueList.Add(genomeCopy);
        }
        trajectorySensorList = new List <TrajectorySensorGenome>();
        for (int i = 0; i < templateGenome.trajectorySensorList.Count; i++)
        {
            TrajectorySensorGenome genomeCopy = new TrajectorySensorGenome(templateGenome.trajectorySensorList[i]);
            trajectorySensorList.Add(genomeCopy);
        }
        valueInputList = new List <ValueInputGenome>();
        for (int i = 0; i < templateGenome.valueInputList.Count; i++)
        {
            ValueInputGenome genomeCopy = new ValueInputGenome(templateGenome.valueInputList[i]);
            valueInputList.Add(genomeCopy);
        }
        weaponProjectileList = new List <WeaponProjectileGenome>();
        for (int i = 0; i < templateGenome.weaponProjectileList.Count; i++)
        {
            WeaponProjectileGenome genomeCopy = new WeaponProjectileGenome(templateGenome.weaponProjectileList[i]);
            weaponProjectileList.Add(genomeCopy);
        }
        weaponTazerList = new List <WeaponTazerGenome>();
        for (int i = 0; i < templateGenome.weaponTazerList.Count; i++)
        {
            WeaponTazerGenome genomeCopy = new WeaponTazerGenome(templateGenome.weaponTazerList[i]);
            weaponTazerList.Add(genomeCopy);
        }
    }