您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
45 行
1.3 KiB
45 行
1.3 KiB
using UnityEngine;
|
|
using Unity.MLAgentsExamples;
|
|
|
|
public class FoodCollectorArea : Area
|
|
{
|
|
public GameObject food;
|
|
public GameObject badFood;
|
|
public int numFood;
|
|
public int numBadFood;
|
|
public bool respawnFood;
|
|
public float range;
|
|
|
|
void CreateFood(int num, GameObject type)
|
|
{
|
|
for (int i = 0; i < num; i++)
|
|
{
|
|
GameObject f = Instantiate(type, new Vector3(Random.Range(-range, range), 1f,
|
|
Random.Range(-range, range)) + transform.position,
|
|
Quaternion.Euler(new Vector3(0f, Random.Range(0f, 360f), 90f)));
|
|
f.GetComponent<FoodLogic>().respawn = respawnFood;
|
|
f.GetComponent<FoodLogic>().myArea = this;
|
|
}
|
|
}
|
|
|
|
public void ResetFoodArea(GameObject[] agents)
|
|
{
|
|
foreach (GameObject agent in agents)
|
|
{
|
|
if (agent.transform.parent == gameObject.transform)
|
|
{
|
|
agent.transform.position = new Vector3(Random.Range(-range, range), 2f,
|
|
Random.Range(-range, range))
|
|
+ transform.position;
|
|
agent.transform.rotation = Quaternion.Euler(new Vector3(0f, Random.Range(0, 360)));
|
|
}
|
|
}
|
|
|
|
CreateFood(numFood, food);
|
|
CreateFood(numBadFood, badFood);
|
|
}
|
|
|
|
public override void ResetArea()
|
|
{
|
|
}
|
|
}
|