{%youtube PTzcTlP3nTo %} 藍方的Agent會想去碰撞球,但紅方較不會 ``` 打進紅方區域,藍方利益增加 打進藍方區域,紅方利益增加 打進紅方/藍方得分區域,雙方利益結算 ``` 更改訓練中 ``` 打進紅方區域,藍方利益增加 打進藍方區域,紅方利益增加 打進紅方/藍方得分區域,利益進行加減並結算 ``` {%youtube A4_yQju0QBs %} {%youtube nj0rhDwlMoQ %} ``` public override void CollectObservations(VectorSensor sensor) { checkRayCast(input);//射線觀察 Target和Agent的方向向量; Agent的位子動量; } ``` ``` private void checkRayCast(RayPerceptionInput input) { for (每條射線) { if (射線是否有碰撞物體) { if (碰撞物體的名稱為Target && 距離小於5.0f) { 增加利益 AddReward(0.25f); 並向目標移動 } if (碰撞物體的名稱為Wall && 距離小於2.0f) { 減少利益 AddReward(-0.05f); } } } } ``` ``` Agent行動 { 當碰到Target增加利益並結算 AddReward(1.0f); EndEpisode(); } ```