浏览代码

[Experiment] Bullet hell

/layernorm
vincentpierre 4 年前
当前提交
f7a4a31f
共有 58 个文件被更改,包括 8265 次插入28 次删除
  1. 7
      com.unity.ml-agents/Runtime/Communicator/RpcCommunicator.cs
  2. 6
      ml-agents-envs/mlagents_envs/rpc_utils.py
  3. 4
      ml-agents/mlagents/trainers/agent_processor.py
  4. 72
      ml-agents/mlagents/trainers/torch/attention.py
  5. 2
      ml-agents/mlagents/trainers/torch/layers.py
  6. 12
      ml-agents/mlagents/trainers/torch/model_serialization.py
  7. 95
      ml-agents/mlagents/trainers/torch/networks.py
  8. 22
      ml-agents/mlagents/trainers/torch/utils.py
  9. 8
      Project/Assets/Bullet.meta
  10. 26
      config/ppo/Bullet.yaml
  11. 8
      Project/Assets/Bullet/Demos.meta
  12. 1001
      Project/Assets/Bullet/Demos/ExpertPush.demo
  13. 10
      Project/Assets/Bullet/Demos/ExpertPush.demo.meta
  14. 8
      Project/Assets/Bullet/Materials.meta
  15. 14
      Project/Assets/Bullet/Materials/noFric.physicMaterial
  16. 8
      Project/Assets/Bullet/Materials/noFric.physicMaterial.meta
  17. 8
      Project/Assets/Bullet/Meshes.meta
  18. 1001
      Project/Assets/Bullet/Meshes/PushBlockCourt.fbx
  19. 126
      Project/Assets/Bullet/Meshes/PushBlockCourt.fbx.meta
  20. 8
      Project/Assets/Bullet/Prefabs.meta
  21. 663
      Project/Assets/Bullet/Prefabs/BulletArea.prefab
  22. 7
      Project/Assets/Bullet/Prefabs/BulletArea.prefab.meta
  23. 652
      Project/Assets/Bullet/Prefabs/DodgeAgent.prefab
  24. 7
      Project/Assets/Bullet/Prefabs/DodgeAgent.prefab.meta
  25. 634
      Project/Assets/Bullet/Prefabs/DodgeAgentRaycast.prefab
  26. 7
      Project/Assets/Bullet/Prefabs/DodgeAgentRaycast.prefab.meta
  27. 641
      Project/Assets/Bullet/Prefabs/GridDodgeAgent.prefab
  28. 7
      Project/Assets/Bullet/Prefabs/GridDodgeAgent.prefab.meta
  29. 124
      Project/Assets/Bullet/Prefabs/bullet.prefab
  30. 7
      Project/Assets/Bullet/Prefabs/bullet.prefab.meta
  31. 8
      Project/Assets/Bullet/Scenes.meta
  32. 7
      Project/Assets/Bullet/Scenes/Bullet.unity.meta
  33. 1001
      Project/Assets/Bullet/Scenes/Bullet.unity
  34. 8
      Project/Assets/Bullet/Scripts.meta
  35. 7
      Project/Assets/Bullet/Scripts/.BulletAgent.cs.swp
  36. 130
      Project/Assets/Bullet/Scripts/AttentionSensorComponent.cs
  37. 11
      Project/Assets/Bullet/Scripts/AttentionSensorComponent.cs.meta
  38. 32
      Project/Assets/Bullet/Scripts/Bullet.cs
  39. 11
      Project/Assets/Bullet/Scripts/Bullet.cs.meta
  40. 103
      Project/Assets/Bullet/Scripts/BulletAgent.cs
  41. 11
      Project/Assets/Bullet/Scripts/BulletAgent.cs.meta
  42. 24
      Project/Assets/Bullet/Scripts/BulletSettings.cs
  43. 11
      Project/Assets/Bullet/Scripts/BulletSettings.cs.meta
  44. 217
      Project/Assets/Bullet/Scripts/DodgeAgent.cs
  45. 11
      Project/Assets/Bullet/Scripts/DodgeAgent.cs.meta
  46. 8
      Project/Assets/Bullet/TFModels.meta
  47. 472
      Project/Assets/Bullet/TFModels/Dodge.onnx
  48. 14
      Project/Assets/Bullet/TFModels/Dodge.onnx.meta
  49. 1001
      Project/Assets/Bullet/TFModels/PushBlock.nn
  50. 11
      Project/Assets/Bullet/TFModels/PushBlock.nn.meta

