浏览代码

Merge branch 'development' into dev-logfile

/tag-0.2.0
vincentpierre 7 年前
当前提交
db3cb9df
共有 51 个文件被更改,包括 2562 次插入914 次删除
  1. 1
      .gitignore
  2. 6
      docs/Example-Environments.md
  3. 35
      python/ppo.py
  4. 2
      python/ppo/models.py
  5. 15
      python/ppo/trainer.py
  6. 114
      python/test_unityagents.py
  7. 10
      python/unityagents/curriculum.py
  8. 113
      python/unityagents/environment.py
  9. 29
      unity-environment/Assets/ML-Agents/Examples/3DBall/Prefabs/Game.prefab
  10. 165
      unity-environment/Assets/ML-Agents/Examples/3DBall/Scene.unity
  11. 101
      unity-environment/Assets/ML-Agents/Examples/Area/Prefabs/PushArea.prefab
  12. 109
      unity-environment/Assets/ML-Agents/Examples/Area/Prefabs/WallArea.prefab
  13. 852
      unity-environment/Assets/ML-Agents/Examples/Area/Push.unity
  14. 75
      unity-environment/Assets/ML-Agents/Examples/Area/Scripts/AreaAgent.cs
  15. 37
      unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Push/PushAgent.cs
  16. 2
      unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Push/PushArea.cs
  17. 38
      unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Wall/WallAgent.cs
  18. 748
      unity-environment/Assets/ML-Agents/Examples/Area/Wall.unity
  19. 1
      unity-environment/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs
  20. 1
      unity-environment/Assets/ML-Agents/Examples/Reacher/Scripts/FlyCamera.cs
  21. 4
      unity-environment/Assets/ML-Agents/Scripts/Academy.cs
  22. 22
      unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab
  23. 4
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs
  24. 4
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs
  25. 11
      python/curricula/wall.json
  26. 914
      unity-environment/Assets/ML-Agents/Examples/Crawler/Crawler.unity
  27. 21
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CameraFollow.cs
  28. 23
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAcademy.cs
  29. 19
      unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerBodyContact.cs
  30. 0
      /images/crawler.png
  31. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler.meta
  32. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources.meta
  33. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources
  34. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab.meta
  35. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab
  36. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts.meta
  37. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels.meta
  38. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels
  39. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/crawler.bytes.meta
  40. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/crawler.bytes
  41. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Crawler.unity.meta
  42. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CameraFollow.cs.meta
  43. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAcademy.cs.meta
  44. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs.meta
  45. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerBodyContact.cs.meta
  46. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs
  47. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs.meta
  48. 0
      /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs

1
.gitignore


/unity-environment/[Bb]uild/
/unity-environment/[Bb]uilds/
/unity-environment/[Pp]ackages/
/unity-environment/[Uu]nity[Pp]ackage[Mm]anager/
/unity-environment/Assets/AssetStoreTools*
# Tensorflow Model Info

6
docs/Example-Environments.md


* Observations: None
* Reset Parameters: One, corresponding to goal size.
## Spider
## Crawler
![Spider](../images/spider.png)
![Crawler](../images/crawler.png)
* Set-up: A spider with 4 arms and 4 forearms.
* Set-up: A creature with 4 arms and 4 forearms.
* Goal: The agents must move its body along the x axis without falling.
* Agents: The environment contains 3 agent linked to a single brain.
* Agent Reward Function (independent):

35
python/ppo.py


