Ruo-Ping Dong
4 年前
当前提交
7d42c559
共有 40 个文件被更改,包括 1644 次插入 和 313 次删除
-
4.github/workflows/pre-commit.yml
-
3.yamato/gym-interface-test.yml
-
3.yamato/python-ll-api-test.yml
-
9.yamato/standalone-build-test.yml
-
8.yamato/training-int-tests.yml
-
159Dockerfile
-
4com.unity.ml-agents.extensions/Runtime/Sensors/GridSensor.cs
-
2com.unity.ml-agents/Runtime/Sensors/CameraSensor.cs
-
52com.unity.ml-agents/Runtime/Sensors/ObservationWriter.cs
-
2com.unity.ml-agents/Runtime/Sensors/RenderTextureSensor.cs
-
8com.unity.ml-agents/Runtime/Sensors/StackingSensor.cs
-
47com.unity.ml-agents/Runtime/Utilities.cs
-
2docs/Learning-Environment-Create-New.md
-
4gym-unity/gym_unity/__init__.py
-
4ml-agents-envs/mlagents_envs/__init__.py
-
4ml-agents/mlagents/trainers/__init__.py
-
4ml-agents/tests/yamato/standalone_build_tests.py
-
4ml-agents/tests/yamato/training_int_tests.py
-
14ml-agents/tests/yamato/yamato_utils.py
-
46.github/workflows/build-docker.yaml
-
32.yamato/compressed-sensor-test.yml
-
7.yamato/test_versions.metafile
-
8Project/Assets/ML-Agents/TestScenes.meta
-
53ml-agents/tests/yamato/scripts/run_compressed_sensor.py
-
8Project/Assets/ML-Agents/TestScenes/TestCompressedGrid.meta
-
737Project/Assets/ML-Agents/TestScenes/TestCompressedGrid/TestGridCompressed.unity
-
7Project/Assets/ML-Agents/TestScenes/TestCompressedGrid/TestGridCompressed.unity.meta
-
8Project/Assets/ML-Agents/TestScenes/TestCompressedTexture.meta
-
324Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureCompressed.unity
-
7Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureCompressed.unity.meta
-
71Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureSensor.cs
-
11Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureSensor.cs.meta
-
53Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureSensorComponent.cs
-
11Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/TestTextureSensorComponent.cs.meta
-
42Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/Texture.png
-
99Project/Assets/ML-Agents/TestScenes/TestCompressedTexture/Texture.png.meta
-
96ml-agents/tests/yamato/editmode_tests.py
|
|||
# Based off of python:3.6-slim, except that we are using ubuntu instead of debian. |
|||
FROM ubuntu:16.04 |
|||
|
|||
|
|||
# ensure local python is preferred over distribution python |
|||
ENV PATH /usr/local/bin:$PATH |
|||
FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04 |
|||
# http://bugs.python.org/issue19846 |
|||
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. |
|||
ENV LANG C.UTF-8 |
|||
RUN yes | unminimize |
|||
# runtime dependencies |
|||
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|||
ca-certificates \ |
|||
libexpat1 \ |
|||
libffi6 \ |
|||
libgdbm3 \ |
|||
libreadline6 \ |
|||
libsqlite3-0 \ |
|||
libssl1.0.0 \ |
|||
&& rm -rf /var/lib/apt/lists/* |
|||
RUN echo "deb http://packages.cloud.google.com/apt cloud-sdk-xenial main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list |
|||
RUN wget https://packages.cloud.google.com/apt/doc/apt-key.gpg && apt-key add apt-key.gpg |
|||
RUN apt-get update && \ |
|||
apt-get install -y --no-install-recommends wget curl tmux vim git gdebi-core \ |
|||
build-essential python3-pip unzip google-cloud-sdk htop mesa-utils xorg-dev xorg \ |
|||
libglvnd-dev libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev && \ |
|||
wget http://security.ubuntu.com/ubuntu/pool/main/libx/libxfont/libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb && \ |
|||
wget http://security.ubuntu.com/ubuntu/pool/universe/x/xorg-server/xvfb_1.18.4-0ubuntu0.10_amd64.deb && \ |
|||
yes | gdebi libxfont1_1.5.1-1ubuntu0.16.04.4_amd64.deb && \ |
|||
yes | gdebi xvfb_1.18.4-0ubuntu0.10_amd64.deb |
|||
RUN python3 -m pip install --upgrade pip |
|||
RUN pip install setuptools==41.0.0 |
|||
ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D |
|||
ENV PYTHON_VERSION 3.6.4 |
|||
ENV LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH |
|||
RUN set -ex \ |
|||
&& buildDeps=" \ |
|||
dpkg-dev \ |
|||
gcc \ |
|||
libbz2-dev \ |
|||
libc6-dev \ |
|||
libexpat1-dev \ |
|||
libffi-dev \ |
|||
libgdbm-dev \ |
|||
liblzma-dev \ |
|||
libncursesw5-dev \ |
|||
libreadline-dev \ |
|||
libsqlite3-dev \ |
|||
libssl-dev \ |
|||
make \ |
|||
tcl-dev \ |
|||
tk-dev \ |
|||
wget \ |
|||
xz-utils \ |
|||
zlib1g-dev \ |
|||
# as of Stretch, "gpg" is no longer included by default |
|||
$(command -v gpg > /dev/null || echo 'gnupg dirmngr') \ |
|||
" \ |
|||
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \ |
|||
\ |
|||
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ |
|||
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ |
|||
&& export GNUPGHOME="$(mktemp -d)" \ |
|||
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ |
|||
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \ |
|||
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \ |
|||
&& mkdir -p /usr/src/python \ |
|||
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ |
|||
&& rm python.tar.xz \ |
|||
\ |
|||
&& cd /usr/src/python \ |
|||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ |
|||
&& ./configure \ |
|||
--build="$gnuArch" \ |
|||
--enable-loadable-sqlite-extensions \ |
|||
--enable-shared \ |
|||
--with-system-expat \ |
|||
--with-system-ffi \ |
|||
--without-ensurepip \ |
|||
&& make -j "$(nproc)" \ |
|||
&& make install \ |
|||
&& ldconfig \ |
|||
\ |
|||
&& apt-get purge -y --auto-remove $buildDeps \ |
|||
\ |
|||
&& find /usr/local -depth \ |
|||
\( \ |
|||
\( -type d -a \( -name test -o -name tests \) \) \ |
|||
-o \ |
|||
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ |
|||
\) -exec rm -rf '{}' + \ |
|||
&& rm -rf /usr/src/python |
|||
|
|||
# make some useful symlinks that are expected to exist |
|||
RUN cd /usr/local/bin \ |
|||
&& ln -s idle3 idle \ |
|||
&& ln -s pydoc3 pydoc \ |
|||
&& ln -s python3 python \ |
|||
&& ln -s python3-config python-config |
|||
|
|||
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" |
|||
ENV PYTHON_PIP_VERSION 9.0.3 |
|||
|
|||
RUN set -ex; \ |
|||
\ |
|||
apt-get update; \ |
|||
apt-get install -y --no-install-recommends wget; \ |
|||
rm -rf /var/lib/apt/lists/*; \ |
|||
\ |
|||
wget -O get-pip.py 'https://bootstrap.pypa.io/get-pip.py'; \ |
|||
\ |
|||
apt-get purge -y --auto-remove wget; \ |
|||
\ |
|||
python get-pip.py \ |
|||
--disable-pip-version-check \ |
|||
--no-cache-dir \ |
|||
"pip==$PYTHON_PIP_VERSION" \ |
|||
; \ |
|||
pip --version; \ |
|||
\ |
|||
find /usr/local -depth \ |
|||
\( \ |
|||
\( -type d -a \( -name test -o -name tests \) \) \ |
|||
-o \ |
|||
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ |
|||
\) -exec rm -rf '{}' +; \ |
|||
rm -f get-pip.py |
|||
|
|||
|
|||
RUN apt-get update && apt-get -y upgrade |
|||
|
|||
# xvfb is used to do CPU based rendering of Unity |
|||
RUN apt-get install -y xvfb |
|||
|
|||
# Install ml-agents-envs package locally |
|||
COPY ml-agents-envs /ml-agents-envs |
|||
WORKDIR /ml-agents-envs |
|||
RUN pip install -e . |
|||
|
|||
# Install ml-agents package next |
|||
COPY ml-agents /ml-agents |
|||
#checkout ml-agents for SHA |
|||
RUN mkdir /ml-agents |
|||
RUN pip install -e . |
|||
|
|||
# Port 5004 is the port used in Editor training. |
|||
# Environments will start from port 5005, |
|||
# so allow enough ports for several environments. |
|||
EXPOSE 5004-5050 |
|||
|
|||
ENTRYPOINT ["xvfb-run", "--auto-servernum", "--server-args='-screen 0 640x480x24'", "mlagents-learn"] |
|||
ARG SHA |
|||
RUN git init |
|||
RUN git remote add origin https://github.com/Unity-Technologies/ml-agents.git |
|||
RUN git fetch --depth 1 origin $SHA |
|||
RUN git checkout FETCH_HEAD |
|||
RUN pip install -e /ml-agents/ml-agents-envs |
|||
RUN pip install -e /ml-agents/ml-agents |
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.21.0" |
|||
__version__ = "0.22.0.dev0" |
|||
__release_tag__ = "release_8" |
|||
__release_tag__ = None |
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.21.0" |
|||
__version__ = "0.22.0.dev0" |
|||
__release_tag__ = "release_8" |
|||
__release_tag__ = None |
|
|||
# Version of the library that will be used to upload to pypi |
|||
__version__ = "0.21.0" |
|||
__version__ = "0.22.0.dev0" |
|||
__release_tag__ = "release_8" |
|||
__release_tag__ = None |
|
|||
name: build and push Docker image |
|||
|
|||
on: |
|||
push: |
|||
tags: |
|||
- "release_[0-9]+" |
|||
|
|||
jobs: |
|||
build: |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- uses: actions/checkout@v2 |
|||
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master |
|||
with: |
|||
version: '270.0.0' |
|||
service_account_email: ${{ secrets.GCP_STG_EMAIL }} |
|||
service_account_key: ${{ secrets.GCP_STG_PRIVATE_KEY }} |
|||
export_default_credentials: true |
|||
- name: Configure GCR Docker auth (stg) |
|||
run: gcloud auth configure-docker |
|||
- name: Build docker image |
|||
run: docker build --tag ml-agents:${GITHUB_SHA} --build-arg SHA=${GITHUB_SHA} . |
|||
- name: Tag docker image (stg) |
|||
run: | |
|||
docker tag ml-agents:${GITHUB_SHA} gcr.io/unity-ai-ml-agents-stg/ml-agents:${GITHUB_SHA} |
|||
docker tag ml-agents:${GITHUB_SHA} gcr.io/unity-ai-ml-agents-stg/ml-agents:latest |
|||
- name: Push docker image (stg) |
|||
run: | |
|||
docker push gcr.io/unity-ai-ml-agents-stg/ml-agents:${GITHUB_SHA} |
|||
docker push gcr.io/unity-ai-ml-agents-stg/ml-agents:latest |
|||
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master |
|||
with: |
|||
version: '270.0.0' |
|||
service_account_email: ${{ secrets.GCP_PRD_EMAIL }} |
|||
service_account_key: ${{ secrets.GCP_PRD_PRIVATE_KEY }} |
|||
export_default_credentials: true |
|||
- name: Configure GCR Docker auth (prd) |
|||
run: gcloud auth configure-docker |
|||
- name: Tag docker image (prd) |
|||
run: | |
|||
docker tag ml-agents:${GITHUB_SHA} gcr.io/unity-ai-ml-agents-prd/ml-agents:${GITHUB_SHA} |
|||
docker tag ml-agents:${GITHUB_SHA} gcr.io/unity-ai-ml-agents-prd/ml-agents:latest |
|||
- name: Push docker image (prd) |
|||
run: | |
|||
docker push gcr.io/unity-ai-ml-agents-prd/ml-agents:${GITHUB_SHA} |
|||
docker push gcr.io/unity-ai-ml-agents-prd/ml-agents:latest |
|
|||
{% metadata_file .yamato/test_versions.metafile %} |
|||
--- |
|||
{% for editor in test_editors %} |
|||
test_compressed_obs_{{ editor.version }}: |
|||
name: Test Compressed Sensor Observation {{ editor.version }} |
|||
agent: |
|||
type: Unity::VM::osx |
|||
image: ml-agents/ml-agents-bokken-mac:0.1.4-492264 |
|||
flavor: b1.small |
|||
variables: |
|||
UNITY_VERSION: {{ editor.version }} |
|||
commands: |
|||
- pip install pyyaml --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple |
|||
- python -u -m ml-agents.tests.yamato.setup_venv |
|||
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_compressed_sensor.py --env=artifacts/testPlayer-TestGridCompressed |
|||
- ./venv/bin/python ml-agents/tests/yamato/scripts/run_compressed_sensor.py --env=artifacts/testPlayer-TestTextureCompressed |
|||
dependencies: |
|||
- .yamato/standalone-build-test.yml#test_mac_standalone_{{ editor.version }} |
|||
triggers: |
|||
cancel_old_ci: true |
|||
expression: | |
|||
(pull_request.target eq "master" OR |
|||
pull_request.target match "release.+") AND |
|||
NOT pull_request.draft AND |
|||
(pull_request.changes.any match "com.unity.ml-agents/**" OR |
|||
pull_request.changes.any match "com.unity.ml-agents.extensions/**" OR |
|||
pull_request.changes.any match "Project/**" OR |
|||
pull_request.changes.any match "ml-agents/**" OR |
|||
pull_request.changes.any match "ml-agents-envs/**" OR |
|||
pull_request.changes.any match ".yamato/compressed-sensor-test.yml") AND |
|||
NOT pull_request.changes.all match "**/*.md" |
|||
{% endfor %} |
|
|||
# List of editor versions for standalone-build-test and its dependencies. |
|||
test_editors: |
|||
- version: 2018.4 |
|||
- version: 2019.4 |
|||
- version: 2020.1 |
|||
# Waiting on a barracuda fix, see https://jira.unity3d.com/browse/MLA-1464 |
|||
# - version: 2020.2 |
|
|||
fileFormatVersion: 2 |
|||
guid: 73f290de2bb5d4009a3831255f1f5d0f |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
import argparse |
|||
import numpy as np |
|||
|
|||
from mlagents_envs.environment import UnityEnvironment |
|||
|
|||
EPSILON = 0.001 |
|||
|
|||
|
|||
def test_run_environment(env_name): |
|||
""" |
|||
Run the low-level API test of compressed sensors using the specified environment |
|||
:param env_name: Name of the Unity environment binary to launch |
|||
""" |
|||
env = UnityEnvironment( |
|||
file_name=env_name, no_graphics=True, additional_args=["-logFile", "-"] |
|||
) |
|||
|
|||
try: |
|||
# Reset the environment |
|||
env.reset() |
|||
|
|||
env.step() |
|||
|
|||
# Set the default brain to work with |
|||
group_name = list(env.behavior_specs.keys())[0] |
|||
|
|||
# Get the state of the agents |
|||
decision_steps, _ = env.get_steps(group_name) |
|||
|
|||
# One observation comes from compressed sensor while the other comes |
|||
# from an uncompressed sensor |
|||
obs_1 = decision_steps.obs[0][0, :, :, :] |
|||
obs_2 = decision_steps.obs[0][1, :, :, :] |
|||
|
|||
diff = np.abs(obs_1 - obs_2) |
|||
|
|||
# make sure both are identical |
|||
assert np.max(diff) < EPSILON |
|||
|
|||
# make sure an actual observation was collected |
|||
assert np.max(obs_1) > EPSILON |
|||
|
|||
print("Observations were identical") |
|||
|
|||
finally: |
|||
env.close() |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
parser = argparse.ArgumentParser() |
|||
parser.add_argument("--env", default="artifacts/testPlayer") |
|||
args = parser.parse_args() |
|||
test_run_environment(args.env) |
|
|||
fileFormatVersion: 2 |
|||
guid: b97601ee748f74c10ae084cdea824aa9 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%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: 9 |
|||
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.44657838, g: 0.49641234, b: 0.57481676, a: 1} |
|||
m_UseRadianceAmbientProbe: 0 |
|||
--- !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_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 10 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_AtlasSize: 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: 1 |
|||
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_ShowResolutionOverlay: 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!1 &512612610 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 512612611} |
|||
m_Layer: 0 |
|||
m_Name: Ground |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &512612611 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 512612610} |
|||
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: 1242785455} |
|||
- {fileID: 577791992} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 4 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &577791991 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 577791992} |
|||
- component: {fileID: 577791995} |
|||
- component: {fileID: 577791994} |
|||
- component: {fileID: 577791993} |
|||
m_Layer: 0 |
|||
m_Name: Cube (1) |
|||
m_TagString: wall |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &577791992 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 577791991} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 4.67, y: 0, z: 0.79} |
|||
m_LocalScale: {x: 1, y: 1, z: 11.002} |
|||
m_Children: [] |
|||
m_Father: {fileID: 512612611} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!65 &577791993 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 577791991} |
|||
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!23 &577791994 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 577791991} |
|||
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: 10303, guid: 0000000000000000f000000000000000, type: 0} |
|||
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!33 &577791995 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 577791991} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!1 &1242785454 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1242785455} |
|||
- component: {fileID: 1242785458} |
|||
- component: {fileID: 1242785457} |
|||
- component: {fileID: 1242785456} |
|||
m_Layer: 0 |
|||
m_Name: Cube |
|||
m_TagString: goal |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &1242785455 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1242785454} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 3.31} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 512612611} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!65 &1242785456 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1242785454} |
|||
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!23 &1242785457 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1242785454} |
|||
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: 10303, guid: 0000000000000000f000000000000000, type: 0} |
|||
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!33 &1242785458 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1242785454} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!1 &1362333146 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1362333151} |
|||
- component: {fileID: 1362333150} |
|||
- component: {fileID: 1362333149} |
|||
- component: {fileID: 1362333148} |
|||
- component: {fileID: 1362333147} |
|||
m_Layer: 0 |
|||
m_Name: GridAgentUnCompressed |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &1362333147 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1362333146} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
DecisionPeriod: 1 |
|||
TakeActionsBetweenDecisions: 1 |
|||
--- !u!114 &1362333148 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1362333146} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 801669c0cdece6b40b2e741ad0b119ac, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
Name: GridSensor |
|||
CellScaleX: 1 |
|||
CellScaleZ: 1 |
|||
GridNumSideX: 16 |
|||
GridNumSideZ: 16 |
|||
CellScaleY: 0.01 |
|||
RotateToAgent: 0 |
|||
ChannelDepth: 04000000 |
|||
DetectableObjects: |
|||
- goal |
|||
- wall |
|||
- Player |
|||
ObserveMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 307 |
|||
gridDepthType: 1 |
|||
rootReference: {fileID: 1362333146} |
|||
ObservationPerCell: 4 |
|||
NumberOfObservations: 1024 |
|||
ChannelOffsets: 00000000 |
|||
DebugColors: |
|||
- {r: 1, g: 0.0141509175, b: 0.0141509175, a: 0} |
|||
- {r: 0, g: 0.050011635, b: 1, a: 0} |
|||
- {r: 0.12027997, g: 1, b: 0.08962262, a: 0} |
|||
GizmoYOffset: 0 |
|||
ShowGizmos: 1 |
|||
CompressionType: 0 |
|||
--- !u!114 &1362333149 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1362333146} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 88b6042bc9a5d4aa58d931eae49442e5, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
agentParameters: |
|||
maxStep: 0 |
|||
hasUpgradedFromAgentParameters: 1 |
|||
MaxStep: 0 |
|||
--- !u!114 &1362333150 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1362333146} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_BrainParameters: |
|||
VectorObservationSize: 0 |
|||
NumStackedVectorObservations: 1 |
|||
VectorActionSize: 01000000 |
|||
VectorActionDescriptions: [] |
|||
VectorActionSpaceType: 0 |
|||
m_Model: {fileID: 0} |
|||
m_InferenceDevice: 0 |
|||
m_BehaviorType: 0 |
|||
m_BehaviorName: TestGrid |
|||
TeamId: 0 |
|||
m_UseChildSensors: 1 |
|||
m_UseChildActuators: 1 |
|||
m_ObservableAttributeHandling: 0 |
|||
--- !u!4 &1362333151 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1362333146} |
|||
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: 0} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1377910015 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1377910019} |
|||
- component: {fileID: 1377910018} |
|||
- component: {fileID: 1377910017} |
|||
- component: {fileID: 1377910016} |
|||
- component: {fileID: 1377910020} |
|||
m_Layer: 0 |
|||
m_Name: GridAgentCompressed |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &1377910016 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1377910015} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 801669c0cdece6b40b2e741ad0b119ac, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
Name: GridSensor |
|||
CellScaleX: 1 |
|||
CellScaleZ: 1 |
|||
GridNumSideX: 16 |
|||
GridNumSideZ: 16 |
|||
CellScaleY: 0.01 |
|||
RotateToAgent: 0 |
|||
ChannelDepth: 04000000 |
|||
DetectableObjects: |
|||
- goal |
|||
- wall |
|||
- Player |
|||
ObserveMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 307 |
|||
gridDepthType: 1 |
|||
rootReference: {fileID: 1377910015} |
|||
ObservationPerCell: 4 |
|||
NumberOfObservations: 1024 |
|||
ChannelOffsets: 00000000 |
|||
DebugColors: |
|||
- {r: 1, g: 0.0141509175, b: 0.0141509175, a: 0} |
|||
- {r: 0, g: 0.050011635, b: 1, a: 0} |
|||
- {r: 0.12027997, g: 1, b: 0.08962262, a: 0} |
|||
GizmoYOffset: 0 |
|||
ShowGizmos: 1 |
|||
CompressionType: 1 |
|||
--- !u!114 &1377910017 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1377910015} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 88b6042bc9a5d4aa58d931eae49442e5, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
agentParameters: |
|||
maxStep: 0 |
|||
hasUpgradedFromAgentParameters: 1 |
|||
MaxStep: 0 |
|||
--- !u!114 &1377910018 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1377910015} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_BrainParameters: |
|||
VectorObservationSize: 0 |
|||
NumStackedVectorObservations: 1 |
|||
VectorActionSize: 01000000 |
|||
VectorActionDescriptions: [] |
|||
VectorActionSpaceType: 0 |
|||
m_Model: {fileID: 0} |
|||
m_InferenceDevice: 0 |
|||
m_BehaviorType: 0 |
|||
m_BehaviorName: TestGrid |
|||
TeamId: 0 |
|||
m_UseChildSensors: 1 |
|||
m_UseChildActuators: 1 |
|||
m_ObservableAttributeHandling: 0 |
|||
--- !u!4 &1377910019 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1377910015} |
|||
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: 0} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!114 &1377910020 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1377910015} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
DecisionPeriod: 1 |
|||
TakeActionsBetweenDecisions: 1 |
|||
--- !u!1 &1617557642 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1617557644} |
|||
- component: {fileID: 1617557643} |
|||
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 &1617557643 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1617557642} |
|||
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_LightShadowCasterMode: 0 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &1617557644 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1617557642} |
|||
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 &1634604112 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1634604115} |
|||
- component: {fileID: 1634604114} |
|||
- component: {fileID: 1634604113} |
|||
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 &1634604113 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1634604112} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1634604114 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1634604112} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
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: -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_AllowDynamicResolution: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
--- !u!4 &1634604115 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 1634604112} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 1, z: -10} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: c6482e6ab5ed04a7abd50c44565f6250 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: d8c0d087917754bd297dfd8fd613b1a8 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%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: 9 |
|||
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.3731193, g: 0.38073996, b: 0.3587269, a: 1} |
|||
m_UseRadianceAmbientProbe: 0 |
|||
--- !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_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 10 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_AtlasSize: 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: 1 |
|||
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_ShowResolutionOverlay: 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!1 &293272827 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 293272831} |
|||
- component: {fileID: 293272830} |
|||
- component: {fileID: 293272829} |
|||
- component: {fileID: 293272832} |
|||
- component: {fileID: 293272828} |
|||
m_Layer: 0 |
|||
m_Name: UncompressedObsAgent |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &293272828 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 293272827} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 8eda65155b8ff4d14a3b048dae0fb21c, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
TestTexture: {fileID: 2800000, guid: eeba1f6a35c72450894cf4f4cb516004, type: 3} |
|||
ObservationStacks: 4 |
|||
CompressionType: 0 |
|||
--- !u!114 &293272829 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 293272827} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 88b6042bc9a5d4aa58d931eae49442e5, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
agentParameters: |
|||
maxStep: 0 |
|||
hasUpgradedFromAgentParameters: 1 |
|||
MaxStep: 0 |
|||
--- !u!114 &293272830 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 293272827} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_BrainParameters: |
|||
VectorObservationSize: 0 |
|||
NumStackedVectorObservations: 1 |
|||
VectorActionSize: 01000000 |
|||
VectorActionDescriptions: [] |
|||
VectorActionSpaceType: 0 |
|||
m_Model: {fileID: 0} |
|||
m_InferenceDevice: 0 |
|||
m_BehaviorType: 0 |
|||
m_BehaviorName: TestCompressedObs |
|||
TeamId: 0 |
|||
m_UseChildSensors: 1 |
|||
m_UseChildActuators: 1 |
|||
m_ObservableAttributeHandling: 0 |
|||
--- !u!4 &293272831 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 293272827} |
|||
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: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!114 &293272832 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 293272827} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
DecisionPeriod: 1 |
|||
TakeActionsBetweenDecisions: 1 |
|||
--- !u!1 &2059361216 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 2059361220} |
|||
- component: {fileID: 2059361219} |
|||
- component: {fileID: 2059361218} |
|||
- component: {fileID: 2059361221} |
|||
- component: {fileID: 2059361217} |
|||
m_Layer: 0 |
|||
m_Name: CompressedObsAgent |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!114 &2059361217 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2059361216} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 8eda65155b8ff4d14a3b048dae0fb21c, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
TestTexture: {fileID: 2800000, guid: eeba1f6a35c72450894cf4f4cb516004, type: 3} |
|||
ObservationStacks: 4 |
|||
CompressionType: 1 |
|||
--- !u!114 &2059361218 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2059361216} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 88b6042bc9a5d4aa58d931eae49442e5, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
agentParameters: |
|||
maxStep: 0 |
|||
hasUpgradedFromAgentParameters: 1 |
|||
MaxStep: 0 |
|||
--- !u!114 &2059361219 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2059361216} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
m_BrainParameters: |
|||
VectorObservationSize: 0 |
|||
NumStackedVectorObservations: 1 |
|||
VectorActionSize: 01000000 |
|||
VectorActionDescriptions: [] |
|||
VectorActionSpaceType: 0 |
|||
m_Model: {fileID: 0} |
|||
m_InferenceDevice: 0 |
|||
m_BehaviorType: 0 |
|||
m_BehaviorName: TestCompressedObs |
|||
TeamId: 0 |
|||
m_UseChildSensors: 1 |
|||
m_UseChildActuators: 1 |
|||
m_ObservableAttributeHandling: 0 |
|||
--- !u!4 &2059361220 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2059361216} |
|||
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: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!114 &2059361221 |
|||
MonoBehaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInstance: {fileID: 0} |
|||
m_PrefabAsset: {fileID: 0} |
|||
m_GameObject: {fileID: 2059361216} |
|||
m_Enabled: 1 |
|||
m_EditorHideFlags: 0 |
|||
m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3} |
|||
m_Name: |
|||
m_EditorClassIdentifier: |
|||
DecisionPeriod: 1 |
|||
TakeActionsBetweenDecisions: 1 |
|
|||
fileFormatVersion: 2 |
|||
guid: bf09dea4d49cd471bb220b4dd4e0711a |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine; |
|||
using Unity.MLAgents.Sensors; |
|||
using Unity.MLAgents; |
|||
|
|||
public class TestTextureSensor : ISensor |
|||
{ |
|||
Texture2D m_Texture; |
|||
string m_Name; |
|||
int[] m_Shape; |
|||
SensorCompressionType m_CompressionType; |
|||
|
|||
/// <summary>
|
|||
/// The compression type used by the sensor.
|
|||
/// </summary>
|
|||
public SensorCompressionType CompressionType |
|||
{ |
|||
get { return m_CompressionType; } |
|||
set { m_CompressionType = value; } |
|||
} |
|||
|
|||
|
|||
public TestTextureSensor( |
|||
Texture2D texture, string name, SensorCompressionType compressionType) |
|||
{ |
|||
m_Texture = texture; |
|||
var width = texture.width; |
|||
var height = texture.height; |
|||
m_Name = name; |
|||
m_Shape = new[] { height, width, 3 }; |
|||
m_CompressionType = compressionType; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public string GetName() |
|||
{ |
|||
return m_Name; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public int[] GetObservationShape() |
|||
{ |
|||
return m_Shape; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public byte[] GetCompressedObservation() |
|||
{ |
|||
var compressed = m_Texture.EncodeToPNG(); |
|||
return compressed; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public int Write(ObservationWriter writer) |
|||
{ |
|||
var numWritten = writer.WriteTexture(m_Texture, false); |
|||
return numWritten; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public void Update() { } |
|||
|
|||
/// <inheritdoc/>
|
|||
public void Reset() { } |
|||
|
|||
/// <inheritdoc/>
|
|||
public SensorCompressionType GetCompressionType() |
|||
{ |
|||
return m_CompressionType; |
|||
} |
|||
} |
|||
|
|
|||
fileFormatVersion: 2 |
|||
guid: f521fc880d878456081dfe81a741be8d |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine; |
|||
using UnityEngine.Serialization; |
|||
using Unity.MLAgents.Sensors; |
|||
|
|||
|
|||
public class TestTextureSensorComponent : SensorComponent |
|||
{ |
|||
TestTextureSensor m_Sensor; |
|||
|
|||
public Texture2D TestTexture; |
|||
|
|||
string m_SensorName = "TextureSensor"; |
|||
|
|||
public string SensorName |
|||
{ |
|||
get { return m_SensorName; } |
|||
set { m_SensorName = value; } |
|||
} |
|||
|
|||
|
|||
public int ObservationStacks = 4; |
|||
|
|||
public SensorCompressionType CompressionType = SensorCompressionType.PNG; |
|||
|
|||
|
|||
/// <inheritdoc/>
|
|||
public override ISensor CreateSensor() |
|||
{ |
|||
m_Sensor = new TestTextureSensor(TestTexture, SensorName, CompressionType); |
|||
if (ObservationStacks != 1) |
|||
{ |
|||
return new StackingSensor(m_Sensor, ObservationStacks); |
|||
} |
|||
return m_Sensor; |
|||
} |
|||
|
|||
/// <inheritdoc/>
|
|||
public override int[] GetObservationShape() |
|||
{ |
|||
var width = TestTexture.width; |
|||
var height = TestTexture.height; |
|||
var observationShape = new[] { height, width, 3 }; |
|||
|
|||
var stacks = ObservationStacks > 1 ? ObservationStacks : 1; |
|||
if (stacks > 1) |
|||
{ |
|||
observationShape[2] *= stacks; |
|||
} |
|||
|
|||
return observationShape; |
|||
} |
|||
} |
|||
|
|
|||
fileFormatVersion: 2 |
|||
guid: 8eda65155b8ff4d14a3b048dae0fb21c |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: eeba1f6a35c72450894cf4f4cb516004 |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
externalObjects: {} |
|||
serializedVersion: 9 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 1 |
|||
linearTexture: 0 |
|||
fadeOut: 0 |
|||
borderMipMap: 0 |
|||
mipMapsPreserveCoverage: 0 |
|||
alphaTestReferenceValue: 0.5 |
|||
mipMapFadeDistanceStart: 1 |
|||
mipMapFadeDistanceEnd: 3 |
|||
bumpmap: |
|||
convertToNormalMap: 0 |
|||
externalNormalMap: 0 |
|||
heightScale: 0.25 |
|||
normalMapFilter: 0 |
|||
isReadable: 1 |
|||
streamingMipmaps: 0 |
|||
streamingMipmapsPriority: 0 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -100 |
|||
wrapU: -1 |
|||
wrapV: -1 |
|||
wrapW: -1 |
|||
nPOTScale: 1 |
|||
lightmap: 0 |
|||
compressionQuality: 50 |
|||
spriteMode: 0 |
|||
spriteExtrude: 1 |
|||
spriteMeshType: 1 |
|||
alignment: 0 |
|||
spritePivot: {x: 0.5, y: 0.5} |
|||
spritePixelsToUnits: 100 |
|||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
|||
spriteGenerateFallbackPhysicsShape: 1 |
|||
alphaUsage: 1 |
|||
alphaIsTransparency: 0 |
|||
spriteTessellationDetail: -1 |
|||
textureType: 0 |
|||
textureShape: 1 |
|||
singleChannelComponent: 0 |
|||
maxTextureSizeSet: 0 |
|||
compressionQualitySet: 0 |
|||
textureFormatSet: 0 |
|||
platformSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: DefaultTexturePlatform |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 0 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
- serializedVersion: 2 |
|||
buildTarget: Standalone |
|||
maxTextureSize: 2048 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 0 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
androidETC2FallbackOverride: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
bones: [] |
|||
spriteID: |
|||
vertices: [] |
|||
indices: |
|||
edges: [] |
|||
weights: [] |
|||
spritePackingTag: |
|||
pSDRemoveMatte: 0 |
|||
pSDShowRemoveMatteOption: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
import os |
|||
import sys |
|||
import subprocess |
|||
import shutil |
|||
import xml.dom.minidom |
|||
from typing import NamedTuple |
|||
|
|||
from .yamato_utils import get_base_path, get_unity_executable_path |
|||
|
|||
|
|||
def clean_previous_results(base_path): |
|||
""" |
|||
Clean up old results and make the artifacts path. |
|||
""" |
|||
artifacts_path = os.path.join(base_path, "artifacts/") |
|||
results_xml_path = os.path.join(base_path, "results.xml") |
|||
|
|||
if os.path.exists(results_xml_path): |
|||
os.remove(results_xml_path) |
|||
|
|||
if os.path.exists(artifacts_path): |
|||
os.rmdir(artifacts_path) |
|||
os.mkdir(artifacts_path) |
|||
|
|||
|
|||
class TestResults(NamedTuple): |
|||
total: str |
|||
passed: str |
|||
failed: str |
|||
duration: str |
|||
|
|||
|
|||
def parse_results(results_xml): |
|||
""" |
|||
Extract the test results from the xml file. |
|||
""" |
|||
stats = {} |
|||
dom_tree = xml.dom.minidom.parse(results_xml) |
|||
collection = dom_tree.documentElement |
|||
for attribute in ["total", "passed", "failed", "duration"]: |
|||
stats[attribute] = collection.getAttribute(attribute) |
|||
return TestResults(**stats) |
|||
|
|||
|
|||
def main(): |
|||
base_path = get_base_path() |
|||
artifacts_path = os.path.join(base_path, "artifacts/") |
|||
results_xml_path = os.path.join(base_path, "results.xml") |
|||
print(f"Running in base path {base_path}") |
|||
|
|||
print("Cleaning previous results") |
|||
clean_previous_results(base_path) |
|||
|
|||
unity_exe = get_unity_executable_path() |
|||
print(f"Starting tests via {unity_exe}") |
|||
|
|||
test_args = [ |
|||
unity_exe, |
|||
"-batchmode", |
|||
"-runTests", |
|||
"-logfile", |
|||
"-", |
|||
"-projectPath", |
|||
f"{base_path}/Project", |
|||
"-testResults", |
|||
f"{base_path}/results.xml", |
|||
"-testPlatform", |
|||
"editmode", |
|||
] |
|||
print(f"{' '.join(test_args)} ...") |
|||
|
|||
timeout = 30 * 60 # 30 minutes, just in case |
|||
res: subprocess.CompletedProcess = subprocess.run(test_args, timeout=timeout) |
|||
|
|||
stats = parse_results(results_xml_path) |
|||
print( |
|||
f"{stats.total} tests executed in {stats.duration}s: {stats.passed} passed, " |
|||
f"{stats.failed} failed. More details in results.xml" |
|||
) |
|||
|
|||
try: |
|||
# copy results to artifacts dir |
|||
shutil.copy2(results_xml_path, artifacts_path) |
|||
except Exception: |
|||
pass |
|||
|
|||
if res.returncode == 0 and os.path.exists(results_xml_path): |
|||
print("Test run SUCCEEDED!") |
|||
else: |
|||
print("Test run FAILED!") |
|||
|
|||
sys.exit(res.returncode) |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
main() |
撰写
预览
正在加载...
取消
保存
Reference in new issue