7
com.unity.ml-agents/Runtime/Communicator/RpcCommunicator.cs


agentInfoProto.Observations.Add(obsProto);
}
}
foreach (var proto in m_CurrentUnityRlOutput.AgentInfos[behaviorName].Value)
{
if (proto.Id == agentInfoProto.Id && !proto.Done && !agentInfoProto.Done )
{
UnityEngine.Debug.LogError("The same AgentId was added twice " + proto.Id + " "+m_CurrentUnityRlOutput.AgentInfos[behaviorName].Value.Count);
}
}
m_CurrentUnityRlOutput.AgentInfos[behaviorName].Value.Add(agentInfoProto);
}

6
ml-agents-envs/mlagents_envs/rpc_utils.py


behavior_spec.action_spec.discrete_branches
)
action_mask = np.split(action_mask, indices, axis=1)
if len(set(decision_agent_id)) != len(decision_agent_id):
ds = DecisionSteps(
decision_obs_list, decision_rewards, decision_agent_id, action_mask
)
print("Error, duplicate agent_ids :", ds)
return (
DecisionSteps(
decision_obs_list, decision_rewards, decision_agent_id, action_mask

4
ml-agents/mlagents/trainers/agent_processor.py


self._process_step(
ongoing_step, global_id, decision_steps.agent_id_to_index[local_id]
)
if decision_steps.agent_id_to_index[local_id] == 9:
print("wrong index", ongoing_step, global_id, decision_steps.agent_id, decision_steps.obs, decision_steps.reward, terminal_steps.obs, terminal_steps.agent_id)
for _gid in action_global_agent_ids:
# If the ID doesn't have a last step result, the agent just reset,

) -> None:
terminated = isinstance(step, TerminalStep)
stored_decision_step, idx = self.last_step_result.get(global_id, (None, None))
if idx == 9:
print("Index was 9", global_id, stored_decision_step.agent_id)
stored_take_action_outputs = self.last_take_action_outputs.get(global_id, None)
if not terminated:
# Index is needed to grab from last_take_action_outputs

72
ml-agents/mlagents/trainers/torch/attention.py


from mlagents.torch_utils import torch
from typing import Tuple, Optional, List
from mlagents.trainers.torch.layers import LinearEncoder
from mlagents.trainers.torch.layers import LinearEncoder, linear_layer, Initialization
class MultiHeadAttention(torch.nn.Module):

self.entities_num_max_elements: Optional[List[int]] = None
self.ent_encoders = torch.nn.ModuleList(
[
LinearEncoder(self.self_size + ent_size, 2, embedding_size)
# LinearEncoder(self.self_size + ent_size, 2, embedding_size)
# from http://www.cs.toronto.edu/~mvolkovs/ICML2020_tfixup.pdf
# linear_layer(self.self_size + ent_size, embedding_size, Initialization.Normal, kernel_gain=1 / (self.self_size + ent_size) ** 0.5)
LinearEncoder(self.self_size + ent_size, 1, embedding_size)
for ent_size in self.entities_sizes
]
)

self.residual_layer = LinearEncoder(embedding_size, 1, embedding_size)
if output_size is None:
output_size = embedding_size
self.x_self_residual_layer = LinearEncoder(
embedding_size + x_self_size, 1, output_size
)
def forward(
self,

denominator = torch.sum(1 - mask, dim=1, keepdim=True) + self.EPISLON
output = numerator / denominator
# Residual between x_self and the output of the module
output = self.x_self_residual_layer(torch.cat([output, x_self], dim=1))
output = torch.cat([output, x_self], dim=1)
return output
@staticmethod

for ent in observations
]
return key_masks
class SmallestAttention(torch.nn.Module):
def __init__(
self,
x_self_size: int,
entities_sizes: List[int],
embedding_size: int,
output_size: Optional[int] = None,
):
super().__init__()
self.self_size = x_self_size
self.entities_sizes = entities_sizes
self.entities_num_max_elements: Optional[List[int]] = None
self.ent_encoders = torch.nn.ModuleList(
[
LinearEncoder(self.self_size + ent_size, 2, embedding_size)
# LinearEncoder(self.self_size + ent_size, 3, embedding_size)
# LinearEncoder(self.self_size + ent_size, 1, embedding_size)
for ent_size in self.entities_sizes
]
)
self.importance_layer = LinearEncoder(embedding_size, 1, 1)
def forward(
self,
x_self: torch.Tensor,
entities: List[torch.Tensor],
key_masks: List[torch.Tensor],
) -> torch.Tensor:
# Gather the maximum number of entities information
if self.entities_num_max_elements is None:
self.entities_num_max_elements = []
for ent in entities:
self.entities_num_max_elements.append(ent.shape[1])
# Concatenate all observations with self
self_and_ent: List[torch.Tensor] = []
for num_entities, ent in zip(self.entities_num_max_elements, entities):
expanded_self = x_self.reshape(-1, 1, self.self_size)
# .repeat(
# 1, num_entities, 1
# )
expanded_self = torch.cat([expanded_self] * num_entities, dim=1)
self_and_ent.append(torch.cat([expanded_self, ent], dim=2))
# Generate the tensor that will serve as query, key and value to self attention
qkv = torch.cat(
[ent_encoder(x) for ent_encoder, x in zip(self.ent_encoders, self_and_ent)],
dim=1,
)
mask = torch.cat(key_masks, dim=1)
# Feed to self attention
max_num_ent = sum(self.entities_num_max_elements)
importance = self.importance_layer(qkv) + mask.unsqueeze(2) * -1e6
importance = torch.softmax(importance, dim=1)
weighted_qkv = qkv * importance
output = torch.sum(weighted_qkv, dim=1)
output = torch.cat([output, x_self], dim=1)
return output

2
ml-agents/mlagents/trainers/torch/layers.py


XavierGlorotUniform = 2
KaimingHeNormal = 3 # also known as Variance scaling
KaimingHeUniform = 4
Normal = 5
_init_methods = {

Initialization.KaimingHeNormal: torch.nn.init.kaiming_normal_,
Initialization.KaimingHeUniform: torch.nn.init.kaiming_uniform_,
Initialization.Normal: torch.nn.init.normal_
}

12
ml-agents/mlagents/trainers/torch/model_serialization.py


for sen_spec in self.policy.behavior_spec.sensor_specs
if len(sen_spec.shape) == 3
]
dummy_var_len_obs = [
torch.zeros(
batch_dim + [sen_spec.shape[0], sen_spec.shape[1]]
)
for sen_spec in self.policy.behavior_spec.sensor_specs
if len(sen_spec.shape) == 2
]
dummy_masks = torch.ones(
batch_dim + [sum(self.policy.behavior_spec.action_spec.discrete_branches)]
)