Options:
--help Show this message.
--curriculum=<file> Curriculum json file for environment [default: None]
--batch-size=<n> How many experiences per gradient descent update step [default: 64].
--beta=<n> Strength of entropy regularization [default: 2e-3].
--buffer-size=<n> How large the experience buffer should be before gradient descent [default: 2048].
--curriculum=<file> Curriculum json file for environment [default: None].
--epsilon=<n> Acceptable threshold around ratio of old and new policy probabilities [default: 0.2].
--gamma=<n> Reward discount rate [default: 0.995].
--hidden-units=<n> Number of units in hidden layer [default: 64].
--keep-checkpoints=<n> How many model checkpoints to keep [default: 5].
--lambd=<n> Lambda parameter for GAE [default: 0.95].
--learning-rate=<rate> Model learning rate [default: 3e-4].
--load Whether to load the model or randomly initialize [default: False].
--num-epoch=<n> Number of gradient descent steps per batch of experiences [default: 5].
--load Whether to load the model or randomly initialize [default: False].
--train Whether to train model, or only run inference [default: False].
--summary-freq=<n> Frequency at which to save training statistics [default: 10000].
--gamma=<n> Reward discount rate [default: 0.995].
--lambd=<n> Lambda parameter for GAE [default: 0.95].
--summary-freq=<n> Frequency at which to save training statistics [default: 10000].
--beta=<n> Strength of entropy regularization [default: 1e-3].
--num-epoch=<n> Number of gradient descent steps per batch of experiences [default: 5].
--epsilon=<n> Acceptable threshold around ratio of old and new policy probabilities [default: 0.2].
--buffer-size=<n> How large the experience buffer should be before gradient descent [default: 2048].
--learning-rate=<rate> Model learning rate [default: 3e-4].
--hidden-units=<n> Number of units in hidden layer [default: 64].
--batch-size=<n> How many experiences per gradient descent update step [default: 64].
--keep-checkpoints=<n> How many model checkpoints to keep [default: 5].
--worker-id=<n> Number to add to communication port (5005). Used for asynchronous agent scenarios [default: 0].
--train Whether to train model, or only run inference [default: False].
--worker-id=<n> Number to add to communication port (5005). Used for multi-environment [default: 0].
'''
options = docopt(_USAGE)

if steps != 0 and train_model:
save_model(sess, model_path=model_path, steps=steps, saver=saver)
env.close()
export_graph(model_path, env_name)
graph_name = (env_name.strip()
.replace('.app', '').replace('.exe', '').replace('.x86_64', '').replace('.x86', ''))
graph_name = os.path.basename(os.path.normpath(graph_name))
export_graph(model_path, graph_name)

2
python/ppo/models.py


class PPOModel(object):
def create_global_steps(self):
"""Creates TF ops to track and increment global training step."""
"""Creates TF ops to track and increment recent average cumulative reward."""
self.last_reward = tf.Variable(0, name="last_reward", trainable=False, dtype=tf.float32)
self.new_reward = tf.placeholder(shape=[], dtype=tf.float32, name='new_reward')
self.update_reward = tf.assign(self.last_reward, self.new_reward)

15
python/ppo/trainer.py


class Trainer(object):
def __init__(self, ppo_model, sess, info, is_continuous, use_observations, use_states, training):
"""
Responsible for collecting experinces and training PPO model.
Responsible for collecting experiences and training PPO model.
:param ppo_model: Tensorflow graph defining model.
:param sess: Tensorflow session.
:param info: Environment BrainInfo object.

self.use_states = use_states
def running_average(self, data, steps, running_mean, running_variance):
"""
Computes new running mean and variances.
:param data: New piece of data.
:param steps: Total number of data so far.
:param running_mean: TF op corresponding to stored running mean.
:param running_variance: TF op corresponding to stored running variance.
:return: New mean and variance values.
"""
mean, var = self.sess.run([running_mean, running_variance])
current_x = np.mean(data, axis=0)
new_mean = mean + (current_x - mean) / (steps + 1)

history['episode_steps'] = 0
def reset_buffers(self, brain_info=None, total=False):
"""
Resets either all training buffers or local training buffers
:param brain_info: The BrainInfo object containing agent ids.
:param total: Whether to completely clear buffer.
"""
self.training_buffer = vectorize_history(empty_local_history({}))
if not total:
for key in self.history_dict:

114
python/test_unityagents.py


def test_initialialization():
with mock.patch('subprocess.Popen') as mock_subproc_popen:
with mock.patch('socket.socket') as mock_socket:
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
with pytest.raises(UnityActionException):
env.step([0])
assert env.brain_names[0] == 'RealFakeBrain'
env.close()
with mock.patch('glob.glob') as mock_glob:
mock_glob.return_value = ['FakeLaunchPath']
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
with pytest.raises(UnityActionException):
env.step([0])
assert env.brain_names[0] == 'RealFakeBrain'
env.close()
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
brain = env.brains['RealFakeBrain']
mock_socket.recv.side_effect = dummy_reset
brain_info = env.reset()
env.close()
assert not env.global_done
assert isinstance(brain_info, dict)
assert isinstance(brain_info['RealFakeBrain'], BrainInfo)
assert isinstance(brain_info['RealFakeBrain'].observations, list)
assert isinstance(brain_info['RealFakeBrain'].states, np.ndarray)
assert len(brain_info['RealFakeBrain'].observations) == brain.number_observations
assert brain_info['RealFakeBrain'].states.shape[0] == len(brain_info['RealFakeBrain'].agents)
assert brain_info['RealFakeBrain'].states.shape[1] == brain.state_space_size
with mock.patch('glob.glob') as mock_glob:
mock_glob.return_value = ['FakeLaunchPath']
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
brain = env.brains['RealFakeBrain']
mock_socket.recv.side_effect = dummy_reset
brain_info = env.reset()
env.close()
assert not env.global_done
assert isinstance(brain_info, dict)
assert isinstance(brain_info['RealFakeBrain'], BrainInfo)
assert isinstance(brain_info['RealFakeBrain'].observations, list)
assert isinstance(brain_info['RealFakeBrain'].states, np.ndarray)
assert len(brain_info['RealFakeBrain'].observations) == brain.number_observations
assert brain_info['RealFakeBrain'].states.shape[0] == len(brain_info['RealFakeBrain'].agents)
assert brain_info['RealFakeBrain'].states.shape[1] == brain.state_space_size
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
brain = env.brains['RealFakeBrain']
mock_socket.recv.side_effect = dummy_reset
brain_info = env.reset()
mock_socket.recv.side_effect = dummy_step
brain_info = env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
with pytest.raises(UnityActionException):
env.step([0])
brain_info = env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
with pytest.raises(UnityActionException):
env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
env.close()
assert env.global_done
assert isinstance(brain_info, dict)
assert isinstance(brain_info['RealFakeBrain'], BrainInfo)
assert isinstance(brain_info['RealFakeBrain'].observations, list)
assert isinstance(brain_info['RealFakeBrain'].states, np.ndarray)
assert len(brain_info['RealFakeBrain'].observations) == brain.number_observations
assert brain_info['RealFakeBrain'].states.shape[0] == len(brain_info['RealFakeBrain'].agents)
assert brain_info['RealFakeBrain'].states.shape[1] == brain.state_space_size
assert not brain_info['RealFakeBrain'].local_done[0]
assert brain_info['RealFakeBrain'].local_done[2]
with mock.patch('glob.glob') as mock_glob:
mock_glob.return_value = ['FakeLaunchPath']
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
brain = env.brains['RealFakeBrain']
mock_socket.recv.side_effect = dummy_reset
brain_info = env.reset()
mock_socket.recv.side_effect = dummy_step
brain_info = env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
with pytest.raises(UnityActionException):
env.step([0])
brain_info = env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
with pytest.raises(UnityActionException):
env.step([0] * brain.action_space_size * len(brain_info['RealFakeBrain'].agents))
env.close()
assert env.global_done
assert isinstance(brain_info, dict)
assert isinstance(brain_info['RealFakeBrain'], BrainInfo)
assert isinstance(brain_info['RealFakeBrain'].observations, list)
assert isinstance(brain_info['RealFakeBrain'].states, np.ndarray)
assert len(brain_info['RealFakeBrain'].observations) == brain.number_observations
assert brain_info['RealFakeBrain'].states.shape[0] == len(brain_info['RealFakeBrain'].agents)
assert brain_info['RealFakeBrain'].states.shape[1] == brain.state_space_size
assert not brain_info['RealFakeBrain'].local_done[0]
assert brain_info['RealFakeBrain'].local_done[2]

with mock.patch('socket.socket') as mock_socket:
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
assert env._loaded
env.close()
assert not env._loaded
mock_socket.close.assert_called_once()
with mock.patch('glob.glob') as mock_glob:
mock_glob.return_value = ['FakeLaunchPath']
mock_socket.return_value.accept.return_value = (mock_socket, 0)
mock_socket.recv.return_value.decode.return_value = dummy_start
env = UnityEnvironment(' ')
assert env._loaded
env.close()
assert not env._loaded
mock_socket.close.assert_called_once()

10
python/unityagents/curriculum.py


class Curriculum(object):
def __init__(self, location, default_reset_parameters):
"""
Initializes a Curriculum object.
:param location: Path to JSON defining curriculum.
:param default_reset_parameters: Set of reset parameters for environment.
"""
self.lesson_number = 0
self.lesson_length = 0
self.measure_type = None

self.lesson_number = max(0, min(value, self.max_lesson_number))
def get_lesson(self, progress):
"""
Returns reset parameters which correspond to current lesson.
:param progress: Measure of progress (either reward or percentage steps completed).
:return: Dictionary containing reset parameters.
"""
if self.data is None or progress is None:
return {}
if self.data["signal_smoothing"]:

113
python/unityagents/environment.py


class UnityEnvironment(object):
def __init__(self, file_name, worker_id=0,
base_port=5005, curriculum = None):
base_port=5005, curriculum=None):
"""
Starts a new unity environment and establishes a connection with the environment.
Notice: Currently communication between Unity and Python takes place over an open socket without authentication.

"or use a different worker number.".format(str(worker_id)))
cwd = os.getcwd()
try:
true_filename = os.path.basename(os.path.normpath(file_name))
launch_string = ""
if platform == "linux" or platform == "linux2":
candidates = glob.glob(os.path.join(cwd, file_name) + '.x86_64')
if len(candidates) == 0:
candidates = glob.glob(os.path.join(cwd, file_name) + '.x86')
if len(candidates) > 0:
launch_string = candidates[0]
else:
raise UnityEnvironmentException("Couldn't launch new environment. Provided filename "
"does not match any environments in {}. ".format(cwd))
elif platform == 'darwin':
launch_string = os.path.join(cwd, file_name + '.app', 'Contents', 'MacOS', true_filename)
elif platform == 'win32':
launch_string = os.path.join(cwd, file_name + '.exe')
file_name = (file_name.strip()
.replace('.app', '').replace('.exe', '').replace('.x86_64', '').replace('.x86', ''))
true_filename = os.path.basename(os.path.normpath(file_name))
launch_string = None
if platform == "linux" or platform == "linux2":
candidates = glob.glob(os.path.join(cwd, file_name) + '.x86_64')
if len(candidates) == 0:
candidates = glob.glob(os.path.join(cwd, file_name) + '.x86')
if len(candidates) == 0:
candidates = glob.glob(file_name + '.x86_64')
if len(candidates) == 0:
candidates = glob.glob(file_name + '.x86')
if len(candidates) > 0:
launch_string = candidates[0]
elif platform == 'darwin':
candidates = glob.glob(os.path.join(cwd, file_name + '.app', 'Contents', 'MacOS', true_filename))
if len(candidates) == 0:
candidates = glob.glob(os.path.join(file_name + '.app', 'Contents', 'MacOS', true_filename))
if len(candidates) > 0:
launch_string = candidates[0]
elif platform == 'win32':
candidates = glob.glob(os.path.join(cwd, file_name + '.exe'))
if len(candidates) == 0:
candidates = glob.glob(file_name + '.exe')
if len(candidates) > 0:
launch_string = candidates[0]
if launch_string is None:
self.close()
raise UnityEnvironmentException("Couldn't launch the {0} environment. "
"Provided filename does not match any environments."
.format(true_filename))
else:
except os.error:
self.close()
raise UnityEnvironmentException("Couldn't launch new environment. "
"Provided filename does not match any \environments in {}."
.format(cwd))
self._socket.settimeout(30)
self._socket.settimeout(30)
try:
try:
self._socket.listen(1)

p = json.loads(p)
except socket.timeout as e:
raise UnityEnvironmentException(
"The Unity environment took too long to respond. Make sure {} does not need user interaction to launch "
"and that the Academy and the external Brain(s) are attached to objects in the Scene.".format(
str(file_name)))
"The Unity environment took too long to respond. Make sure {} does not need user interaction to "
"launch and that the Academy and the external Brain(s) are attached to objects in the Scene."
.format(str(file_name)))
if "apiNumber" not in p:
self._unity_api = "API-1"
else:

"The API number is not compatible between Unity and python. Python API : {0}, Unity API : "
"{1}.".format(self._python_api, self._unity_api))
"{1}.\nPlease go to https://github.com/Unity-Technologies/ml-agents to download the latest version "
"of ML-Agents.".format(self._python_api, self._unity_api))
self._data = {}
self._global_done = None

logger.info("\n'{}' started successfully!".format(self._academy_name))
if (self._num_external_brains == 0):
logger.warning(" No External Brains found in the Unity Environment. "
"You will not be able to pass actions to your agent(s).")
"You will not be able to pass actions to your agent(s).")
except UnityEnvironmentException:
proc1.kill()
self.close()

"\n\t\t".join([str(k) + " -> " + str(self._resetParameters[k])
for k in self._resetParameters])) + '\n' + \
'\n'.join([str(self._brains[b]) for b in self._brains])
def _recv_bytes(self):
s = self._conn.recv(self._buffer_size)

config = self._curriculum.get_lesson(progress) if config is None else config
if old_lesson != self._curriculum.get_lesson_number():
logger.info("\nLesson changed. Now in Lesson {0} : \t{1}"
.format(self._curriculum.get_lesson_number(),
', '.join([str(x)+' -> '+str(config[x]) for x in config])))
.format(self._curriculum.get_lesson_number(),
', '.join([str(x) + ' -> ' + str(config[x]) for x in config])))
.format(self._curriculum.get_lesson_number(),
', '.join([str(x)+' -> '+str(config[x]) for x in config])))
.format(self._curriculum.get_lesson_number(),
', '.join([str(x) + ' -> ' + str(config[x]) for x in config])))
if self._loaded:
self._conn.send(b"RESET")
self._conn.recv(self._buffer_size)

raise UnityActionException("Brain {0} has an invalid state. "
"Expecting {1} {2} state but received {3}."
.format(b, n_agent if self._brains[b].state_space_type == "discrete"
else str(self._brains[b].state_space_size * n_agent),
self._brains[b].state_space_type,
len(state_dict["states"])))
else str(self._brains[b].state_space_size * n_agent),
self._brains[b].state_space_type,
len(state_dict["states"])))
if n_agent > 0 :
actions = np.array(state_dict["actions"]).reshape((n_agent, -1))
else :
if n_agent > 0:
actions = np.array(state_dict["actions"]).reshape((n_agent, -1))
else:
actions = np.array([])
observations = []

arr = [float(x) for x in arr]
return arr
def step(self, action = None, memory=None, value=None):
def step(self, action=None, memory=None, value=None):
"""
Provides the environment with an action, moves the environment dynamics forward accordingly, and returns
observation, state, and reward information to the agent.

"and actions as values".format(self._num_brains))
else:
raise UnityActionException(
"There are no external brains in the environment, "
"There are no external brains in the environment, "
if isinstance(memory, (int, np.int_, float, np.float_, list, np.ndarray)):
if self._num_external_brains == 1:
memory = {self._external_brain_names[0]: memory}

"and memories as values".format(self._num_brains))
else:
raise UnityActionException(
"There are no external brains in the environment, "
"There are no external brains in the environment, "
elif self._num_external_brains > 1:
elif self._num_external_brains > 1:
"There are no external brains in the environment, "
"There are no external brains in the environment, "
"step cannot take a value input")
for brain_name in list(action.keys()) + list(memory.keys()) + list(value.keys()):

"in the environment". format(brain_name))
"in the environment".format(brain_name))
for b in self._external_brain_names:
n_agent = len(self._data[b].agents)

raise UnityActionException(
"There was a mismatch between the provided memory and environment's expectation: "
"The brain {0} expected {1} memories but was given {2}"
.format(b, self._brains[b].memory_space_size * n_agent, len(memory[b])))
.format(b, self._brains[b].memory_space_size * n_agent, len(memory[b])))
if not ((self._brains[b].action_space_type == "discrete" and len(action[b]) == n_agent) or
(self._brains[b].action_space_type == "continuous" and len(
action[b]) == self._brains[b].action_space_size * n_agent)):

.format(b, n_agent if self._brains[b].action_space_type == "discrete" else
.format(b, n_agent if self._brains[b].action_space_type == "discrete" else
str(action[b])))
str(action[b])))
self._conn.send(b"STEP")
self._send_action(action, memory, value)
return self._get_state()

self._socket.close()
self._loaded = False
else:
raise UnityEnvironmentException("No Unity environment is loaded.")
raise UnityEnvironmentException("No Unity environment is loaded.")

29
unity-environment/Assets/ML-Agents/Examples/3DBall/Prefabs/Game.prefab


- component: {fileID: 65551894134645910}
- component: {fileID: 23487775825466554}
- component: {fileID: 114980646877373948}
- component: {fileID: 114290313258162170}
m_Layer: 0
m_Name: Platform
m_TagString: Untagged

m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &114290313258162170
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1914042422505674}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e040eaa8759024abbbb14994dc4c55ee, type: 3}
m_Name:
m_EditorClassIdentifier:
fixedPosition: 1
verticalOffset: 10
DisplayBrainName: 1
DisplayBrainType: 1
DisplayFrameCount: 1
DisplayCurrentReward: 0
DisplayMaxReward: 1
DisplayState: 0
DisplayAction: 0
--- !u!114 &114980646877373948
MonoBehaviour:
m_ObjectHideFlags: 1

reward: 0
done: 0
value: 0
CummulativeReward: 0
CumulativeReward: 0
stepCounter: 0
agentStoredAction: []
memory: []

165
unity-environment/Assets/ML-Agents/Examples/3DBall/Scene.unity


m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFiltering: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 0
--- !u!196 &4

manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
--- !u!114 &83032124
--- !u!114 &1195891
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}

m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35813a1be64e144f887d7d5f15b963fa, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_Script: {fileID: 11500000, guid: 8b23992c8eb17439887f5e944bf04a40, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)
broadcast: 1
graphModel: {fileID: 4900000, guid: e28cc81d8dc98464b952e295ae9850fc, type: 3}
graphScope:
graphPlaceholders:
- name: epsilon
valueType: 1
minValue: 0
maxValue: 0
BatchSizePlaceholderName: batch_size
StatePlacholderName: state
RecurrentInPlaceholderName: recurrent_in
RecurrentOutPlaceholderName: recurrent_out
ObservationPlaceholderName: []
ActionPlaceholderName: action
brain: {fileID: 667765197}
--- !u!1001 &119733639
Prefab:

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

stateSpaceType: 1
brainType: 3
CoreBrains:
- {fileID: 1939754508}
- {fileID: 1376879964}
- {fileID: 83032124}
- {fileID: 1950067154}
instanceID: 10298
- {fileID: 1235501299}
- {fileID: 878319284}
- {fileID: 859680324}
- {fileID: 1195891}
instanceID: 19744
--- !u!1001 &764818074
Prefab:
m_ObjectHideFlags: 0

m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: ff026d63a00abdc48ad6ddcff89aba04, type: 2}
m_IsPrefabParent: 0
--- !u!114 &859680324
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35813a1be64e144f887d7d5f15b963fa, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
brain: {fileID: 667765197}
--- !u!114 &878319284
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 943466ab374444748a364f9d6c3e2fe2, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
broadcast: 1
brain: {fileID: 0}
--- !u!114 &1235501299
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 41e9bda8f3cf1492fa74926a530f6f70, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
broadcast: 1
continuousPlayerActions:
- key: 276
index: 0
value: 1
- key: 275
index: 0
value: -1
- key: 273
index: 1
value: 1
- key: 274
index: 1
value: -1
discretePlayerActions: []
defaultAction: -1
brain: {fileID: 667765197}
--- !u!1001 &1318922267
Prefab:
m_ObjectHideFlags: 0

m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: ff026d63a00abdc48ad6ddcff89aba04, type: 2}
m_IsPrefabParent: 0
--- !u!114 &1376879964
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 943466ab374444748a364f9d6c3e2fe2, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
brain: {fileID: 0}
--- !u!1 &1397918840
GameObject:
m_ObjectHideFlags: 0

m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &1397918845
Transform:
m_ObjectHideFlags: 0

maxSteps: 0
frameToSkip: 4
waitTime: 0
isInference: 0
trainingConfiguration:
width: 128
height: 72

done: 0
episodeCount: 0
currentStep: 0
isInference: 0
windowResize: 1
--- !u!1 &1746325439
GameObject:
m_ObjectHideFlags: 0

m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: ff026d63a00abdc48ad6ddcff89aba04, type: 2}
m_IsPrefabParent: 0
--- !u!114 &1939754508
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 41e9bda8f3cf1492fa74926a530f6f70, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
continuousPlayerActions:
- key: 276
index: 0
value: 1
- key: 275
index: 0
value: -1
- key: 273
index: 1
value: 1
- key: 274
index: 1
value: -1
discretePlayerActions: []
defaultAction: -1
brain: {fileID: 667765197}
--- !u!114 &1950067154
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b23992c8eb17439887f5e944bf04a40, type: 3}
m_Name: (Clone)(Clone)(Clone)
m_EditorClassIdentifier:
graphModel: {fileID: 4900000, guid: e28cc81d8dc98464b952e295ae9850fc, type: 3}
graphScope:
graphPlaceholders:
- name: epsilon
valueType: 1
minValue: 0
maxValue: 0
BatchSizePlaceholderName: batch_size
StatePlacholderName: state
RecurrentInPlaceholderName: recurrent_in
RecurrentOutPlaceholderName: recurrent_out
ObservationPlaceholderName: []
ActionPlaceholderName: action
brain: {fileID: 667765197}
--- !u!1 &2063801192
GameObject:
m_ObjectHideFlags: 0

101
unity-environment/Assets/ML-Agents/Examples/Area/Prefabs/PushArea.prefab


m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1433578436929790
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4379575143948170}
- component: {fileID: 20019178239241812}
m_Layer: 0
m_Name: AgentCam
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1493483966197088
GameObject:
m_ObjectHideFlags: 0

- component: {fileID: 65667507680723650}
- component: {fileID: 23372235118339718}
- component: {fileID: 54979596905483200}
- component: {fileID: 114772202904937800}
- component: {fileID: 114371909629876940}
m_Layer: 0
m_Name: Agent

m_Father: {fileID: 4797372522419518}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4379575143948170
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1433578436929790}
m_LocalRotation: {x: 0.38268343, y: -0, z: -0, w: 0.92387956}
m_LocalPosition: {x: 0, y: 9, z: -7}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4777271908265906}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 45, y: 0, z: 0}
--- !u!4 &4466531474194842
Transform:
m_ObjectHideFlags: 1

m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -9}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4379575143948170}
m_Children: []
m_Father: {fileID: 4797372522419518}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &20019178239241812
Camera:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1433578436929790}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!23 &23361251118430556
MeshRenderer:
m_ObjectHideFlags: 1

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

reward: 0
done: 0
value: 0
CummulativeReward: 0
CumulativeReward: 0
stepCounter: 0
agentStoredAction: []
memory: []

block: {fileID: 1493483966197088}
--- !u!114 &114772202904937800
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1893190605547158}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e040eaa8759024abbbb14994dc4c55ee, type: 3}
m_Name:
m_EditorClassIdentifier:
fixedPosition: 0
verticalOffset: 2
DisplayBrainName: 0
DisplayBrainType: 0
DisplayFrameCount: 0
DisplayCurrentReward: 0
DisplayMaxReward: 0
DisplayState: 0
DisplayAction: 0
--- !u!114 &114824876818673492
MonoBehaviour:
m_ObjectHideFlags: 1

109
unity-environment/Assets/ML-Agents/Examples/Area/Prefabs/WallArea.prefab


m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1353235869903194
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4812106314987956}
- component: {fileID: 20444604189257518}
m_Layer: 0
m_Name: AgentCam
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1506931635139370
GameObject:
m_ObjectHideFlags: 0

- component: {fileID: 23613202787206598}
- component: {fileID: 54973601004961626}
- component: {fileID: 114200736018184412}
- component: {fileID: 114280768661186092}
m_Layer: 0
m_Name: Agent
m_TagString: Untagged

m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -9}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4812106314987956}
m_Children: []
m_Father: {fileID: 4601298475788644}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1718829686919056}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -15, y: 0, z: 0}
m_LocalPosition: {x: -10, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4182184265281318}

m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1960504220667788}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalPosition: {x: 0, y: 0.25, z: 0}
m_LocalScale: {x: 2.2, y: 1.1, z: 2.2}
m_Children:
- {fileID: 4743003964451344}

m_Father: {fileID: 4291466584800356}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4812106314987956
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1353235869903194}
m_LocalRotation: {x: 0.38268343, y: -0, z: -0, w: 0.92387956}
m_LocalPosition: {x: 0, y: 9, z: -7}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4182184265281318}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 45, y: 0, z: 0}
--- !u!4 &4826682057551308
Transform:
m_ObjectHideFlags: 1

m_Father: {fileID: 4601298475788644}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &20444604189257518
Camera:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1353235869903194}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!23 &23415401456686744
MeshRenderer:
m_ObjectHideFlags: 1

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

reward: 0
done: 0
value: 0
CummulativeReward: 0
CumulativeReward: 0
area: {fileID: 1718829686919056}
area: {fileID: 1718829686919056}
wall: {fileID: 1506931635139370}
--- !u!114 &114215545026793406
MonoBehaviour:

academy: {fileID: 0}
block: {fileID: 1312874949203312}
goalHolder: {fileID: 1960504220667788}
--- !u!114 &114280768661186092
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1986507356043702}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e040eaa8759024abbbb14994dc4c55ee, type: 3}
m_Name:
m_EditorClassIdentifier:
fixedPosition: 0
verticalOffset: 2
DisplayBrainName: 0
DisplayBrainType: 0
DisplayFrameCount: 0
DisplayCurrentReward: 0
DisplayMaxReward: 0
DisplayState: 0
DisplayAction: 0

852
unity-environment/Assets/ML-Agents/Examples/Area/Push.unity
文件差异内容过多而无法显示
查看文件

75
unity-environment/Assets/ML-Agents/Examples/Area/Scripts/AreaAgent.cs


state.Add(velocity.x);
state.Add(velocity.y);
state.Add(velocity.z);
return state;
}
public void MoveAgent(int movement) {
float directionX = 0;
float directionZ = 0;
float directionY = 0;
if (movement == 1) { directionX = -1; }
if (movement == 2) { directionX = 1; }
if (movement == 3) { directionZ = -1; }
if (movement == 4) { directionZ = 1; }
if (movement == 5 && GetComponent<Rigidbody>().velocity.y <= 0) { directionY = 1; }
return state;
}
float edge = 0.499f;
float rayDepth = 0.51f;
Vector3 fwd = transform.TransformDirection(Vector3.down);
if (!Physics.Raycast(transform.position, fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(edge, 0f, 0f), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(-edge, 0f, 0f), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, edge), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, -edge), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(edge, 0f, edge), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(-edge, 0f, edge), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(edge, 0f, -edge), fwd, rayDepth) &&
!Physics.Raycast(transform.position + new Vector3(-edge, 0f, -edge), fwd, rayDepth))
{
directionY = 0f;
directionX = directionX / 5f;
directionZ = directionZ / 5f;
}
gameObject.GetComponent<Rigidbody>().AddForce(new Vector3(directionX * 40f, directionY * 300f, directionZ * 40f));
if (GetComponent<Rigidbody>().velocity.sqrMagnitude > 25f)
{
GetComponent<Rigidbody>().velocity *= 0.95f;
}
}
float movement = act[0];
float directionX = 0;
float directionZ = 0;
float directionY = 0;
if (movement == 1) { directionX = -1; }
if (movement == 2) { directionX = 1; }
if (movement == 3) { directionZ = -1; }
if (movement == 4) { directionZ = 1; }
if (movement == 5 && GetComponent<Rigidbody>().velocity.y <= 0) { directionY = 1; }
int movement = Mathf.FloorToInt(act[0]);
MoveAgent(movement);
Vector3 fwd = transform.TransformDirection(Vector3.down);
if (!Physics.Raycast(transform.position, fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, -0.499f), fwd, 0.51f))
{
directionY = 0f;
directionX = directionX / 5f;
directionZ = directionZ / 5f;
}
gameObject.GetComponent<Rigidbody>().AddForce(new Vector3(directionX * 40f, directionY * 300f, directionZ * 40f));
if (GetComponent<Rigidbody>().velocity.sqrMagnitude > 25f)
{
GetComponent<Rigidbody>().velocity *= 0.95f;
}
if (gameObject.transform.position.y < 0.0f || Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f || Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
if (gameObject.transform.position.y < 0.0f || Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f ||
Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
{
done = true;
reward = -1f;

37
unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Push/PushAgent.cs


public override void AgentStep(float[] act)
{
reward = -0.01f;
float movement = act[0];
float directionX = 0;
float directionZ = 0;
float directionY = 0;
if (movement == 1) { directionX = -1; }
if (movement == 2) { directionX = 1; }
if (movement == 3) { directionZ = -1; }
if (movement == 4) { directionZ = 1; }
if (movement == 5 && GetComponent<Rigidbody>().velocity.y <= 0) { directionY = 1; }
int movement = Mathf.FloorToInt(act[0]);
MoveAgent(movement);
Vector3 fwd = transform.TransformDirection(Vector3.down);
if (!Physics.Raycast(transform.position, fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, -0.499f), fwd, 0.51f))
{
directionY = 0f;
directionX = directionX / 5f;
directionZ = directionZ / 5f;
}
gameObject.GetComponent<Rigidbody>().AddForce(new Vector3(directionX * 40f, directionY * 300f, directionZ * 40f));
if (GetComponent<Rigidbody>().velocity.sqrMagnitude > 25f)
{
GetComponent<Rigidbody>().velocity *= 0.95f;
}
if (gameObject.transform.position.y < 0.0f || Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f || Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
if (gameObject.transform.position.y < 0.0f || Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f ||
Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
{
done = true;
reward = -1f;

2
unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Push/PushArea.cs


goalHolder.transform.position = new Vector3(Random.Range(-3.5f, 3.5f), -0.1f, Random.Range(0f, -3f)) + gameObject.transform.position;
float size = academy.GetComponent<PushAcademy>().objectSize;
size = Random.Range(size * 0.9f, size * 1.1f);
block.transform.localScale = new Vector3(size, 1f, size);
goalHolder.transform.localScale = new Vector3(size + 1f, 1f, size + 1f);
}

38
unity-environment/Assets/ML-Agents/Examples/Area/Scripts/Wall/WallAgent.cs


public override void AgentStep(float[] act)
{
reward = -0.01f;
float movement = act[0];
float directionX = 0;
float directionZ = 0;
float directionY = 0;
if (movement == 1) { directionX = -1; }
if (movement == 2) { directionX = 1; }
if (movement == 3) { directionZ = -1; }
if (movement == 4) { directionZ = 1; }
if (movement == 5 && GetComponent<Rigidbody>().velocity.y <= 0) { directionY = 1; }
Vector3 fwd = transform.TransformDirection(Vector3.down);
if (!Physics.Raycast(transform.position, fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.0f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, 0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(0.499f, 0f, -0.499f), fwd, 0.51f) &&
!Physics.Raycast(transform.position + new Vector3(-0.499f, 0f, -0.499f), fwd, 0.51f))
{
directionY = 0f;
directionX = directionX / 5f;
directionZ = directionZ / 5f;
}
int movement = Mathf.FloorToInt(act[0]);
MoveAgent(movement);
gameObject.GetComponent<Rigidbody>().AddForce(new Vector3(directionX * 40f, directionY * 300f, directionZ * 40f));
if (GetComponent<Rigidbody>().velocity.sqrMagnitude > 25f)
{
GetComponent<Rigidbody>().velocity *= 0.95f;
}
if (gameObject.transform.position.y < 0.0f || Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f || Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
if (gameObject.transform.position.y < 0.0f ||
Mathf.Abs(gameObject.transform.position.x - area.transform.position.x) > 8f ||
Mathf.Abs(gameObject.transform.position.z + 5 - area.transform.position.z) > 8)
{
done = true;
reward = -1f;

748
unity-environment/Assets/ML-Agents/Examples/Area/Wall.unity
文件差异内容过多而无法显示
查看文件

1
unity-environment/Assets/ML-Agents/Examples/GridWorld/Scripts/GridAgent.cs


// to be implemented by the developer
public override void AgentStep(float[] act)
{
reward = -0.01f;
int action = Mathf.FloorToInt(act[0]);

1
unity-environment/Assets/ML-Agents/Examples/Reacher/Scripts/FlyCamera.cs


}
//Keyboard commands
float f = 0.0f;
Vector3 p = GetBaseInput();
if (Input.GetKey(KeyCode.LeftShift))
{

4
unity-environment/Assets/ML-Agents/Scripts/Academy.cs


private int frameToSkip;
[SerializeField]
private float waitTime;
[HideInInspector]
public bool isInference = true;
/**< \brief Do not modify : If true, the Academy will use inference
* settings. */

currentStep = 0;
episodeCount++;
done = false;
AcademyReset();
foreach (Brain brain in brains)
{

AcademyReset();
}
// Instructs all brains to collect states from their agents.

22
unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab


- component: {fileID: 4797508036294378}
- component: {fileID: 114748406422209060}
m_Layer: 0
m_Name: Spider
m_Name: Crawler
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1

m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5

reward: 0
done: 0
value: 0
CummulativeReward: 0
CumulativeReward: 0
stepCounter: 0
agentStoredAction: []
memory: []

4
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs


using System.Collections.Generic;
using UnityEngine;
public class SpiderLegContact : MonoBehaviour {
public class CrawlerLegContact : MonoBehaviour {
public SpiderAgentConfigurable agent;
public CrawlerAgentConfigurable agent;
void Start(){
// agent = gameObject.transform.parent.gameObject.GetComponent<SpiderAgent>();

4
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs


using System.Collections.Generic;
using UnityEngine;
public class SpiderAgentConfigurable: Agent
public class CrawlerAgentConfigurable: Agent
{
public float strength;

Transform[] allChildren = GetComponentsInChildren<Transform>();
foreach (Transform child in allChildren)
{
if ((child.gameObject.name.Contains("Spider"))
if ((child.gameObject.name.Contains("Crawler"))
|| (child.gameObject.name.Contains("parent")))
{
continue;

11
python/curricula/wall.json


{
"measure" : "reward",
"thresholds" : [0.7, 0.7, 0.7, 0.6, 0.6, 0.6, 0.5, 0.5, 0.5],
"min_lesson_length" : 3,
"signal_smoothing" : true,
"parameters" :
{
"min_wall_height" : [0, 0, 1, 1, 2, 2, 3, 3, 4, 4],
"max_wall_height" : [0, 1, 1, 2, 2, 3, 3, 4, 4, 5]
}
}

914
unity-environment/Assets/ML-Agents/Examples/Crawler/Crawler.unity


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.4465934, g: 0.49642956, b: 0.5748249, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 9
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!114 &140901381
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 41e9bda8f3cf1492fa74926a530f6f70, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
broadcast: 1
continuousPlayerActions:
- key: 101
index: 0
value: -1
- key: 101
index: 1
value: -1
- key: 101
index: 2
value: -1
- key: 101
index: 3
value: -1
- key: 114
index: 3
value: 1
- key: 116
index: 11
value: -1
- key: 100
index: 1
value: 1
- key: 119
index: 7
value: -1
discretePlayerActions: []
defaultAction: 0
brain: {fileID: 393360180}
--- !u!1 &393360178
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 393360179}
- component: {fileID: 393360180}
m_Layer: 0
m_Name: Brain
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &393360179
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 393360178}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 2095421679}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &393360180
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 393360178}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c676a8ddf5a5f4f64b35e9ed5028679d, type: 3}
m_Name:
m_EditorClassIdentifier:
brainParameters:
stateSize: 117
actionSize: 12
memorySize: 0
cameraResolutions: []
actionDescriptions:
-
-
-
-
-
-
-
-
-
-
-
-
actionSpaceType: 1
stateSpaceType: 1
brainType: 3
CoreBrains:
- {fileID: 140901381}
- {fileID: 722649573}
- {fileID: 1365757417}
- {fileID: 1527314308}
instanceID: 38818
--- !u!114 &722649573
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 943466ab374444748a364f9d6c3e2fe2, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
broadcast: 1
brain: {fileID: 393360180}
--- !u!1 &847246804
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 847246808}
- component: {fileID: 847246807}
- component: {fileID: 847246806}
- component: {fileID: 847246805}
m_Layer: 0
m_Name: Ground
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &847246805
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 847246804}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 53c99f11939b0417eacfe91c06beadfb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!65 &847246806
BoxCollider:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 847246804}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &847246807
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 847246804}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &847246808
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 847246804}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 10000, y: 1, z: 10000}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &941004243
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: observations.Array.size
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.y
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.z
value: 20
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.y
value: 0.38268343
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.w
value: 0.92387956
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: brain
value:
objectReference: {fileID: 393360180}
- target: {fileID: 1066072914129342, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_Name
value: Crawler (1)
objectReference: {fileID: 0}
- target: {fileID: 153232554738599102, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.000001192091
objectReference: {fileID: 0}
- target: {fileID: 153232554738599102, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000002
objectReference: {fileID: 0}
- target: {fileID: 153777316091469626, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000006556511
objectReference: {fileID: 0}
- target: {fileID: 153777316091469626, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000001
objectReference: {fileID: 0}
- target: {fileID: 153013481843417770, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.00000053644146
objectReference: {fileID: 0}
- target: {fileID: 153013481843417770, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999998
objectReference: {fileID: 0}
- target: {fileID: 153694374863506716, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.0000011920929
objectReference: {fileID: 0}
- target: {fileID: 153694374863506716, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.89999974
objectReference: {fileID: 0}
- target: {fileID: 153524501921275654, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.00000055134296
objectReference: {fileID: 0}
- target: {fileID: 153524501921275654, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999997
objectReference: {fileID: 0}
- target: {fileID: 153419980105090076, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000005364418
objectReference: {fileID: 0}
- target: {fileID: 153419980105090076, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999998
objectReference: {fileID: 0}
- target: {fileID: 153548093446393418, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.00000055134296
objectReference: {fileID: 0}
- target: {fileID: 153548093446393418, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999997
objectReference: {fileID: 0}
- target: {fileID: 153500052450425132, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000006556511
objectReference: {fileID: 0}
- target: {fileID: 153500052450425132, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000001
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
m_IsPrefabParent: 0
--- !u!114 &1365757417
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 35813a1be64e144f887d7d5f15b963fa, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
brain: {fileID: 393360180}
--- !u!1 &1392866527
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1392866532}
- component: {fileID: 1392866531}
- component: {fileID: 1392866530}
- component: {fileID: 1392866529}
- component: {fileID: 1392866528}
- component: {fileID: 1392866533}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1392866528
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_Enabled: 1
--- !u!124 &1392866529
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_Enabled: 1
--- !u!92 &1392866530
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_Enabled: 1
--- !u!20 &1392866531
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 97
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1392866532
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_LocalRotation: {x: 0.336708, y: -0, z: -0, w: 0.94160914}
m_LocalPosition: {x: 0.56, y: 8, z: -7.24}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 39.353, y: 0, z: 0}
--- !u!114 &1392866533
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1392866527}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec40c70d5160b47cd8deaab79e24892c, type: 3}
m_Name:
m_EditorClassIdentifier:
target: {fileID: 1507354164}
--- !u!4 &1507354164 stripped
Transform:
m_PrefabParentObject: {fileID: 4491788954268586, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
m_PrefabInternal: {fileID: 1808602249}
--- !u!114 &1527314308
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8b23992c8eb17439887f5e944bf04a40, type: 3}
m_Name: (Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)(Clone)
m_EditorClassIdentifier:
broadcast: 1
graphModel: {fileID: 4900000, guid: 3569492a1961e4abe87b232f5ccaac90, type: 3}
graphScope:
graphPlaceholders:
- name: epsilon
valueType: 1
minValue: -1
maxValue: 1
BatchSizePlaceholderName: batch_size
StatePlacholderName: state
RecurrentInPlaceholderName: recurrent_in
RecurrentOutPlaceholderName: recurrent_out
ObservationPlaceholderName: []
ActionPlaceholderName: action
brain: {fileID: 393360180}
--- !u!1001 &1599453071
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: observations.Array.size
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.y
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.z
value: 40
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.y
value: 0.38268343
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.w
value: 0.92387956
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: brain
value:
objectReference: {fileID: 393360180}
- target: {fileID: 1066072914129342, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_Name
value: Crawler (2)
objectReference: {fileID: 0}
- target: {fileID: 153548093446393418, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.00000055134296
objectReference: {fileID: 0}
- target: {fileID: 153548093446393418, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999997
objectReference: {fileID: 0}
- target: {fileID: 153524501921275654, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.00000055134296
objectReference: {fileID: 0}
- target: {fileID: 153524501921275654, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999997
objectReference: {fileID: 0}
- target: {fileID: 153013481843417770, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.00000053644146
objectReference: {fileID: 0}
- target: {fileID: 153013481843417770, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999998
objectReference: {fileID: 0}
- target: {fileID: 153500052450425132, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000006556511
objectReference: {fileID: 0}
- target: {fileID: 153500052450425132, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000001
objectReference: {fileID: 0}
- target: {fileID: 153232554738599102, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.000001192091
objectReference: {fileID: 0}
- target: {fileID: 153232554738599102, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000002
objectReference: {fileID: 0}
- target: {fileID: 153694374863506716, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: -0.0000011920929
objectReference: {fileID: 0}
- target: {fileID: 153694374863506716, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.89999974
objectReference: {fileID: 0}
- target: {fileID: 153777316091469626, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000006556511
objectReference: {fileID: 0}
- target: {fileID: 153777316091469626, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.9000001
objectReference: {fileID: 0}
- target: {fileID: 153419980105090076, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.x
value: 0.0000005364418
objectReference: {fileID: 0}
- target: {fileID: 153419980105090076, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: m_ConnectedAnchor.y
value: -0.8999998
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
m_IsPrefabParent: 0
--- !u!1001 &1808602249
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: observations.Array.size
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.y
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.y
value: 0.38268343
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_LocalRotation.w
value: 0.92387956
objectReference: {fileID: 0}
- target: {fileID: 4797508036294378, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 114748406422209060, guid: 3db4283e33af74336bfedb01d0e011bf,
type: 2}
propertyPath: brain
value:
objectReference: {fileID: 393360180}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 3db4283e33af74336bfedb01d0e011bf, type: 2}
m_IsPrefabParent: 0
--- !u!1 &1815399875
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1815399877}
- component: {fileID: 1815399876}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1815399876
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1815399875}
m_Enabled: 1
serializedVersion: 8
m_Type: 1
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &1815399877
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1815399875}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &2095421678
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 2095421679}
- component: {fileID: 2095421680}
m_Layer: 0
m_Name: Academy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2095421679
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2095421678}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 2, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 393360179}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2095421680
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2095421678}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 19a3d2012efe74376a579f7f8fbfe13d, type: 3}
m_Name:
m_EditorClassIdentifier:
maxSteps: 0
frameToSkip: 4
waitTime: 0
isInference: 0
trainingConfiguration:
width: 80
height: 80
qualityLevel: 1
timeScale: 100
targetFrameRate: 60
inferenceConfiguration:
width: 1280
height: 720
qualityLevel: 5
timeScale: 1
targetFrameRate: 60
defaultResetParameters:
- key: steps
value: 0
done: 0
episodeCount: 0
currentStep: 0

21
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CameraFollow.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour {
public Transform target;
Vector3 offset;
// Use this for initialization
void Start () {
offset = gameObject.transform.position - target.position;
}
// Update is called once per frame
void Update () {
//gameObject.transform.position = target.position + offset;
Vector3 newPosition = new Vector3(target.position.x + offset.x, transform.position.y, target.position.z + offset.z);
gameObject.transform.position = newPosition;
}
}

23
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAcademy.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CrawlerAcademy : Academy
{
public override void InitializeAcademy()
{
Monitor.verticalOffset = 1f;
}
public override void AcademyReset()
{
}
public override void AcademyStep()
{
}
}

19
unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerBodyContact.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CrawlerBodyContact : MonoBehaviour {
CrawlerAgentConfigurable agent;
void Start(){
agent = gameObject.transform.parent.gameObject.GetComponent<CrawlerAgentConfigurable>();
}
void OnTriggerEnter(Collider other){
if (other.gameObject.name == "Ground")
{
agent.fell = true;
}
}
}

/images/spider.png → /images/crawler.png

/unity-environment/Assets/ML-Agents/Examples/Spider.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Resources.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Resources → /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources

/unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Spider.prefab.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab.meta

/unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Spider.prefab → /unity-environment/Assets/ML-Agents/Examples/Crawler/Resources/Crawler.prefab

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/TFModels.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/TFModels → /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels

/unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/spider.bytes.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/crawler.bytes.meta

/unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/spider.bytes → /unity-environment/Assets/ML-Agents/Examples/Crawler/TFModels/crawler.bytes

/unity-environment/Assets/ML-Agents/Examples/Spider/spider.unity.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Crawler.unity.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/CameraFollow.cs.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CameraFollow.cs.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderAcademy.cs.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAcademy.cs.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderAgentConfigurable.cs.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderBodyContact.cs.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerBodyContact.cs.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderLegContact.cs → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderLegContact.cs.meta → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerLegContact.cs.meta

/unity-environment/Assets/ML-Agents/Examples/Spider/Scripts/SpiderAgentConfigurable.cs → /unity-environment/Assets/ML-Agents/Examples/Crawler/Scripts/CrawlerAgentConfigurable.cs

正在加载...
取消
保存