self.dummy_input = (dummy_vec_obs, dummy_vis_obs, dummy_masks, dummy_memories)
self.dummy_input = (dummy_vec_obs, dummy_vis_obs, dummy_var_len_obs, dummy_masks, dummy_memories)
+ [f"obs_{i}" for i, sens_spec in enumerate(self.policy.behavior_spec.sensor_specs) if len(sens_spec.shape) == 2]
+ ["action_masks", "memories"]
)
self.dynamic_axes = {name: {0: "batch"} for name in self.input_names}

95
ml-agents/mlagents/trainers/torch/networks.py


from mlagents.trainers.torch.encoders import VectorInput
from mlagents.trainers.buffer import AgentBuffer
from mlagents.trainers.trajectory import ObsUtil
from mlagents.trainers.torch.attention import SimpleTransformer, SmallestAttention
ActivationFunction = Callable[[torch.Tensor], torch.Tensor]

else 0
)
self.processors, self.embedding_sizes = ModelUtils.create_input_processors(
self.processors, self.embedding_sizes, var_len_indices = ModelUtils.create_input_processors(
sensor_specs,
self.h_size,
network_settings.vis_encode_type,

total_enc_size = sum(self.embedding_sizes) + encoded_act_size
self.use_fc = False
if len(var_len_indices) > 0:
# there are some variable length observations
x_self_len = sum(self.embedding_sizes)
entities_sizes = [] # TODO : More robust
for idx in var_len_indices:
entities_sizes.append(sensor_specs[idx].shape[1])
# self.x_self_enc = LinearEncoder(6, 2, 64)
# self.var_len_obs_enc = LinearEncoder(4, 2, 64)
# self.transformer = SimpleTransformer(
# 64,
# [64],
# self.h_size,
# self.h_size
# )
# self.transformer = SimpleTransformer(
# x_self_len,
# entities_sizes,
# self.h_size,
# self.h_size
# )
self.transformer = SmallestAttention(x_self_len, entities_sizes, self.h_size, self.h_size)
# self.transformer = SmallestAttention(64, [64], self.h_size, self.h_size)
# self.use_fc = True
total_enc_size = self.h_size + sum(self.embedding_sizes)
# total_enc_size = 128#self.h_size + sum(self.embedding_sizes)
n_layers = 1
if self.use_fc:
self.transformer = None
total_enc_size = 80 + sum(self.embedding_sizes)
n_layers = max(1, network_settings.num_layers + 1)
else:
self.transformer = None
total_enc_size = sum(self.embedding_sizes)
n_layers = max(1, network_settings.num_layers)
if total_enc_size == 0:
raise Exception("No valid inputs to network.")
total_enc_size += encoded_act_size
total_enc_size, network_settings.num_layers, self.h_size
total_enc_size, n_layers, self.h_size
)
if self.use_lstm:

sequence_length: int = 1,
) -> Tuple[torch.Tensor, torch.Tensor]:
encodes = []
var_len_inputs = []
obs_input = inputs[idx]
processed_obs = processor(obs_input)
encodes.append(processed_obs)
if processor is not None:
obs_input = inputs[idx]
processed_obs = processor(obs_input)
encodes.append(processed_obs)
else:
var_len_inputs.append(inputs[idx])
# var_len_inputs.append(
# self.var_len_obs_enc(inputs[idx])
# )
if len(encodes) == 0:
raise Exception("No valid inputs to network.")
if self.transformer is not None and not self.use_fc:
x_self = torch.cat(encodes, dim=1)
x_self_encoded = x_self
# x_self_encoded = self.x_self_enc(x_self)
# Constants don't work in Barracuda
if actions is not None:
inputs = torch.cat(encodes + [actions], dim=-1)
encoded_state = self.transformer(
x_self_encoded,
var_len_inputs,
SimpleTransformer.get_masks(var_len_inputs)
)
# print("\n\n\nUsing transformer ", self.transformer, "use fc = ", self.use_fc, " x_self.shape=",x_self_encoded.shape," var_len_inputs[0].shape=",var_len_inputs[0].shape," len(var_len_inputs)=",len(var_len_inputs))
inputs = torch.cat(encodes, dim=-1)
encoding = self.linear_encoder(inputs)
encoded_state = torch.cat(encodes, dim=1)
if self.use_fc:
x_self = torch.cat(encodes, dim=1)
encoded_state = torch.cat([x_self, inputs[0].reshape(x_self.shape[0], 80)], dim=1)
if actions is not None:
encoded_state = torch.cat([encoded_state, actions], dim=1)
encoding = self.linear_encoder(encoded_state)
if self.use_lstm:
# Resize to (batch, sequence length, encoding size)

self,
vec_inputs: List[torch.Tensor],
vis_inputs: List[torch.Tensor],
var_len_inputs: List[torch.Tensor],
masks: Optional[torch.Tensor] = None,
memories: Optional[torch.Tensor] = None,
) -> Tuple[Union[int, torch.Tensor], ...]:

start = 0
end = 0
vis_index = 0
var_len_index = 0
for i, enc in enumerate(self.network_body.processors):
if isinstance(enc, VectorInput):
# This is a vec_obs

start = end
else:
elif enc is not None:
else:
inputs.append(var_len_inputs[var_len_index])
var_len_index+=1
# End of code to convert the vec and vis obs into a list of inputs for the network
encoding, memories_out = self.network_body(
inputs, memories=memories, sequence_length=1

22
ml-agents/mlagents/trainers/torch/utils.py


"""
encoders: List[nn.Module] = []
embedding_sizes: List[int] = []
for sen_spec in sensor_specs:
encoder, embedding_size = ModelUtils.get_encoder_for_obs(
sen_spec.shape, normalize, h_size, vis_encode_type
)
encoders.append(encoder)
embedding_sizes.append(embedding_size)
var_len_indices: List[int] = []
for idx, sen_spec in enumerate(sensor_specs):
if len(sen_spec.shape) == 2:
# This is a 2D tensor
# TODO : better if condition
var_len_indices.append(idx)
encoders.append(None)
embedding_sizes.append(0)
else:
encoder, embedding_size = ModelUtils.get_encoder_for_obs(
sen_spec.shape, normalize, h_size, vis_encode_type
)
encoders.append(encoder)
embedding_sizes.append(embedding_size)
return (nn.ModuleList(encoders), embedding_sizes)
return (nn.ModuleList(encoders), embedding_sizes, var_len_indices)
@staticmethod
def list_to_tensor(

8
Project/Assets/Bullet.meta


fileFormatVersion: 2
guid: 3beb1e888d3ce4d1fb9c37e31394ca43
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

26
config/ppo/Bullet.yaml


behaviors:
Dodge:
trainer_type: ppo
hyperparameters:
batch_size: 1024
buffer_size: 10240
learning_rate: 0.0003
beta: 0.005
epsilon: 0.2
lambd: 0.95
num_epoch: 3
learning_rate_schedule: linear
network_settings:
normalize: true
hidden_units: 64
num_layers: 2
vis_encode_type: simple
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
keep_checkpoints: 5
max_steps: 50000000
time_horizon: 64
summary_freq: 100000
threaded: true

8
Project/Assets/Bullet/Demos.meta


fileFormatVersion: 2
guid: b01d95410090c4364a4bc4506601c58c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Project/Assets/Bullet/Demos/ExpertPush.demo
文件差异内容过多而无法显示
查看文件

10
Project/Assets/Bullet/Demos/ExpertPush.demo.meta


fileFormatVersion: 2
guid: 991552fb1f89746feb752872053e8fea
ScriptedImporter:
fileIDToRecycleName:
11400000: Assets/ML-Agents/Examples/Bullet/Demos/ExpertPush.demo
externalObjects: {}
userData: ' (Unity.MLAgents.Demonstrations.DemonstrationSummary)'
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 7bd65ce151aaa4a41a45312543c56be1, type: 3}

8
Project/Assets/Bullet/Materials.meta


fileFormatVersion: 2
guid: 48b0098a87e65415dbc7bf24084ac5e5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

14
Project/Assets/Bullet/Materials/noFric.physicMaterial


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!134 &13400000
PhysicMaterial:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: noFric
dynamicFriction: 0
staticFriction: 0
bounciness: 0
frictionCombine: 1
bounceCombine: 1

8
Project/Assets/Bullet/Materials/noFric.physicMaterial.meta


fileFormatVersion: 2
guid: 0b9641d6d92da41488fb40c6dfa2fefe
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
userData:
assetBundleName:
assetBundleVariant:

8
Project/Assets/Bullet/Meshes.meta


fileFormatVersion: 2
guid: 20e3395013e9647049d7ce070f5439c7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Project/Assets/Bullet/Meshes/PushBlockCourt.fbx
文件差异内容过多而无法显示
查看文件

126
Project/Assets/Bullet/Meshes/PushBlockCourt.fbx.meta


fileFormatVersion: 2
guid: 8b6b84452946f481a9f9b1cfbac1071b
ModelImporter:
serializedVersion: 23
fileIDToRecycleName:
100000: GoalArea
100002: Ground
100004: //RootNode
100006: WallsOuter
400000: GoalArea
400002: Ground
400004: //RootNode
400006: WallsOuter
2100000: rep_WhiteWalls
2100002: rep_Floor
2100004: rep_Checkers
2300000: GoalArea
2300002: Ground
2300004: WallsOuter
3300000: GoalArea
3300002: Ground
3300004: WallsOuter
4300000: WallsOuter
4300002: Ground
4300004: GoalArea
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: rep_Checkers
second: {fileID: 2100000, guid: 36c7baa347d68f347a9aa9698aa1bcdd, type: 2}
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: rep_Floor
second: {fileID: 2100000, guid: bc723809e6ff3174fad3e774cae1aed0, type: 2}
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: rep_WhiteWalls
second: {fileID: 2100000, guid: 6a39c0407dd85684384bf0277294e9b6, type: 2}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 1
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

8
Project/Assets/Bullet/Prefabs.meta


fileFormatVersion: 2
guid: 53309375fbb2349979b9544fc947625d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

663
Project/Assets/Bullet/Prefabs/BulletArea.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4108223592199287376
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5942909531044739535}
- component: {fileID: 7577342594661300214}
m_Layer: 0
m_Name: BulletAgent (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5942909531044739535
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4108223592199287376}
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: 7562565324271374322}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7577342594661300214
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4108223592199287376}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: df91a3b0545914867a3e12c2612ff2e7, type: 3}
m_Name:
m_EditorClassIdentifier:
ground: {fileID: 7564015931936126656}
area: {fileID: 7565593112241766594}
bullet: {fileID: 9019750875002465698, guid: 7b5d84a4f11a842d3a90019d75d4864a, type: 3}
areaBounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
rad: 5
useVectorObs: 0
--- !u!1 &7099812715628705112
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1948876709406054001}
- component: {fileID: 3150945269325661647}
m_Layer: 0
m_Name: BulletAgent
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1948876709406054001
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7099812715628705112}
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: 7562565324271374322}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3150945269325661647
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7099812715628705112}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: df91a3b0545914867a3e12c2612ff2e7, type: 3}
m_Name:
m_EditorClassIdentifier:
ground: {fileID: 7564015931936126656}
area: {fileID: 7565593112241766594}
bullet: {fileID: 9019750875002465698, guid: 7b5d84a4f11a842d3a90019d75d4864a, type: 3}
areaBounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
rad: 1
useVectorObs: 0
--- !u!1 &7564015931936126656
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7560949701076398986}
- component: {fileID: 7532905146477588866}
- component: {fileID: 7543027300194633676}
- component: {fileID: 7500003306779556890}
m_Layer: 0
m_Name: Ground
m_TagString: ground
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7560949701076398986
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564015931936126656}
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: -0.00000030517577}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_Children: []
m_Father: {fileID: 7562565324271374322}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7532905146477588866
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564015931936126656}
m_Mesh: {fileID: 4300002, guid: 8b6b84452946f481a9f9b1cfbac1071b, type: 3}
--- !u!23 &7543027300194633676
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564015931936126656}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: acba6bf2a290a496bb8989b42bf8698d, 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: 0
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 &7500003306779556890
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564015931936126656}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 2500, y: 100, z: 2500}
m_Center: {x: 0, y: -50, z: 0}
--- !u!1 &7564770370831641396
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7560714265303810678}
- component: {fileID: 7531452457550542816}
- component: {fileID: 7543119621162342942}
- component: {fileID: 7499980728070196000}
- component: {fileID: 7499776670673470672}
- component: {fileID: 7499890663494456890}
- component: {fileID: 7501352791067747770}
- component: {fileID: 6102058721154905631}
m_Layer: 0
m_Name: WallsOuter
m_TagString: wall
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7560714265303810678
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_Children: []
m_Father: {fileID: 7562565324271374322}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7531452457550542816
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Mesh: {fileID: 4300000, guid: 8b6b84452946f481a9f9b1cfbac1071b, type: 3}
--- !u!23 &7543119621162342942
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, 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: 0
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 &7499980728070196000
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 50, y: 200, z: 2600}
m_Center: {x: -1275, y: 50, z: 0}
--- !u!65 &7499776670673470672
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 50, y: 200, z: 2600}
m_Center: {x: 1275, y: 50, z: 0}
--- !u!65 &7499890663494456890
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 2500, y: 200, z: 50}
m_Center: {x: 0, y: 50, z: -1275}
--- !u!65 &7501352791067747770
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 2500, y: 200, z: 50}
m_Center: {x: 0, y: 50, z: 1275}
--- !u!54 &6102058721154905631
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7564770370831641396}
serializedVersion: 2
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 126
m_CollisionDetection: 0
--- !u!1 &7565593112241766594
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7562565324271374322}
m_Layer: 0
m_Name: BulletArea
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7562565324271374322
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7565593112241766594}
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:
- {fileID: 7560949701076398986}
- {fileID: 7560714265303810678}
- {fileID: 1948876709406054001}
- {fileID: 5942909531044739535}
- {fileID: 8618579996134555605}
- {fileID: 4270948751059092865}
- {fileID: 2543513692711517529}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2651720343641195129
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 7562565324271374322}
m_Modifications:
- target: {fileID: 968348991679639438, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 7564015931936126656}
- target: {fileID: 968348991679639438, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: area
value:
objectReference: {fileID: 7565593112241766594}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_RootOrder
value: 5
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_Name
value: DodgeAgentRaycast
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7a515d80a9d5b4cfaba55aa066594016, type: 3}
--- !u!4 &4270948751059092865 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 7a515d80a9d5b4cfaba55aa066594016,
type: 3}
m_PrefabInstance: {fileID: 2651720343641195129}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4379144681784015521
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 7562565324271374322}
m_Modifications:
- target: {fileID: 968348991679639438, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 7564015931936126656}
- target: {fileID: 968348991679639438, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: area
value:
objectReference: {fileID: 7565593112241766594}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_Name
value: DodgeAgent
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents:
- {fileID: 9204493211719777360, guid: 16266ae2c040142b1a996878d94ec3fb, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: 16266ae2c040142b1a996878d94ec3fb, type: 3}
--- !u!4 &2543513692711517529 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 16266ae2c040142b1a996878d94ec3fb,
type: 3}
m_PrefabInstance: {fileID: 4379144681784015521}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &7499302685616420909
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 7562565324271374322}
m_Modifications:
- target: {fileID: 114291266114270340, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: ChannelDepth.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 114291266114270340, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: ChannelDepth.Array.data[0]
value: 1
objectReference: {fileID: 0}
- target: {fileID: 968348991679639438, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: ground
value:
objectReference: {fileID: 7564015931936126656}
- target: {fileID: 968348991679639438, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: area
value:
objectReference: {fileID: 7565593112241766594}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalRotation.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalRotation.w
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_Name
value: GridDodgeAgent
objectReference: {fileID: 0}
- target: {fileID: 5229809530250264056, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6693afcd33b8842fba88da9b967315ff, type: 3}
--- !u!4 &8618579996134555605 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 2272550728573618168, guid: 6693afcd33b8842fba88da9b967315ff,
type: 3}
m_PrefabInstance: {fileID: 7499302685616420909}
m_PrefabAsset: {fileID: 0}

7
Project/Assets/Bullet/Prefabs/BulletArea.prefab.meta


fileFormatVersion: 2
guid: e8cf070fe398a4cf49e159e022b4c70f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

652
Project/Assets/Bullet/Prefabs/DodgeAgent.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &885187624837835691
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5717384610559386029}
- component: {fileID: 4460606225382380065}
- component: {fileID: 1701558932139552957}
m_Layer: 0
m_Name: Headband
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5717384610559386029
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
m_LocalRotation: {x: -0, y: -0, z: 0.016506119, w: 0.9998638}
m_LocalPosition: {x: 0, y: 0.341, z: 0}
m_LocalScale: {x: 1.0441425, y: 0.19278127, z: 1.0441422}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: -179.99998, z: 1.8920001}
--- !u!33 &4460606225382380065
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1701558932139552957
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 885187624837835691}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 04be259c590de46f69db4cbd1da877d5, 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!1 &3030470132183250647
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4891811896135393119}
- component: {fileID: 2566746289261301171}
- component: {fileID: 6208826707789982396}
m_Layer: 0
m_Name: eye
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4891811896135393119
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
m_LocalRotation: {x: -0, y: 1, z: -0, w: 0}
m_LocalPosition: {x: -0.29999995, y: 0.07399994, z: 0.50040054}
m_LocalScale: {x: 0.29457998, y: 0.29457998, z: 0.29457998}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!33 &2566746289261301171
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6208826707789982396
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3030470132183250647}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: f731be6866ce749fd8349e67ae81f76a, 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!1 &3867941451733423599
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5300219684672247731}
- component: {fileID: 8887881079427673174}
m_Layer: 0
m_Name: AgentCamera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &5300219684672247731
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3867941451733423599}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.15}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 3772060718904068707}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &8887881079427673174
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3867941451733423599}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.46666667, g: 0.5647059, b: 0.60784316, a: 1}
m_projectionMatrixMode: 1
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_GateFitMode: 2
m_FocalLength: 50
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: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294950911
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &4950788375273796042
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3772060718904068707}
- component: {fileID: 7436418646745004782}
- component: {fileID: 8060565630020696910}
m_Layer: 0
m_Name: AgentCube_Blue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3772060718904068707
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
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:
- {fileID: 5300219684672247731}
- {fileID: 6362716277631423426}
- {fileID: 4891811896135393119}
- {fileID: 5037913333958716936}
- {fileID: 5717384610559386029}
m_Father: {fileID: 2272550728573618168}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7436418646745004782
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8060565630020696910
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4950788375273796042}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, 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!1 &5229809530250264056
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2272550728573618168}
- component: {fileID: 2679882405526971781}
- component: {fileID: 2602957484348800521}
- component: {fileID: 1274120649733857615}
- component: {fileID: 9204493211719777360}
- component: {fileID: 7501236269187550559}
- component: {fileID: 968348991679639438}
- component: {fileID: 968348991679639432}
- component: {fileID: 5260467540845178092}
m_Layer: 0
m_Name: DodgeAgent
m_TagString: agent
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2272550728573618168
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_LocalRotation: {x: 0, y: 1, z: 0, w: 0}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3772060718904068707}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!54 &2679882405526971781
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
serializedVersion: 2
m_Mass: 25
m_Drag: 4
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 112
m_CollisionDetection: 1
--- !u!114 &2602957484348800521
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3}
m_Name:
m_EditorClassIdentifier:
m_BrainParameters:
VectorObservationSize: 2
NumStackedVectorObservations: 3
m_ActionSpec:
m_NumContinuousActions: 3
BranchSizes:
VectorActionSize: 03000000
VectorActionDescriptions: []
VectorActionSpaceType: 1
hasUpgradedBrainParametersWithActionSpec: 1
m_Model: {fileID: 11400000, guid: 594d4e871fa4a43e7a295dc95e462c73, type: 3}
m_InferenceDevice: 0
m_BehaviorType: 0
m_BehaviorName: Dodge
TeamId: 0
m_UseChildSensors: 1
m_UseChildActuators: 1
m_ObservableAttributeHandling: 0
--- !u!65 &1274120649733857615
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
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!114 &9204493211719777360
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6bb6b867a41448888c1cd4f99643ad71, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SensorName: RayPerceptionSensor
m_DetectableTags:
- bullet
m_RaysPerDirection: 15
m_MaxRayDegrees: 180
m_SphereCastRadius: 0.5
m_RayLength: 10
m_RayLayerMask:
serializedVersion: 2
m_Bits: 4294967291
m_ObservationStacks: 1
rayHitColor: {r: 1, g: 0, b: 0, a: 1}
rayMissColor: {r: 1, g: 1, b: 1, a: 1}
m_StartVerticalOffset: 0
m_EndVerticalOffset: 0
--- !u!114 &7501236269187550559
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3a6da8f78a394c6ab027688eab81e04d, type: 3}
m_Name:
m_EditorClassIdentifier:
debugCommandLineOverride:
--- !u!114 &968348991679639438
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5229809530250264056}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 232c9ff708bbc42229855bb8d3366b4c, type: 3}