Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5b302b3e3 | ||
|
|
2b35d3f754 | ||
|
|
382f6c7f63 | ||
|
|
ed28763017 | ||
|
|
f1fadf7909 | ||
|
|
b915ad78c7 |
+114
@@ -0,0 +1,114 @@
|
||||
# Nightclub Arcadia — git attributes
|
||||
#
|
||||
# Two jobs: make Unity's YAML files mergeable, and keep line endings from
|
||||
# becoming a source of phantom diffs.
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Unity YAML — text, LF, and merged with UnityYAMLMerge
|
||||
# ---------------------------------------------------------------------------
|
||||
# The merge driver needs a one-time setup per machine; see §"Merge driver" in
|
||||
# CLAUDE.md. Without it git falls back to a normal text merge, which for scenes
|
||||
# and prefabs means conflicts that are painful but not silently wrong.
|
||||
*.unity text eol=lf merge=unityyamlmerge
|
||||
*.prefab text eol=lf merge=unityyamlmerge
|
||||
*.asset text eol=lf merge=unityyamlmerge
|
||||
*.mat text eol=lf merge=unityyamlmerge
|
||||
*.anim text eol=lf merge=unityyamlmerge
|
||||
*.controller text eol=lf merge=unityyamlmerge
|
||||
*.overrideController text eol=lf merge=unityyamlmerge
|
||||
*.physicMaterial text eol=lf merge=unityyamlmerge
|
||||
*.physicsMaterial2D text eol=lf merge=unityyamlmerge
|
||||
*.playable text eol=lf merge=unityyamlmerge
|
||||
*.mask text eol=lf merge=unityyamlmerge
|
||||
*.brush text eol=lf merge=unityyamlmerge
|
||||
*.flare text eol=lf merge=unityyamlmerge
|
||||
*.lighting text eol=lf merge=unityyamlmerge
|
||||
*.terrainlayer text eol=lf merge=unityyamlmerge
|
||||
*.signal text eol=lf merge=unityyamlmerge
|
||||
*.guiskin text eol=lf merge=unityyamlmerge
|
||||
*.fontsettings text eol=lf merge=unityyamlmerge
|
||||
*.meta text eol=lf
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# EXCEPTION — a scene that is serialized as BINARY
|
||||
# ---------------------------------------------------------------------------
|
||||
# DialogueTest.unity is a Unity binary SerializedFile, not YAML, despite the
|
||||
# project being set to Force Text. It contains 128 lone CR bytes, so treating it
|
||||
# as text would have git rewrite them as line endings and corrupt the scene.
|
||||
#
|
||||
# Remove this line the moment the file is genuinely text — verify with:
|
||||
# head -c 20 NightclubArcadia/Assets/Scenes/DialogueTest.unity # want %YAML 1.1
|
||||
# Background and the fix: docs/restructure-plan.md §0.1
|
||||
/NightclubArcadia/Assets/Scenes/DialogueTest.unity binary
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Source, config and prose
|
||||
# ---------------------------------------------------------------------------
|
||||
*.cs text eol=lf diff=csharp
|
||||
*.yarn text eol=lf
|
||||
*.yarnproject text eol=lf
|
||||
*.asmdef text eol=lf
|
||||
*.asmref text eol=lf
|
||||
*.inputactions text eol=lf
|
||||
*.shader text eol=lf
|
||||
*.compute text eol=lf
|
||||
*.cginc text eol=lf
|
||||
*.hlsl text eol=lf
|
||||
*.shadergraph text eol=lf
|
||||
*.json text eol=lf
|
||||
*.md text eol=lf
|
||||
*.txt text eol=lf
|
||||
*.py text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.csproj text eol=lf
|
||||
*.xml text eol=lf
|
||||
*.gitattributes text eol=lf
|
||||
*.gitignore text eol=lf
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Binary — never diffed, never line-ending converted
|
||||
# ---------------------------------------------------------------------------
|
||||
*.png binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.gif binary
|
||||
*.tga binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
*.psd binary
|
||||
*.exr binary
|
||||
*.hdr binary
|
||||
*.fbx binary
|
||||
*.obj binary
|
||||
*.blend binary
|
||||
*.wav binary
|
||||
*.mp3 binary
|
||||
*.ogg binary
|
||||
*.aif binary
|
||||
*.ttf binary
|
||||
*.otf binary
|
||||
*.pdf binary
|
||||
*.dll binary
|
||||
*.pdb binary
|
||||
*.so binary
|
||||
*.dylib binary
|
||||
*.bundle binary
|
||||
*.a binary
|
||||
*.unitypackage binary
|
||||
*.cubemap binary
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Git LFS — deliberately NOT enabled yet
|
||||
# ---------------------------------------------------------------------------
|
||||
# git-lfs is installed locally, but this repo pushes to a self-hosted server
|
||||
# whose LFS support has not been verified, and enabling LFS against a server
|
||||
# that lacks it breaks pushing. There is also almost nothing to store yet: one
|
||||
# placeholder PNG plus the StarterAssets meshes.
|
||||
#
|
||||
# When real art lands, verify the server first, then add:
|
||||
# *.png filter=lfs diff=lfs merge=lfs -text
|
||||
# *.fbx filter=lfs diff=lfs merge=lfs -text
|
||||
# *.wav filter=lfs diff=lfs merge=lfs -text
|
||||
# and migrate existing blobs with `git lfs migrate import --include=...`.
|
||||
# Adding the filter without migrating leaves old blobs outside LFS, which is
|
||||
# confusing rather than broken.
|
||||
@@ -127,3 +127,9 @@ tools/**/obj/
|
||||
*.tar.gz
|
||||
*.7z
|
||||
*.rar
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Local build and test output (Makefile targets)
|
||||
# ---------------------------------------------------------------------------
|
||||
/.test-results/
|
||||
/build/
|
||||
|
||||
@@ -17,7 +17,9 @@ to fix — it is the checkout path). The Unity project is a **subdirectory**:
|
||||
/Users/lennart/Dev/nightlcub-arcadia/ # git root
|
||||
├── CLAUDE.md, AGENTS.md # this reference
|
||||
├── docs/ # design + plan docs (markdown)
|
||||
├── writing/ # writer-facing context — see §4
|
||||
├── tools/YarnCheck/ # .NET 9 Yarn compiler/player, no Unity needed
|
||||
├── tools/writing/ # voice-sheet sync (md <-> skill_bible.json)
|
||||
├── .gitignore # macOS / IDE / toolchain rules
|
||||
└── NightclubArcadia/ # ← the Unity project (-projectPath)
|
||||
├── .gitignore # Unity rules (anchored, must stay here)
|
||||
@@ -49,13 +51,43 @@ AI Navigation 2.0.14, ProBuilder 6.1.2, Test Framework 1.7.0. Yarn Spinner is an
|
||||
mode while the Editor has it open — a single instance at a time. Always check before
|
||||
any `-batchmode` invocation (§3.1).
|
||||
4. **Prefer YarnCheck over Unity for dialogue validation.** It is seconds, not minutes,
|
||||
and needs no Editor lock (§5.3).
|
||||
and needs no Editor lock (§5.4).
|
||||
5. **Do not commit on the user's behalf** unless asked. Unity writes to tracked files
|
||||
(`ProjectSettings/*`, `.meta`, scenes) as a side effect of simply being open, so
|
||||
`git status` noise is expected and is not always yours.
|
||||
|
||||
---
|
||||
|
||||
## 2b. Everyday commands
|
||||
|
||||
A `Makefile` at the repo root wraps everything in this document. Prefer it — the exact
|
||||
invocations live there instead of being retyped.
|
||||
|
||||
```bash
|
||||
make # list targets
|
||||
make check # yarn + voice sheets + EditMode — run this before committing
|
||||
make test # EditMode suite, with a readable summary
|
||||
make yarn # compile every Yarn script (seconds, no Unity)
|
||||
make build # macOS player into build/
|
||||
make lock # fail if the Editor has the project open
|
||||
```
|
||||
|
||||
`make test` and `make build` refuse to run while the Editor is open, which removes the most
|
||||
common way these commands fail confusingly.
|
||||
|
||||
### Merge driver — one-time per machine
|
||||
|
||||
`.gitattributes` marks Unity YAML for `unityyamlmerge`. Git needs to be told what that is, or
|
||||
it falls back to a line-oriented text merge that can produce a scene Unity still loads and that
|
||||
is quietly wrong:
|
||||
|
||||
```bash
|
||||
make merge-driver
|
||||
```
|
||||
|
||||
That points git at `UnityYAMLMerge` inside the Editor bundle (`Contents/Helpers/`, not
|
||||
`Contents/Tools/` — the path in most online guides is wrong for Unity 6 on macOS).
|
||||
|
||||
## 3. Unity from the command line
|
||||
|
||||
### 3.0 Two different tools, both present
|
||||
@@ -174,6 +206,25 @@ NightclubArcadia/Assets/Dialogue/
|
||||
└── Objects/ Chair
|
||||
```
|
||||
|
||||
The writer-facing context sits at the repo root, outside `Assets/` so it gets no `.meta` files:
|
||||
|
||||
```
|
||||
writing/
|
||||
├── README.md session entry point
|
||||
├── STYLE.md register, tone moves, ban list, branching rules ← read first
|
||||
├── YARN-PRIMER.md the one page of syntax a writer needs
|
||||
├── GLOSSARY.md in-world and project vocabulary
|
||||
├── voices/ the eleven skill voices, one sheet each (generated — see §4.7)
|
||||
├── characters/ named NPCs, dialogue-facing
|
||||
├── scenes/ per-scene briefs: intent, beats, checks, constraints
|
||||
└── lore/ candidates.md — the three identity readings and their hard rules
|
||||
```
|
||||
|
||||
Design material deeper than this lives in Obsidian, not the repo:
|
||||
`~/Obsidian-Vaults/obsidian-vault/Projects/Active/NightclubArcadia/`. **`Ground Truth.md` there
|
||||
is the solution document — never copy, quote, or summarise it into this repo**, including into
|
||||
commit messages. The game's premise is that the protagonist's identity never resolves.
|
||||
|
||||
**Dialogue is already plain text in the repo.** It is authored in `.yarn` files, not inside
|
||||
the Unity Editor, and any new `.yarn` file dropped anywhere under `Assets/Dialogue/` is picked
|
||||
up automatically by the `**/*.yarn` glob in the `.yarnproject`. Adding a scene or a character
|
||||
@@ -249,13 +300,41 @@ candidates.json → Tools ▸ Nightclub Arcadia ▸ (CandidateSystemSetup)
|
||||
Those setup scripts also register a `[DidReloadScripts]` callback, so in practice the assets
|
||||
regenerate on script reload too. The JSON is the source of truth either way.
|
||||
|
||||
### 4.6 Code-owned vs writer-owned
|
||||
### 4.6 The voice-sheet pipeline
|
||||
|
||||
The Skill Bible prose used to live as a `\n`-escaped string inside `skill_bible.json`, which no
|
||||
writer could comfortably read or revise. It now lives in `writing/voices/*.md`, and truth flows
|
||||
in opposite directions for the two halves of each sheet:
|
||||
|
||||
```
|
||||
PROSE writing/voices/<id>.md -> skill_bible.json -> Skills/Definitions/*.asset
|
||||
MACHINE skill_bible.json -> the "Machine fields" table in the .md
|
||||
```
|
||||
|
||||
```bash
|
||||
python3 tools/writing/sync_voices.py --check # verify; exit 1 on drift
|
||||
python3 tools/writing/sync_voices.py --to-json # fold edited prose into the bible
|
||||
python3 tools/writing/sync_voices.py --to-md # refresh the machine table from the bible
|
||||
```
|
||||
|
||||
`tools/writing/voicelib.py` does the parsing and guarantees `notes -> dict -> notes` is identity
|
||||
for all eleven skills. `--to-json` on unchanged sheets is byte-identical, so it is safe to run
|
||||
at any time.
|
||||
|
||||
`VoiceSheetSyncTests` (EditMode) enforces the same invariant, so drift fails the build instead
|
||||
of silently shipping a voice that no longer matches the sheet the next scene is written against.
|
||||
It deliberately does not reimplement the markdown parser in C# — it asserts the shipped prose
|
||||
appears verbatim in the sheet, which catches drift in either direction with no second parser to
|
||||
keep in step.
|
||||
|
||||
### 4.7 Code-owned vs writer-owned
|
||||
|
||||
| Writer-owned (edit freely, no Unity) | Code-owned (needs an engineer) |
|
||||
|---|---|
|
||||
| `Assets/Dialogue/**/*.yarn` | `Assets/Scripts/**/*.cs` |
|
||||
| `<<declare>>` lines in `Common.yarn` | `Assets/Editor/**/*.cs` |
|
||||
| `Assets/Skills/skill_bible.json` (prose fields) | Yarn command/function *implementations* |
|
||||
| `writing/**` | `Assets/Scripts/**/*.cs` |
|
||||
| `Assets/Dialogue/**/*.yarn` | `Assets/Editor/**/*.cs` |
|
||||
| `<<declare>>` lines in `Common.yarn` | Yarn command/function *implementations* |
|
||||
| `writing/voices/*.md` (prose → the bible, §4.6) | `Assets/Skills/skill_bible.json` (machine fields) |
|
||||
| `Assets/Candidates/candidates.json` (`status`, `sceneId`, `notes`, `unlockFlag`) | `.asset`, `.prefab`, `.unity`, `.meta` |
|
||||
| `docs/` writing docs | `ProjectSettings/**` |
|
||||
|
||||
@@ -278,11 +357,19 @@ or a branch.** If a writing task requires either, that is a pipeline bug — fil
|
||||
`$self_lean_*` / `$found_*` in any `.yarn` file resolves to a real id in `CandidateDatabase`.
|
||||
It is a tripwire, not a proof.
|
||||
|
||||
### 5.2 One-click in-Editor run
|
||||
### 5.2 Voice-sheet sync
|
||||
|
||||
```bash
|
||||
python3 tools/writing/sync_voices.py --check
|
||||
```
|
||||
|
||||
Seconds, no Unity. Run it after touching `writing/voices/*.md` or `skill_bible.json` (§4.6).
|
||||
|
||||
### 5.3 One-click in-Editor run
|
||||
|
||||
`Tools ▸ Nightclub Arcadia ▸ Run Skill EditMode Tests` (`Assets/Editor/SkillSystemTestRunner.cs`).
|
||||
|
||||
### 5.3 YarnCheck — validate dialogue without Unity ⭐
|
||||
### 5.4 YarnCheck — validate dialogue without Unity ⭐
|
||||
|
||||
`tools/YarnCheck` is a .NET 9 console app that compiles **and plays** the Yarn scripts using
|
||||
the exact Yarn Spinner DLLs shipped in `Packages/dev.yarnspinner.unity/Runtime/DLLs`, so it
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# Nightclub Arcadia — common commands.
|
||||
#
|
||||
# Everything here is documented in CLAUDE.md; this file exists so the exact
|
||||
# invocations live in one place instead of being retyped from memory.
|
||||
|
||||
UNITY_CLI ?= /Users/lennart/.unity/bin/unity
|
||||
UNITY ?= /Applications/Unity/Hub/Editor/6000.5.8f1/Unity.app/Contents/MacOS/Unity
|
||||
PROJECT ?= $(CURDIR)/NightclubArcadia
|
||||
RESULTS ?= $(CURDIR)/.test-results
|
||||
SMARTMERGE ?= /Applications/Unity/Hub/Editor/6000.5.8f1/Unity.app/Contents/Helpers/UnityYAMLMerge
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: help check yarn yarn-play voices voices-sync test test-play build lock clean-results merge-driver
|
||||
|
||||
help: ## Show this help
|
||||
@grep -hE '^[a-z-]+:.*?## ' $(MAKEFILE_LIST) \
|
||||
| awk 'BEGIN {FS = ":.*?## "} {printf " \033[36m%-14s\033[0m %s\n", $$1, $$2}'
|
||||
@echo ""
|
||||
@echo " Unity must be CLOSED for test/build — run 'make lock' to check."
|
||||
|
||||
check: yarn voices test ## Everything a change should pass before commit
|
||||
|
||||
yarn: ## Compile every Yarn script (seconds, no Unity)
|
||||
@cd tools/YarnCheck && DOTNET_CLI_TELEMETRY_OPTOUT=1 dotnet run -- ../../NightclubArcadia/Assets/Dialogue
|
||||
|
||||
yarn-play: ## Play a node: make yarn-play NODE=Bartender_Talk PICKS="2 2 0 0"
|
||||
@cd tools/YarnCheck && DOTNET_CLI_TELEMETRY_OPTOUT=1 \
|
||||
dotnet run -- ../../NightclubArcadia/Assets/Dialogue $(NODE) $(PICKS)
|
||||
|
||||
voices: ## Check writing/voices/*.md against skill_bible.json
|
||||
@python3 tools/writing/sync_voices.py --check
|
||||
|
||||
voices-sync: ## Fold edited voice prose into skill_bible.json
|
||||
@python3 tools/writing/sync_voices.py --to-json
|
||||
|
||||
test: lock ## Run the EditMode suite
|
||||
@mkdir -p $(RESULTS)
|
||||
@$(UNITY_CLI) test $(PROJECT) --no-banner --mode EditMode \
|
||||
--output $(RESULTS)/editmode.xml --timeout 900 || true
|
||||
@python3 tools/ci/report_tests.py $(RESULTS)/editmode.xml
|
||||
|
||||
test-play: lock ## Run the PlayMode suite (none exist yet)
|
||||
@mkdir -p $(RESULTS)
|
||||
@$(UNITY_CLI) test $(PROJECT) --no-banner --mode PlayMode \
|
||||
--output $(RESULTS)/playmode.xml --timeout 900 || true
|
||||
@python3 tools/ci/report_tests.py $(RESULTS)/playmode.xml
|
||||
|
||||
build: lock ## Build a macOS player into build/
|
||||
@$(UNITY_CLI) build $(PROJECT) --no-banner --target StandaloneOSX -o $(CURDIR)/build/NightclubArcadia.app
|
||||
|
||||
lock: ## Fail if the Unity Editor has the project open
|
||||
@if pgrep -fl "Unity.app/Contents/MacOS/Unity" | grep -v AssetImportWorker | grep -q .; then \
|
||||
echo "The Unity Editor is running — close it first (only one instance per project)."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
merge-driver: ## One-time: teach git to merge Unity YAML with UnityYAMLMerge
|
||||
@test -x "$(SMARTMERGE)" || { echo "UnityYAMLMerge not found at $(SMARTMERGE)"; exit 1; }
|
||||
@git config merge.unityyamlmerge.name "Unity SmartMerge"
|
||||
@git config merge.unityyamlmerge.driver "'$(SMARTMERGE)' merge -p --force --fallback none %O %B %A %A"
|
||||
@git config merge.unityyamlmerge.recursive binary
|
||||
@echo "configured: $$(git config merge.unityyamlmerge.name)"
|
||||
|
||||
clean-results: ## Remove local test results
|
||||
@rm -rf $(RESULTS)
|
||||
@@ -1,28 +1,24 @@
|
||||
// SC-101 — The Card at the Desk. Opening candidate hooks.
|
||||
//
|
||||
// Scene files stay thin: set the stage, <<detour>> into hook nodes, return.
|
||||
// Brief, beats, checks and the reasoning behind every rule below:
|
||||
// writing/scenes/sc101-the-card-at-the-desk.md
|
||||
//
|
||||
// Evidence rule: each candidate gets exactly one of each evidence type —
|
||||
// object, testimony, document, intuition. Preserve that balance; do not
|
||||
// stack types so trust becomes an artifact of imbalance.
|
||||
// See Assets/Candidates/candidates.json.
|
||||
// Rules that bind while editing THIS file — all six are deliberate, none is a
|
||||
// leftover. The brief says why; this is the short form so you do not have to
|
||||
// leave the file to avoid breaking it.
|
||||
//
|
||||
// Beat order: hooks fire in sequence from SC101_Desk (STANDING ORDER →
|
||||
// HOUSE POUR → FACEWORK → CONFLUENCE). Each remains an independently authored
|
||||
// node. Never <<if>>-guard a hook on another hook having fired, on any
|
||||
// $self_lean_*, or on skill_rank(...).
|
||||
//
|
||||
// Passive pattern (clue-bearing):
|
||||
// one voice per hook, from the candidate's attached pair;
|
||||
// the line is that character's argument, never a report;
|
||||
// exactly one $self_lean_* write; set $found_<clue_id> alongside it.
|
||||
//
|
||||
// Four-voice exception: this opening uses four voice introductions (one per
|
||||
// pair) against the writing handbook's "cap introductions at three voices"
|
||||
// rule. Deliberate and for SC-101 only — do not "correct" it down to three,
|
||||
// and do not copy it as a new precedent elsewhere.
|
||||
//
|
||||
// Body stays neutral on purpose: no lean, no candidate attachment.
|
||||
// 1. Scene files stay thin: set the stage, <<detour>> into hook nodes, return.
|
||||
// 2. Evidence balance — one object / testimony / document / intuition per
|
||||
// candidate. Never stack types. See Assets/Candidates/candidates.json.
|
||||
// 3. Beat order is fixed: STANDING ORDER -> HOUSE POUR -> FACEWORK ->
|
||||
// CONFLUENCE. Never <<if>>-guard a hook on another hook having fired, on any
|
||||
// $self_lean_*, or on skill_rank(...).
|
||||
// 4. Passive pattern for a clue-bearing hook: one voice, from the candidate's
|
||||
// attached pair; the line is that voice's argument, never a report; exactly
|
||||
// one $self_lean_* write, with $found_<clue_id> set alongside it.
|
||||
// 5. Four voice introductions, against the handbook cap of three. Deliberate,
|
||||
// SC-101 only — one voice per pair. Do not correct it down, do not copy it.
|
||||
// 6. The body stays neutral: no lean, no candidate attachment outside the hooks.
|
||||
|
||||
title: Start
|
||||
position: -17,-276
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3397cd14c28cccf47b097769f7817a19
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 3397cd14c28cccf47b097769f7817a19
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d8da06649314d7498296c53b4a0a77a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 8d8da06649314d7498296c53b4a0a77a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bc688fc4c70b02044b054f994d6e36e6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: bc688fc4c70b02044b054f994d6e36e6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 62e09e1e4aed9424ba218499f11ea644
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 62e09e1e4aed9424ba218499f11ea644
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a725de072e7eb4d449d782a7c86fd0bf
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: a725de072e7eb4d449d782a7c86fd0bf
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5810db7e2f75fd4281a8ace4949bec8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: a5810db7e2f75fd4281a8ace4949bec8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,84 +1,84 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SkyboxLite
|
||||
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _SUNDISK_HIGH_QUALITY
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AtmosphereThickness: 1.05
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _Exposure: 0.98
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SunDisk: 2
|
||||
- _SunSize: 0.103
|
||||
- _SunSizeConvergence: 5.35
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _GroundColor: {r: 0.08627451, g: 0.08235294, b: 0.08235294, a: 1}
|
||||
- _SkyTint: {r: 0.8490566, g: 0.6121904, b: 0.2963688, a: 1}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SkyboxLite
|
||||
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _SUNDISK_HIGH_QUALITY
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AtmosphereThickness: 1.05
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _Exposure: 0.98
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SunDisk: 2
|
||||
- _SunSize: 0.103
|
||||
- _SunSizeConvergence: 5.35
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _GroundColor: {r: 0.08627451, g: 0.08235294, b: 0.08235294, a: 1}
|
||||
- _SkyTint: {r: 0.8490566, g: 0.6121904, b: 0.2963688, a: 1}
|
||||
|
||||
@@ -1,85 +1,85 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SkyboxLiteWarm
|
||||
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _SUNDISK_HIGH_QUALITY
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AtmosphereThickness: 0.5
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _Exposure: 0.7
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SunDisk: 2
|
||||
- _SunSize: 0.05
|
||||
- _SunSizeConvergence: 3.5
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _GroundColor: {r: 0.08627451, g: 0.08235294, b: 0.08235294, a: 1}
|
||||
- _SkyTint: {r: 0.8820755, g: 1, b: 0.9987828, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: SkyboxLiteWarm
|
||||
m_Shader: {fileID: 106, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _SUNDISK_HIGH_QUALITY
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AtmosphereThickness: 0.5
|
||||
- _BumpScale: 1
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _Exposure: 0.7
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SunDisk: 2
|
||||
- _SunSize: 0.05
|
||||
- _SunSizeConvergence: 3.5
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _GroundColor: {r: 0.08627451, g: 0.08235294, b: 0.08235294, a: 1}
|
||||
- _SkyTint: {r: 0.8820755, g: 1, b: 0.9987828, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed5cc06472bb24d419458b6ece5b79eb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: ed5cc06472bb24d419458b6ece5b79eb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93bb3603ed019014a98e7c62df54135e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 93bb3603ed019014a98e7c62df54135e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+97
-97
@@ -1,97 +1,97 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &899428459418414007
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8718778828885884488}
|
||||
- component: {fileID: 3418225732042694151}
|
||||
- component: {fileID: 4043535580645081189}
|
||||
- component: {fileID: 6023149417776915991}
|
||||
m_Layer: 0
|
||||
m_Name: Box_100x100x100_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8718778828885884488
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
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!33 &3418225732042694151
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &4043535580645081189
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &6023149417776915991
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
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}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &899428459418414007
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8718778828885884488}
|
||||
- component: {fileID: 3418225732042694151}
|
||||
- component: {fileID: 4043535580645081189}
|
||||
- component: {fileID: 6023149417776915991}
|
||||
m_Layer: 0
|
||||
m_Name: Box_100x100x100_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8718778828885884488
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
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!33 &3418225732042694151
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &4043535580645081189
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &6023149417776915991
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 899428459418414007}
|
||||
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}
|
||||
|
||||
+97
-97
@@ -1,97 +1,97 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3051928965768018776
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2382810566493446626}
|
||||
- component: {fileID: 1638934234086026823}
|
||||
- component: {fileID: 3556257425134475917}
|
||||
- component: {fileID: 5689917692814982442}
|
||||
m_Layer: 0
|
||||
m_Name: Box_350x200x250_Mesh
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2382810566493446626
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
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!33 &1638934234086026823
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Mesh: {fileID: 7535803439391131454, guid: c6a55ba99e9e99d41b7eef123e311a43, type: 3}
|
||||
--- !u!23 &3556257425134475917
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &5689917692814982442
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 3.4872339, y: 2.5007026, z: 2.0028448}
|
||||
m_Center: {x: 0, y: 0, z: 0.9989877}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &3051928965768018776
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2382810566493446626}
|
||||
- component: {fileID: 1638934234086026823}
|
||||
- component: {fileID: 3556257425134475917}
|
||||
- component: {fileID: 5689917692814982442}
|
||||
m_Layer: 0
|
||||
m_Name: Box_350x200x250_Mesh
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2382810566493446626
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
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!33 &1638934234086026823
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Mesh: {fileID: 7535803439391131454, guid: c6a55ba99e9e99d41b7eef123e311a43, type: 3}
|
||||
--- !u!23 &3556257425134475917
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &5689917692814982442
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3051928965768018776}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 3.4872339, y: 2.5007026, z: 2.0028448}
|
||||
m_Center: {x: 0, y: 0, z: 0.9989877}
|
||||
|
||||
+97
-97
@@ -1,97 +1,97 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2765075023489016845
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3248315488105561783}
|
||||
- component: {fileID: 1926289588026962194}
|
||||
- component: {fileID: 4422386835124225496}
|
||||
- component: {fileID: 3620356314442491057}
|
||||
m_Layer: 0
|
||||
m_Name: Box_350x300x250_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3248315488105561783
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
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!33 &1926289588026962194
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Mesh: {fileID: 7718662893383318277, guid: d2f0da3998423f44594868ffed55c3e6, type: 3}
|
||||
--- !u!23 &4422386835124225496
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &3620356314442491057
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 3.500001, y: 2.500001, z: 3.0000012}
|
||||
m_Center: {x: 0.00000015288805, y: -0.00000008607952, z: 1.5000004}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2765075023489016845
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3248315488105561783}
|
||||
- component: {fileID: 1926289588026962194}
|
||||
- component: {fileID: 4422386835124225496}
|
||||
- component: {fileID: 3620356314442491057}
|
||||
m_Layer: 0
|
||||
m_Name: Box_350x300x250_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3248315488105561783
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
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!33 &1926289588026962194
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Mesh: {fileID: 7718662893383318277, guid: d2f0da3998423f44594868ffed55c3e6, type: 3}
|
||||
--- !u!23 &4422386835124225496
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &3620356314442491057
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2765075023489016845}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 3.500001, y: 2.500001, z: 3.0000012}
|
||||
m_Center: {x: 0.00000015288805, y: -0.00000008607952, z: 1.5000004}
|
||||
|
||||
+3142
-3142
File diff suppressed because it is too large
Load Diff
@@ -1,98 +1,98 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8924170145835402666
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8111781018561290000}
|
||||
- component: {fileID: 5133274882688487605}
|
||||
- component: {fileID: 6978882906433643647}
|
||||
- component: {fileID: 894093325933845257}
|
||||
m_Layer: 0
|
||||
m_Name: Ramp_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8111781018561290000
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_LocalRotation: {x: 0.000000021855694, 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!33 &5133274882688487605
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Mesh: {fileID: -8512782951310809723, guid: 426a2785f8a940049aac2c246661cf09, type: 3}
|
||||
--- !u!23 &6978882906433643647
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &894093325933845257
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -8512782951310809723, guid: 426a2785f8a940049aac2c246661cf09, type: 3}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8924170145835402666
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8111781018561290000}
|
||||
- component: {fileID: 5133274882688487605}
|
||||
- component: {fileID: 6978882906433643647}
|
||||
- component: {fileID: 894093325933845257}
|
||||
m_Layer: 0
|
||||
m_Name: Ramp_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8111781018561290000
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_LocalRotation: {x: 0.000000021855694, 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!33 &5133274882688487605
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Mesh: {fileID: -8512782951310809723, guid: 426a2785f8a940049aac2c246661cf09, type: 3}
|
||||
--- !u!23 &6978882906433643647
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &894093325933845257
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8924170145835402666}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -8512782951310809723, guid: 426a2785f8a940049aac2c246661cf09, type: 3}
|
||||
|
||||
+98
-98
@@ -1,98 +1,98 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1335415992372505392
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1856478557988811146}
|
||||
- component: {fileID: 3345139869004496431}
|
||||
- component: {fileID: 686981140955957989}
|
||||
- component: {fileID: 4055211063494181534}
|
||||
m_Layer: 0
|
||||
m_Name: Stairs_200x100x200_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1856478557988811146
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_LocalRotation: {x: -0, y: 0.0000014603138, 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!33 &3345139869004496431
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Mesh: {fileID: 5495454633994339055, guid: fce3bf5a5b603db45ab0048fb6ab44df, type: 3}
|
||||
--- !u!23 &686981140955957989
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &4055211063494181534
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -1974449766878446227, guid: fce3bf5a5b603db45ab0048fb6ab44df, type: 3}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1335415992372505392
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1856478557988811146}
|
||||
- component: {fileID: 3345139869004496431}
|
||||
- component: {fileID: 686981140955957989}
|
||||
- component: {fileID: 4055211063494181534}
|
||||
m_Layer: 0
|
||||
m_Name: Stairs_200x100x200_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1856478557988811146
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_LocalRotation: {x: -0, y: 0.0000014603138, 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!33 &3345139869004496431
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Mesh: {fileID: 5495454633994339055, guid: fce3bf5a5b603db45ab0048fb6ab44df, type: 3}
|
||||
--- !u!23 &686981140955957989
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &4055211063494181534
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1335415992372505392}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -1974449766878446227, guid: fce3bf5a5b603db45ab0048fb6ab44df, type: 3}
|
||||
|
||||
+98
-98
@@ -1,98 +1,98 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7561066613761435406
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8642225304373351647}
|
||||
- component: {fileID: 5575280121017685403}
|
||||
- component: {fileID: 6264060208083866756}
|
||||
- component: {fileID: 8022073721471710236}
|
||||
m_Layer: 0
|
||||
m_Name: Stairs_650_400_300_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8642225304373351647
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 8.665093, y: 2.1527317, z: 16.125418}
|
||||
m_LocalScale: {x: 1, y: 1.003, z: 0.9774802}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5575280121017685403
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Mesh: {fileID: 5495454633994339055, guid: 7e0223e1d3e1733499accfa5ebffb67e, type: 3}
|
||||
--- !u!23 &6264060208083866756
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &8022073721471710236
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 1
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -1974449766878446227, guid: 7e0223e1d3e1733499accfa5ebffb67e, type: 3}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7561066613761435406
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8642225304373351647}
|
||||
- component: {fileID: 5575280121017685403}
|
||||
- component: {fileID: 6264060208083866756}
|
||||
- component: {fileID: 8022073721471710236}
|
||||
m_Layer: 0
|
||||
m_Name: Stairs_650_400_300_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8642225304373351647
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 8.665093, y: 2.1527317, z: 16.125418}
|
||||
m_LocalScale: {x: 1, y: 1.003, z: 0.9774802}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5575280121017685403
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Mesh: {fileID: 5495454633994339055, guid: 7e0223e1d3e1733499accfa5ebffb67e, type: 3}
|
||||
--- !u!23 &6264060208083866756
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!64 &8022073721471710236
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7561066613761435406}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 1
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: -1974449766878446227, guid: 7e0223e1d3e1733499accfa5ebffb67e, type: 3}
|
||||
|
||||
+2145
-2145
File diff suppressed because it is too large
Load Diff
@@ -1,125 +1,125 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1604908963751126680
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2093637950428003362}
|
||||
- component: {fileID: 3071950872142852999}
|
||||
- component: {fileID: 956227959320364877}
|
||||
- component: {fileID: 4985949235297978144}
|
||||
- component: {fileID: 8456313914433245678}
|
||||
- component: {fileID: 1138964657491743937}
|
||||
m_Layer: 0
|
||||
m_Name: Tunnel_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2093637950428003362
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
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: -90.00001, y: 0, z: 0}
|
||||
--- !u!33 &3071950872142852999
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Mesh: {fileID: 5060444177187149915, guid: f712806514868e54699156ec05dcb749, type: 3}
|
||||
--- !u!23 &956227959320364877
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &4985949235297978144
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 2.502674, y: 6.0000024, z: 0.258326}
|
||||
m_Center: {x: 0, y: 5.4121983e-15, z: 2.3808491}
|
||||
--- !u!65 &8456313914433245678
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.2527809, y: 6.0000024, z: 2.2399507}
|
||||
m_Center: {x: -1.1249466, y: 1.7786642e-15, z: 1.1251621}
|
||||
--- !u!65 &1138964657491743937
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.26525307, y: 6.0000024, z: 2.256102}
|
||||
m_Center: {x: 1.1187105, y: 1.893427e-15, z: 1.1332378}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1604908963751126680
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2093637950428003362}
|
||||
- component: {fileID: 3071950872142852999}
|
||||
- component: {fileID: 956227959320364877}
|
||||
- component: {fileID: 4985949235297978144}
|
||||
- component: {fileID: 8456313914433245678}
|
||||
- component: {fileID: 1138964657491743937}
|
||||
m_Layer: 0
|
||||
m_Name: Tunnel_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2093637950428003362
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
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: -90.00001, y: 0, z: 0}
|
||||
--- !u!33 &3071950872142852999
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Mesh: {fileID: 5060444177187149915, guid: f712806514868e54699156ec05dcb749, type: 3}
|
||||
--- !u!23 &956227959320364877
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 7ab977a21c92388468ee65ad1c0e5a78, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &4985949235297978144
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 2.502674, y: 6.0000024, z: 0.258326}
|
||||
m_Center: {x: 0, y: 5.4121983e-15, z: 2.3808491}
|
||||
--- !u!65 &8456313914433245678
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.2527809, y: 6.0000024, z: 2.2399507}
|
||||
m_Center: {x: -1.1249466, y: 1.7786642e-15, z: 1.1251621}
|
||||
--- !u!65 &1138964657491743937
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1604908963751126680}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.26525307, y: 6.0000024, z: 2.256102}
|
||||
m_Center: {x: 1.1187105, y: 1.893427e-15, z: 1.1332378}
|
||||
|
||||
@@ -1,111 +1,111 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7993119983977949264
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7324705577624711914}
|
||||
- component: {fileID: 5911343394670230863}
|
||||
- component: {fileID: 8497650616581704069}
|
||||
- component: {fileID: 9105854698657379725}
|
||||
- component: {fileID: 1277700310800588604}
|
||||
m_Layer: 0
|
||||
m_Name: Wall_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7324705577624711914
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_LocalRotation: {x: 0.000000021855694, 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!33 &5911343394670230863
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Mesh: {fileID: 6352809919239313146, guid: ff02a0a00ab750f48b09459b1cafd1b8, type: 3}
|
||||
--- !u!23 &8497650616581704069
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &9105854698657379725
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.25, y: 1.0095696, z: 2.9958286}
|
||||
m_Center: {x: 0, y: 0.5047848, z: 1.5020857}
|
||||
--- !u!65 &1277700310800588604
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.25, y: 2.0055175, z: 3.000146}
|
||||
m_Center: {x: 0, y: 1.0027587, z: -1.499927}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7993119983977949264
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7324705577624711914}
|
||||
- component: {fileID: 5911343394670230863}
|
||||
- component: {fileID: 8497650616581704069}
|
||||
- component: {fileID: 9105854698657379725}
|
||||
- component: {fileID: 1277700310800588604}
|
||||
m_Layer: 0
|
||||
m_Name: Wall_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 73
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7324705577624711914
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_LocalRotation: {x: 0.000000021855694, 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!33 &5911343394670230863
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Mesh: {fileID: 6352809919239313146, guid: ff02a0a00ab750f48b09459b1cafd1b8, type: 3}
|
||||
--- !u!23 &8497650616581704069
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: dbf898c9f9c4a2d46aa6336e23caeb61, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 2
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &9105854698657379725
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.25, y: 1.0095696, z: 2.9958286}
|
||||
m_Center: {x: 0, y: 0.5047848, z: 1.5020857}
|
||||
--- !u!65 &1277700310800588604
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7993119983977949264}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 0.25, y: 2.0055175, z: 3.000146}
|
||||
m_Center: {x: 0, y: 1.0027587, z: -1.499927}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4d9eba5f689533f4196b93e67348ada3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 4d9eba5f689533f4196b93e67348ada3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+1178
-1178
File diff suppressed because it is too large
Load Diff
+64
-64
@@ -1,64 +1,64 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||
m_Name: StarterAssetsURPRenderer
|
||||
m_EditorClassIdentifier:
|
||||
debugShaders:
|
||||
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
|
||||
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
|
||||
probeVolumeResources:
|
||||
probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3}
|
||||
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3}
|
||||
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3}
|
||||
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3}
|
||||
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3}
|
||||
probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3}
|
||||
m_RendererFeatures: []
|
||||
m_RendererFeatureMap:
|
||||
m_UseNativeRenderPass: 0
|
||||
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||
shaders:
|
||||
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||
screenSpaceShadowPS: {fileID: 0}
|
||||
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
|
||||
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
|
||||
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3}
|
||||
m_AssetVersion: 2
|
||||
m_OpaqueLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_TransparentLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_DefaultStencilState:
|
||||
overrideStencilState: 0
|
||||
stencilReference: 0
|
||||
stencilCompareFunction: 8
|
||||
passOperation: 2
|
||||
failOperation: 0
|
||||
zFailOperation: 0
|
||||
m_ShadowTransparentReceive: 1
|
||||
m_RenderingMode: 0
|
||||
m_DepthPrimingMode: 0
|
||||
m_CopyDepthMode: 0
|
||||
m_AccurateGbufferNormals: 0
|
||||
m_IntermediateTextureMode: 1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||
m_Name: StarterAssetsURPRenderer
|
||||
m_EditorClassIdentifier:
|
||||
debugShaders:
|
||||
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
|
||||
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
|
||||
probeVolumeResources:
|
||||
probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3}
|
||||
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3}
|
||||
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3}
|
||||
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3}
|
||||
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3}
|
||||
probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3}
|
||||
m_RendererFeatures: []
|
||||
m_RendererFeatureMap:
|
||||
m_UseNativeRenderPass: 0
|
||||
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||
shaders:
|
||||
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||
screenSpaceShadowPS: {fileID: 0}
|
||||
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
|
||||
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
|
||||
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3}
|
||||
m_AssetVersion: 2
|
||||
m_OpaqueLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_TransparentLayerMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_DefaultStencilState:
|
||||
overrideStencilState: 0
|
||||
stencilReference: 0
|
||||
stencilCompareFunction: 8
|
||||
passOperation: 2
|
||||
failOperation: 0
|
||||
zFailOperation: 0
|
||||
m_ShadowTransparentReceive: 1
|
||||
m_RenderingMode: 0
|
||||
m_DepthPrimingMode: 0
|
||||
m_CopyDepthMode: 0
|
||||
m_AccurateGbufferNormals: 0
|
||||
m_IntermediateTextureMode: 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48c9acd554a28814b922162e3fa889b0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 48c9acd554a28814b922162e3fa889b0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,387 +1,387 @@
|
||||
{
|
||||
"name": "StarterAssets",
|
||||
"maps": [
|
||||
{
|
||||
"name": "Player",
|
||||
"id": "f62a4b92-ef5e-4175-8f4c-c9075429d32c",
|
||||
"actions": [
|
||||
{
|
||||
"name": "Move",
|
||||
"type": "Value",
|
||||
"id": "6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Look",
|
||||
"type": "Value",
|
||||
"id": "2690c379-f54d-45be-a724-414123833eb4",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Jump",
|
||||
"type": "Button",
|
||||
"id": "8c4abdf8-4099-493a-aa1a-129acec7c3df",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Sprint",
|
||||
"type": "PassThrough",
|
||||
"id": "980e881e-182c-404c-8cbf-3d09fdb48fef",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Menu",
|
||||
"type": "Button",
|
||||
"id": "e81d9782-4d9d-4a8b-b5a3-bc2f31e1cdcc",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Point",
|
||||
"type": "PassThrough",
|
||||
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Click",
|
||||
"type": "Button",
|
||||
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "CameraPan",
|
||||
"type": "Button",
|
||||
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "PointerDelta",
|
||||
"type": "PassThrough",
|
||||
"id": "d4e5f6a7-b8c9-0123-def0-234567890123",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
{
|
||||
"name": "WASD",
|
||||
"id": "b7594ddb-26c9-4ba2-bd5a-901468929edc",
|
||||
"path": "2DVector(mode=1)",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "Move",
|
||||
"isComposite": true,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "up",
|
||||
"id": "2063a8b5-6a45-43de-851b-65f3d46e7b58",
|
||||
"path": "<Keyboard>/w",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "down",
|
||||
"id": "64e4d037-32e1-4fb9-80e4-fc7330404dfe",
|
||||
"path": "<Keyboard>/s",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "left",
|
||||
"id": "0fce8b11-5eab-4e4e-a741-b732e7b20873",
|
||||
"path": "<Keyboard>/a",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "right",
|
||||
"id": "7bdda0d6-57a8-47c8-8238-8aecf3110e47",
|
||||
"path": "<Keyboard>/d",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "up",
|
||||
"id": "bb94b405-58d3-4998-8535-d705c1218a98",
|
||||
"path": "<Keyboard>/upArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "down",
|
||||
"id": "929d9071-7dd0-4368-9743-6793bb98087e",
|
||||
"path": "<Keyboard>/downArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "left",
|
||||
"id": "28abadba-06ff-4d37-bb70-af2f1e35a3b9",
|
||||
"path": "<Keyboard>/leftArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "right",
|
||||
"id": "45f115b6-9b4f-4ba8-b500-b94c93bf7d7e",
|
||||
"path": "<Keyboard>/rightArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e2f9aa65-db06-4c5b-a2e9-41bc8acb9517",
|
||||
"path": "<Gamepad>/leftStick",
|
||||
"interactions": "",
|
||||
"processors": "StickDeadzone",
|
||||
"groups": "Gamepad",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "ed66cbff-2900-4a62-8896-696503cfcd31",
|
||||
"path": "<Pointer>/delta",
|
||||
"interactions": "",
|
||||
"processors": "InvertVector2(invertX=false),ScaleVector2(x=0.05,y=0.05)",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "d1d171b6-19d8-47a6-ba3a-71b6a8e7b3c0",
|
||||
"path": "<Gamepad>/rightStick",
|
||||
"interactions": "",
|
||||
"processors": "InvertVector2(invertX=false),StickDeadzone,ScaleVector2(x=300,y=300)",
|
||||
"groups": "Gamepad",
|
||||
"action": "Look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "1bd55a0b-761e-4ae4-89ae-8ec127e08a29",
|
||||
"path": "<Keyboard>/space",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Jump",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "9f973413-5e27-4239-acee-38c4a63feeba",
|
||||
"path": "<Gamepad>/buttonSouth",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Jump",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "dc65b89f-9bd3-43fb-92af-d0d87ba5faa4",
|
||||
"path": "<Keyboard>/leftShift",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Sprint",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c8fcd86e-dcfd-4f88-8e93-b638cdbf3320",
|
||||
"path": "<Gamepad>/leftTrigger",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Sprint",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "0f5e00e8-de3a-454f-8338-4348e69ac91a",
|
||||
"path": "<Keyboard>/tab",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Menu",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "8533b9e3-7efc-442a-9d07-8fe1b29a3bf0",
|
||||
"path": "<Gamepad>/start",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Menu",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
|
||||
"path": "<Mouse>/position",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Point",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "f6a7b8c9-d0e1-2345-f012-456789012345",
|
||||
"path": "<Mouse>/leftButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Click",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "a7b8c9d0-e1f2-3456-0123-567890123456",
|
||||
"path": "<Mouse>/middleButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "CameraPan",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "b8c9d0e1-f2a3-4567-1234-678901234567",
|
||||
"path": "<Mouse>/rightButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "CameraPan",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c9d0e1f2-a3b4-5678-2345-789012345678",
|
||||
"path": "<Mouse>/delta",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "PointerDelta",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"controlSchemes": [
|
||||
{
|
||||
"name": "KeyboardMouse",
|
||||
"bindingGroup": "KeyboardMouse",
|
||||
"devices": [
|
||||
{
|
||||
"devicePath": "<Keyboard>",
|
||||
"isOptional": false,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<Mouse>",
|
||||
"isOptional": false,
|
||||
"isOR": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Gamepad",
|
||||
"bindingGroup": "Gamepad",
|
||||
"devices": [
|
||||
{
|
||||
"devicePath": "<Gamepad>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<XInputController>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<DualShockGamepad>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Xbox Controller",
|
||||
"bindingGroup": "Xbox Controller",
|
||||
"devices": []
|
||||
},
|
||||
{
|
||||
"name": "PS4 Controller",
|
||||
"bindingGroup": "PS4 Controller",
|
||||
"devices": []
|
||||
}
|
||||
]
|
||||
{
|
||||
"name": "StarterAssets",
|
||||
"maps": [
|
||||
{
|
||||
"name": "Player",
|
||||
"id": "f62a4b92-ef5e-4175-8f4c-c9075429d32c",
|
||||
"actions": [
|
||||
{
|
||||
"name": "Move",
|
||||
"type": "Value",
|
||||
"id": "6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Look",
|
||||
"type": "Value",
|
||||
"id": "2690c379-f54d-45be-a724-414123833eb4",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Jump",
|
||||
"type": "Button",
|
||||
"id": "8c4abdf8-4099-493a-aa1a-129acec7c3df",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Sprint",
|
||||
"type": "PassThrough",
|
||||
"id": "980e881e-182c-404c-8cbf-3d09fdb48fef",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Menu",
|
||||
"type": "Button",
|
||||
"id": "e81d9782-4d9d-4a8b-b5a3-bc2f31e1cdcc",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Point",
|
||||
"type": "PassThrough",
|
||||
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "Click",
|
||||
"type": "Button",
|
||||
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "CameraPan",
|
||||
"type": "Button",
|
||||
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
|
||||
"expectedControlType": "Button",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
},
|
||||
{
|
||||
"name": "PointerDelta",
|
||||
"type": "PassThrough",
|
||||
"id": "d4e5f6a7-b8c9-0123-def0-234567890123",
|
||||
"expectedControlType": "Vector2",
|
||||
"processors": "",
|
||||
"interactions": ""
|
||||
}
|
||||
],
|
||||
"bindings": [
|
||||
{
|
||||
"name": "WASD",
|
||||
"id": "b7594ddb-26c9-4ba2-bd5a-901468929edc",
|
||||
"path": "2DVector(mode=1)",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"action": "Move",
|
||||
"isComposite": true,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "up",
|
||||
"id": "2063a8b5-6a45-43de-851b-65f3d46e7b58",
|
||||
"path": "<Keyboard>/w",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "down",
|
||||
"id": "64e4d037-32e1-4fb9-80e4-fc7330404dfe",
|
||||
"path": "<Keyboard>/s",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "left",
|
||||
"id": "0fce8b11-5eab-4e4e-a741-b732e7b20873",
|
||||
"path": "<Keyboard>/a",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "right",
|
||||
"id": "7bdda0d6-57a8-47c8-8238-8aecf3110e47",
|
||||
"path": "<Keyboard>/d",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "up",
|
||||
"id": "bb94b405-58d3-4998-8535-d705c1218a98",
|
||||
"path": "<Keyboard>/upArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "down",
|
||||
"id": "929d9071-7dd0-4368-9743-6793bb98087e",
|
||||
"path": "<Keyboard>/downArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "left",
|
||||
"id": "28abadba-06ff-4d37-bb70-af2f1e35a3b9",
|
||||
"path": "<Keyboard>/leftArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "right",
|
||||
"id": "45f115b6-9b4f-4ba8-b500-b94c93bf7d7e",
|
||||
"path": "<Keyboard>/rightArrow",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": true
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e2f9aa65-db06-4c5b-a2e9-41bc8acb9517",
|
||||
"path": "<Gamepad>/leftStick",
|
||||
"interactions": "",
|
||||
"processors": "StickDeadzone",
|
||||
"groups": "Gamepad",
|
||||
"action": "Move",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "ed66cbff-2900-4a62-8896-696503cfcd31",
|
||||
"path": "<Pointer>/delta",
|
||||
"interactions": "",
|
||||
"processors": "InvertVector2(invertX=false),ScaleVector2(x=0.05,y=0.05)",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "d1d171b6-19d8-47a6-ba3a-71b6a8e7b3c0",
|
||||
"path": "<Gamepad>/rightStick",
|
||||
"interactions": "",
|
||||
"processors": "InvertVector2(invertX=false),StickDeadzone,ScaleVector2(x=300,y=300)",
|
||||
"groups": "Gamepad",
|
||||
"action": "Look",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "1bd55a0b-761e-4ae4-89ae-8ec127e08a29",
|
||||
"path": "<Keyboard>/space",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Jump",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "9f973413-5e27-4239-acee-38c4a63feeba",
|
||||
"path": "<Gamepad>/buttonSouth",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Jump",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "dc65b89f-9bd3-43fb-92af-d0d87ba5faa4",
|
||||
"path": "<Keyboard>/leftShift",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Sprint",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c8fcd86e-dcfd-4f88-8e93-b638cdbf3320",
|
||||
"path": "<Gamepad>/leftTrigger",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Sprint",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "0f5e00e8-de3a-454f-8338-4348e69ac91a",
|
||||
"path": "<Keyboard>/tab",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Menu",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "8533b9e3-7efc-442a-9d07-8fe1b29a3bf0",
|
||||
"path": "<Gamepad>/start",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "Gamepad",
|
||||
"action": "Menu",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
|
||||
"path": "<Mouse>/position",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Point",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "f6a7b8c9-d0e1-2345-f012-456789012345",
|
||||
"path": "<Mouse>/leftButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "Click",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "a7b8c9d0-e1f2-3456-0123-567890123456",
|
||||
"path": "<Mouse>/middleButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "CameraPan",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "b8c9d0e1-f2a3-4567-1234-678901234567",
|
||||
"path": "<Mouse>/rightButton",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "CameraPan",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c9d0e1f2-a3b4-5678-2345-789012345678",
|
||||
"path": "<Mouse>/delta",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "KeyboardMouse",
|
||||
"action": "PointerDelta",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"controlSchemes": [
|
||||
{
|
||||
"name": "KeyboardMouse",
|
||||
"bindingGroup": "KeyboardMouse",
|
||||
"devices": [
|
||||
{
|
||||
"devicePath": "<Keyboard>",
|
||||
"isOptional": false,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<Mouse>",
|
||||
"isOptional": false,
|
||||
"isOR": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Gamepad",
|
||||
"bindingGroup": "Gamepad",
|
||||
"devices": [
|
||||
{
|
||||
"devicePath": "<Gamepad>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<XInputController>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
},
|
||||
{
|
||||
"devicePath": "<DualShockGamepad>",
|
||||
"isOptional": true,
|
||||
"isOR": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Xbox Controller",
|
||||
"bindingGroup": "Xbox Controller",
|
||||
"devices": []
|
||||
},
|
||||
{
|
||||
"name": "PS4 Controller",
|
||||
"bindingGroup": "PS4 Controller",
|
||||
"devices": []
|
||||
}
|
||||
]
|
||||
}
|
||||
+26
-26
@@ -1,26 +1,26 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c46f07b5ed07e4e92aa78254188d3d10, type: 3}
|
||||
m_Name: StarterAssets.inputsettings
|
||||
m_EditorClassIdentifier:
|
||||
m_SupportedDevices: []
|
||||
m_UpdateMode: 1
|
||||
m_CompensateForScreenOrientation: 0
|
||||
m_FilterNoiseOnCurrent: 0
|
||||
m_DefaultDeadzoneMin: 0.125
|
||||
m_DefaultDeadzoneMax: 0.925
|
||||
m_DefaultButtonPressPoint: 0.5
|
||||
m_DefaultTapTime: 0.2
|
||||
m_DefaultSlowTapTime: 0.5
|
||||
m_DefaultHoldTime: 0.4
|
||||
m_TapRadius: 5
|
||||
m_MultiTapDelayTime: 0.75
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c46f07b5ed07e4e92aa78254188d3d10, type: 3}
|
||||
m_Name: StarterAssets.inputsettings
|
||||
m_EditorClassIdentifier:
|
||||
m_SupportedDevices: []
|
||||
m_UpdateMode: 1
|
||||
m_CompensateForScreenOrientation: 0
|
||||
m_FilterNoiseOnCurrent: 0
|
||||
m_DefaultDeadzoneMin: 0.125
|
||||
m_DefaultDeadzoneMax: 0.925
|
||||
m_DefaultButtonPressPoint: 0.5
|
||||
m_DefaultTapTime: 0.2
|
||||
m_DefaultSlowTapTime: 0.5
|
||||
m_DefaultHoldTime: 0.4
|
||||
m_TapRadius: 5
|
||||
m_MultiTapDelayTime: 0.75
|
||||
|
||||
@@ -1,80 +1,80 @@
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
public class StarterAssetsInputs : MonoBehaviour
|
||||
{
|
||||
[Header("Character Input Values")]
|
||||
public Vector2 move;
|
||||
public Vector2 look;
|
||||
public bool jump;
|
||||
public bool sprint;
|
||||
|
||||
[Header("Movement Settings")]
|
||||
public bool analogMovement;
|
||||
|
||||
[Header("Mouse Cursor Settings")]
|
||||
public bool cursorLocked = true;
|
||||
public bool cursorInputForLook = true;
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
public void OnMove(InputValue value)
|
||||
{
|
||||
MoveInput(value.Get<Vector2>());
|
||||
}
|
||||
|
||||
public void OnLook(InputValue value)
|
||||
{
|
||||
if(cursorInputForLook)
|
||||
{
|
||||
LookInput(value.Get<Vector2>());
|
||||
}
|
||||
}
|
||||
|
||||
public void OnJump(InputValue value)
|
||||
{
|
||||
JumpInput(value.isPressed);
|
||||
}
|
||||
|
||||
public void OnSprint(InputValue value)
|
||||
{
|
||||
SprintInput(value.isPressed);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
public void MoveInput(Vector2 newMoveDirection)
|
||||
{
|
||||
move = newMoveDirection;
|
||||
}
|
||||
|
||||
public void LookInput(Vector2 newLookDirection)
|
||||
{
|
||||
look = newLookDirection;
|
||||
}
|
||||
|
||||
public void JumpInput(bool newJumpState)
|
||||
{
|
||||
jump = newJumpState;
|
||||
}
|
||||
|
||||
public void SprintInput(bool newSprintState)
|
||||
{
|
||||
sprint = newSprintState;
|
||||
}
|
||||
|
||||
private void OnApplicationFocus(bool hasFocus)
|
||||
{
|
||||
SetCursorState(cursorLocked);
|
||||
}
|
||||
|
||||
private void SetCursorState(bool newState)
|
||||
{
|
||||
Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;
|
||||
}
|
||||
}
|
||||
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
public class StarterAssetsInputs : MonoBehaviour
|
||||
{
|
||||
[Header("Character Input Values")]
|
||||
public Vector2 move;
|
||||
public Vector2 look;
|
||||
public bool jump;
|
||||
public bool sprint;
|
||||
|
||||
[Header("Movement Settings")]
|
||||
public bool analogMovement;
|
||||
|
||||
[Header("Mouse Cursor Settings")]
|
||||
public bool cursorLocked = true;
|
||||
public bool cursorInputForLook = true;
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
public void OnMove(InputValue value)
|
||||
{
|
||||
MoveInput(value.Get<Vector2>());
|
||||
}
|
||||
|
||||
public void OnLook(InputValue value)
|
||||
{
|
||||
if(cursorInputForLook)
|
||||
{
|
||||
LookInput(value.Get<Vector2>());
|
||||
}
|
||||
}
|
||||
|
||||
public void OnJump(InputValue value)
|
||||
{
|
||||
JumpInput(value.isPressed);
|
||||
}
|
||||
|
||||
public void OnSprint(InputValue value)
|
||||
{
|
||||
SprintInput(value.isPressed);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
public void MoveInput(Vector2 newMoveDirection)
|
||||
{
|
||||
move = newMoveDirection;
|
||||
}
|
||||
|
||||
public void LookInput(Vector2 newLookDirection)
|
||||
{
|
||||
look = newLookDirection;
|
||||
}
|
||||
|
||||
public void JumpInput(bool newJumpState)
|
||||
{
|
||||
jump = newJumpState;
|
||||
}
|
||||
|
||||
public void SprintInput(bool newSprintState)
|
||||
{
|
||||
sprint = newSprintState;
|
||||
}
|
||||
|
||||
private void OnApplicationFocus(bool hasFocus)
|
||||
{
|
||||
SetCursorState(cursorLocked);
|
||||
}
|
||||
|
||||
private void SetCursorState(bool newState)
|
||||
{
|
||||
Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14344c134ca94dc42887027aebcf24a5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 14344c134ca94dc42887027aebcf24a5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49852dd85b2de7b4997a61317937f2e1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 49852dd85b2de7b4997a61317937f2e1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ac91ba6d254abc4c98c1a8868673b28
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 6ac91ba6d254abc4c98c1a8868673b28
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+728
-728
File diff suppressed because it is too large
Load Diff
+724
-724
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c89b887ca267db84f895ccd75713a923
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: c89b887ca267db84f895ccd75713a923
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+87
-87
@@ -1,87 +1,87 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1992104595683069851
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8063073397250431797}
|
||||
- component: {fileID: 5148107578835001787}
|
||||
- component: {fileID: 8279798545678494202}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8063073397250431797
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -799.99994, y: -449.99997, z: 0}
|
||||
m_LocalScale: {x: 0.83333325, y: 0.83333325, z: 0.83333325}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &5148107578835001787
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!114 &8279798545678494202
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_MoveRepeatDelay: 0.5
|
||||
m_MoveRepeatRate: 0.1
|
||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_DeselectOnBackgroundClick: 1
|
||||
m_PointerBehavior: 0
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1992104595683069851
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8063073397250431797}
|
||||
- component: {fileID: 5148107578835001787}
|
||||
- component: {fileID: 8279798545678494202}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8063073397250431797
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -799.99994, y: -449.99997, z: 0}
|
||||
m_LocalScale: {x: 0.83333325, y: 0.83333325, z: 0.83333325}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &5148107578835001787
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!114 &8279798545678494202
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1992104595683069851}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_MoveRepeatDelay: 0.5
|
||||
m_MoveRepeatRate: 0.1
|
||||
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018,
|
||||
type: 3}
|
||||
m_DeselectOnBackgroundClick: 1
|
||||
m_PointerBehavior: 0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f242e43338822940a6223675e92f05d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 7f242e43338822940a6223675e92f05d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+229
-229
@@ -1,229 +1,229 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4091757288130996202
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8892224244125084019}
|
||||
- component: {fileID: 4087890128900500515}
|
||||
- component: {fileID: 2478905580774955251}
|
||||
- component: {fileID: 998461505230474078}
|
||||
- component: {fileID: 413722335}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8892224244125084019
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.6, y: 0.6, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 5282399414295180930}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -582, y: 327.5}
|
||||
m_SizeDelta: {x: 200, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4087890128900500515
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2478905580774955251
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &998461505230474078
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 0
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 2478905580774955251}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &413722335
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 448cd6d8e2f2cb04096e777d99974bc4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
buttonStateOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualJumpInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
buttonClickOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &4525221819527958844
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5282399414295180930}
|
||||
- component: {fileID: 8274542354720177529}
|
||||
- component: {fileID: 6604053163029732620}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5282399414295180930
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
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: 8892224244125084019}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8274542354720177529
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6604053163029732620
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4091757288130996202
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8892224244125084019}
|
||||
- component: {fileID: 4087890128900500515}
|
||||
- component: {fileID: 2478905580774955251}
|
||||
- component: {fileID: 998461505230474078}
|
||||
- component: {fileID: 413722335}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8892224244125084019
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.6, y: 0.6, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 5282399414295180930}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 0}
|
||||
m_AnchoredPosition: {x: -582, y: 327.5}
|
||||
m_SizeDelta: {x: 200, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4087890128900500515
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2478905580774955251
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &998461505230474078
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 0
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 2478905580774955251}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!114 &413722335
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4091757288130996202}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 448cd6d8e2f2cb04096e777d99974bc4, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
buttonStateOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualJumpInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
buttonClickOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &4525221819527958844
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5282399414295180930}
|
||||
- component: {fileID: 8274542354720177529}
|
||||
- component: {fileID: 6604053163029732620}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5282399414295180930
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
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: 8892224244125084019}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8274542354720177529
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6604053163029732620
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4525221819527958844}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
|
||||
+263
-263
@@ -1,263 +1,263 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1480850142
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1480850143}
|
||||
- component: {fileID: 1480850145}
|
||||
- component: {fileID: 1480850144}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1480850143
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
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: 3199668076469712368}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 70, y: 70}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1480850145
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1480850144
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: ff7bfa7addf40784d86f62b8e4a034a6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1423390416140222447
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1407806550736918862}
|
||||
- component: {fileID: 5566472052310511190}
|
||||
- component: {fileID: 2976711156707159110}
|
||||
- component: {fileID: 191938513}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_Joystick
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1407806550736918862
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
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: 3199668076469712368}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 350, y: 350}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5566472052310511190
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2976711156707159110
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 90ded0611e490aa4ba6961afbfc2280d, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &191938513
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f2cb8c4d669392748bb924209de33b85, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
containerRect: {fileID: 1407806550736918862}
|
||||
handleRect: {fileID: 3199668076469712368}
|
||||
joystickRange: 100
|
||||
magnitudeMultiplier: 1
|
||||
invertXOutputValue: 0
|
||||
invertYOutputValue: 0
|
||||
joystickOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualMoveInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!1 &3199668076469712371
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3199668076469712368}
|
||||
- component: {fileID: 3199668076469712374}
|
||||
- component: {fileID: 3199668076469712369}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3199668076469712368
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
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: 1480850143}
|
||||
m_Father: {fileID: 1407806550736918862}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 130, y: 130}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3199668076469712374
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3199668076469712369
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1480850142
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1480850143}
|
||||
- component: {fileID: 1480850145}
|
||||
- component: {fileID: 1480850144}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1480850143
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
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: 3199668076469712368}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 70, y: 70}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1480850145
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1480850144
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1480850142}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: ff7bfa7addf40784d86f62b8e4a034a6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &1423390416140222447
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1407806550736918862}
|
||||
- component: {fileID: 5566472052310511190}
|
||||
- component: {fileID: 2976711156707159110}
|
||||
- component: {fileID: 191938513}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_Joystick
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1407806550736918862
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
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: 3199668076469712368}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 350, y: 350}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5566472052310511190
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &2976711156707159110
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 90ded0611e490aa4ba6961afbfc2280d, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &191938513
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1423390416140222447}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f2cb8c4d669392748bb924209de33b85, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
containerRect: {fileID: 1407806550736918862}
|
||||
handleRect: {fileID: 3199668076469712368}
|
||||
joystickRange: 100
|
||||
magnitudeMultiplier: 1
|
||||
invertXOutputValue: 0
|
||||
invertYOutputValue: 0
|
||||
joystickOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualMoveInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!1 &3199668076469712371
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3199668076469712368}
|
||||
- component: {fileID: 3199668076469712374}
|
||||
- component: {fileID: 3199668076469712369}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3199668076469712368
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
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: 1480850143}
|
||||
m_Father: {fileID: 1407806550736918862}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 130, y: 130}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3199668076469712374
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3199668076469712369
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3199668076469712371}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
|
||||
+263
-263
@@ -1,263 +1,263 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1837564145867584781
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3500080046422971095}
|
||||
- component: {fileID: 1681218170225375998}
|
||||
- component: {fileID: 1495516281102152583}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3500080046422971095
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.6, y: 0.6, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4767772227758557155}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1681218170225375998
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1495516281102152583
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: ff7bfa7addf40784d86f62b8e4a034a6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &4475312012745311023
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4475312012745311020}
|
||||
- component: {fileID: 4475312012745310994}
|
||||
- component: {fileID: 4767772227563435449}
|
||||
- component: {fileID: 4767772227563435448}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_TouchZone
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4475312012745311020
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
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: 4767772227758557155}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 639.4351, y: 389.6286}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4475312012745310994
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4767772227563435449
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.18431373}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &4767772227563435448
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 65870f34fef70aa44b0f562cfc810220, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
containerRect: {fileID: 4475312012745311020}
|
||||
handleRect: {fileID: 4767772227758557155}
|
||||
clampToMagnitude: 1
|
||||
magnitudeMultiplier: 1
|
||||
invertXOutputValue: 0
|
||||
invertYOutputValue: 0
|
||||
touchZoneOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualMoveInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!1 &4767772227758557154
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4767772227758557155}
|
||||
- component: {fileID: 4767772227758556957}
|
||||
- component: {fileID: 4767772227758556956}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4767772227758557155
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
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: 3500080046422971095}
|
||||
m_Father: {fileID: 4475312012745311020}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4767772227758556957
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4767772227758556956
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1837564145867584781
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3500080046422971095}
|
||||
- component: {fileID: 1681218170225375998}
|
||||
- component: {fileID: 1495516281102152583}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Icon
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3500080046422971095
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.6, y: 0.6, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4767772227758557155}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1681218170225375998
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1495516281102152583
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1837564145867584781}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: ff7bfa7addf40784d86f62b8e4a034a6, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &4475312012745311023
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4475312012745311020}
|
||||
- component: {fileID: 4475312012745310994}
|
||||
- component: {fileID: 4767772227563435449}
|
||||
- component: {fileID: 4767772227563435448}
|
||||
m_Layer: 5
|
||||
m_Name: UI_Virtual_TouchZone
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4475312012745311020
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
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: 4767772227758557155}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 639.4351, y: 389.6286}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4475312012745310994
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4767772227563435449
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0.18431373}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &4767772227563435448
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4475312012745311023}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 65870f34fef70aa44b0f562cfc810220, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
containerRect: {fileID: 4475312012745311020}
|
||||
handleRect: {fileID: 4767772227758557155}
|
||||
clampToMagnitude: 1
|
||||
magnitudeMultiplier: 1
|
||||
invertXOutputValue: 0
|
||||
invertYOutputValue: 0
|
||||
touchZoneOutputEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 0}
|
||||
m_TargetAssemblyTypeName: StarterAssets.UICanvasControllerInput, Assembly-CSharp
|
||||
m_MethodName: VirtualMoveInput
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!1 &4767772227758557154
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4767772227758557155}
|
||||
- component: {fileID: 4767772227758556957}
|
||||
- component: {fileID: 4767772227758556956}
|
||||
m_Layer: 5
|
||||
m_Name: Image_Handle
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4767772227758557155
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
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: 3500080046422971095}
|
||||
m_Father: {fileID: 4475312012745311020}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 50, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4767772227758556957
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4767772227758556956
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4767772227758557154}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.78431374}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b74c31d447d2f5d41a61081bdf5e7126, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b0e507958fc3a940b3afabb02fdb2cc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 7b0e507958fc3a940b3afabb02fdb2cc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0777899404b4b2b4696f1032f3231697
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 0777899404b4b2b4696f1032f3231697
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+33
-33
@@ -1,33 +1,33 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
public class UICanvasControllerInput : MonoBehaviour
|
||||
{
|
||||
|
||||
[Header("Output")]
|
||||
public StarterAssetsInputs starterAssetsInputs;
|
||||
|
||||
public void VirtualMoveInput(Vector2 virtualMoveDirection)
|
||||
{
|
||||
starterAssetsInputs.MoveInput(virtualMoveDirection);
|
||||
}
|
||||
|
||||
public void VirtualLookInput(Vector2 virtualLookDirection)
|
||||
{
|
||||
starterAssetsInputs.LookInput(virtualLookDirection);
|
||||
}
|
||||
|
||||
public void VirtualJumpInput(bool virtualJumpState)
|
||||
{
|
||||
starterAssetsInputs.JumpInput(virtualJumpState);
|
||||
}
|
||||
|
||||
public void VirtualSprintInput(bool virtualSprintState)
|
||||
{
|
||||
starterAssetsInputs.SprintInput(virtualSprintState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
using UnityEngine;
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
public class UICanvasControllerInput : MonoBehaviour
|
||||
{
|
||||
|
||||
[Header("Output")]
|
||||
public StarterAssetsInputs starterAssetsInputs;
|
||||
|
||||
public void VirtualMoveInput(Vector2 virtualMoveDirection)
|
||||
{
|
||||
starterAssetsInputs.MoveInput(virtualMoveDirection);
|
||||
}
|
||||
|
||||
public void VirtualLookInput(Vector2 virtualLookDirection)
|
||||
{
|
||||
starterAssetsInputs.LookInput(virtualLookDirection);
|
||||
}
|
||||
|
||||
public void VirtualJumpInput(bool virtualJumpState)
|
||||
{
|
||||
starterAssetsInputs.JumpInput(virtualJumpState);
|
||||
}
|
||||
|
||||
public void VirtualSprintInput(bool virtualSprintState)
|
||||
{
|
||||
starterAssetsInputs.SprintInput(virtualSprintState);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a499c73a35b488449a6f9e9db9e88120
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: a499c73a35b488449a6f9e9db9e88120
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+35
-35
@@ -1,35 +1,35 @@
|
||||
/*
|
||||
The PlayerInput component has an auto-switch control scheme action that allows automatic changing of connected devices.
|
||||
IE: Switching from Keyboard to Gamepad in-game.
|
||||
When built to a mobile phone; in most cases, there is no concept of switching connected devices as controls are typically driven through what is on the device's hardware (Screen, Tilt, etc)
|
||||
In Input System 1.0.2, if the PlayerInput component has Auto Switch enabled, it will search the mobile device for connected devices; which is very costly and results in bad performance.
|
||||
This is fixed in Input System 1.1.
|
||||
For the time-being; this script will disable a PlayerInput's auto switch control schemes; when project is built to mobile.
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
public class MobileDisableAutoSwitchControls : MonoBehaviour
|
||||
{
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM && (UNITY_IOS || UNITY_ANDROID)
|
||||
|
||||
[Header("Target")]
|
||||
public PlayerInput playerInput;
|
||||
|
||||
void Start()
|
||||
{
|
||||
DisableAutoSwitchControls();
|
||||
}
|
||||
|
||||
void DisableAutoSwitchControls()
|
||||
{
|
||||
playerInput.neverAutoSwitchControlSchemes = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
/*
|
||||
The PlayerInput component has an auto-switch control scheme action that allows automatic changing of connected devices.
|
||||
IE: Switching from Keyboard to Gamepad in-game.
|
||||
When built to a mobile phone; in most cases, there is no concept of switching connected devices as controls are typically driven through what is on the device's hardware (Screen, Tilt, etc)
|
||||
In Input System 1.0.2, if the PlayerInput component has Auto Switch enabled, it will search the mobile device for connected devices; which is very costly and results in bad performance.
|
||||
This is fixed in Input System 1.1.
|
||||
For the time-being; this script will disable a PlayerInput's auto switch control schemes; when project is built to mobile.
|
||||
*/
|
||||
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
public class MobileDisableAutoSwitchControls : MonoBehaviour
|
||||
{
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM && (UNITY_IOS || UNITY_ANDROID)
|
||||
|
||||
[Header("Target")]
|
||||
public PlayerInput playerInput;
|
||||
|
||||
void Start()
|
||||
{
|
||||
DisableAutoSwitchControls();
|
||||
}
|
||||
|
||||
void DisableAutoSwitchControls()
|
||||
{
|
||||
playerInput.neverAutoSwitchControlSchemes = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcc364c89270bab40a69cac58f5ae926
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: bcc364c89270bab40a69cac58f5ae926
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+41
-41
@@ -1,41 +1,41 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class BoolEvent : UnityEvent<bool> { }
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent { }
|
||||
|
||||
[Header("Output")]
|
||||
public BoolEvent buttonStateOutputEvent;
|
||||
public Event buttonClickOutputEvent;
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonStateValue(true);
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonStateValue(false);
|
||||
}
|
||||
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonClickEvent();
|
||||
}
|
||||
|
||||
void OutputButtonStateValue(bool buttonState)
|
||||
{
|
||||
buttonStateOutputEvent.Invoke(buttonState);
|
||||
}
|
||||
|
||||
void OutputButtonClickEvent()
|
||||
{
|
||||
buttonClickOutputEvent.Invoke();
|
||||
}
|
||||
|
||||
}
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class BoolEvent : UnityEvent<bool> { }
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent { }
|
||||
|
||||
[Header("Output")]
|
||||
public BoolEvent buttonStateOutputEvent;
|
||||
public Event buttonClickOutputEvent;
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonStateValue(true);
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonStateValue(false);
|
||||
}
|
||||
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
OutputButtonClickEvent();
|
||||
}
|
||||
|
||||
void OutputButtonStateValue(bool buttonState)
|
||||
{
|
||||
buttonStateOutputEvent.Invoke(buttonState);
|
||||
}
|
||||
|
||||
void OutputButtonClickEvent()
|
||||
{
|
||||
buttonClickOutputEvent.Invoke();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+112
-112
@@ -1,113 +1,113 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualJoystick : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent<Vector2> { }
|
||||
|
||||
[Header("Rect References")]
|
||||
public RectTransform containerRect;
|
||||
public RectTransform handleRect;
|
||||
|
||||
[Header("Settings")]
|
||||
public float joystickRange = 50f;
|
||||
public float magnitudeMultiplier = 1f;
|
||||
public bool invertXOutputValue;
|
||||
public bool invertYOutputValue;
|
||||
|
||||
[Header("Output")]
|
||||
public Event joystickOutputEvent;
|
||||
|
||||
void Start()
|
||||
{
|
||||
SetupHandle();
|
||||
}
|
||||
|
||||
private void SetupHandle()
|
||||
{
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
OnDrag(eventData);
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out Vector2 position);
|
||||
|
||||
position = ApplySizeDelta(position);
|
||||
|
||||
Vector2 clampedPosition = ClampValuesToMagnitude(position);
|
||||
|
||||
Vector2 outputPosition = ApplyInversionFilter(position);
|
||||
|
||||
OutputPointerEventValue(outputPosition * magnitudeMultiplier);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(clampedPosition * joystickRange);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
OutputPointerEventValue(Vector2.zero);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
private void OutputPointerEventValue(Vector2 pointerPosition)
|
||||
{
|
||||
joystickOutputEvent.Invoke(pointerPosition);
|
||||
}
|
||||
|
||||
private void UpdateHandleRectPosition(Vector2 newPosition)
|
||||
{
|
||||
handleRect.anchoredPosition = newPosition;
|
||||
}
|
||||
|
||||
Vector2 ApplySizeDelta(Vector2 position)
|
||||
{
|
||||
float x = (position.x/containerRect.sizeDelta.x) * 2.5f;
|
||||
float y = (position.y/containerRect.sizeDelta.y) * 2.5f;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
Vector2 ClampValuesToMagnitude(Vector2 position)
|
||||
{
|
||||
return Vector2.ClampMagnitude(position, 1);
|
||||
}
|
||||
|
||||
Vector2 ApplyInversionFilter(Vector2 position)
|
||||
{
|
||||
if(invertXOutputValue)
|
||||
{
|
||||
position.x = InvertValue(position.x);
|
||||
}
|
||||
|
||||
if(invertYOutputValue)
|
||||
{
|
||||
position.y = InvertValue(position.y);
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
|
||||
float InvertValue(float value)
|
||||
{
|
||||
return -value;
|
||||
}
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualJoystick : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent<Vector2> { }
|
||||
|
||||
[Header("Rect References")]
|
||||
public RectTransform containerRect;
|
||||
public RectTransform handleRect;
|
||||
|
||||
[Header("Settings")]
|
||||
public float joystickRange = 50f;
|
||||
public float magnitudeMultiplier = 1f;
|
||||
public bool invertXOutputValue;
|
||||
public bool invertYOutputValue;
|
||||
|
||||
[Header("Output")]
|
||||
public Event joystickOutputEvent;
|
||||
|
||||
void Start()
|
||||
{
|
||||
SetupHandle();
|
||||
}
|
||||
|
||||
private void SetupHandle()
|
||||
{
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
OnDrag(eventData);
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out Vector2 position);
|
||||
|
||||
position = ApplySizeDelta(position);
|
||||
|
||||
Vector2 clampedPosition = ClampValuesToMagnitude(position);
|
||||
|
||||
Vector2 outputPosition = ApplyInversionFilter(position);
|
||||
|
||||
OutputPointerEventValue(outputPosition * magnitudeMultiplier);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(clampedPosition * joystickRange);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
OutputPointerEventValue(Vector2.zero);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
private void OutputPointerEventValue(Vector2 pointerPosition)
|
||||
{
|
||||
joystickOutputEvent.Invoke(pointerPosition);
|
||||
}
|
||||
|
||||
private void UpdateHandleRectPosition(Vector2 newPosition)
|
||||
{
|
||||
handleRect.anchoredPosition = newPosition;
|
||||
}
|
||||
|
||||
Vector2 ApplySizeDelta(Vector2 position)
|
||||
{
|
||||
float x = (position.x/containerRect.sizeDelta.x) * 2.5f;
|
||||
float y = (position.y/containerRect.sizeDelta.y) * 2.5f;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
Vector2 ClampValuesToMagnitude(Vector2 position)
|
||||
{
|
||||
return Vector2.ClampMagnitude(position, 1);
|
||||
}
|
||||
|
||||
Vector2 ApplyInversionFilter(Vector2 position)
|
||||
{
|
||||
if(invertXOutputValue)
|
||||
{
|
||||
position.x = InvertValue(position.x);
|
||||
}
|
||||
|
||||
if(invertYOutputValue)
|
||||
{
|
||||
position.y = InvertValue(position.y);
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
|
||||
float InvertValue(float value)
|
||||
{
|
||||
return -value;
|
||||
}
|
||||
|
||||
}
|
||||
+125
-125
@@ -1,125 +1,125 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualTouchZone : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent<Vector2> { }
|
||||
|
||||
[Header("Rect References")]
|
||||
public RectTransform containerRect;
|
||||
public RectTransform handleRect;
|
||||
|
||||
[Header("Settings")]
|
||||
public bool clampToMagnitude;
|
||||
public float magnitudeMultiplier = 1f;
|
||||
public bool invertXOutputValue;
|
||||
public bool invertYOutputValue;
|
||||
|
||||
//Stored Pointer Values
|
||||
private Vector2 pointerDownPosition;
|
||||
private Vector2 currentPointerPosition;
|
||||
|
||||
[Header("Output")]
|
||||
public Event touchZoneOutputEvent;
|
||||
|
||||
void Start()
|
||||
{
|
||||
SetupHandle();
|
||||
}
|
||||
|
||||
private void SetupHandle()
|
||||
{
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out pointerDownPosition);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, true);
|
||||
UpdateHandleRectPosition(pointerDownPosition);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out currentPointerPosition);
|
||||
|
||||
Vector2 positionDelta = GetDeltaBetweenPositions(pointerDownPosition, currentPointerPosition);
|
||||
|
||||
Vector2 clampedPosition = ClampValuesToMagnitude(positionDelta);
|
||||
|
||||
Vector2 outputPosition = ApplyInversionFilter(clampedPosition);
|
||||
|
||||
OutputPointerEventValue(outputPosition * magnitudeMultiplier);
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
pointerDownPosition = Vector2.zero;
|
||||
currentPointerPosition = Vector2.zero;
|
||||
|
||||
OutputPointerEventValue(Vector2.zero);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, false);
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
void OutputPointerEventValue(Vector2 pointerPosition)
|
||||
{
|
||||
touchZoneOutputEvent.Invoke(pointerPosition);
|
||||
}
|
||||
|
||||
void UpdateHandleRectPosition(Vector2 newPosition)
|
||||
{
|
||||
handleRect.anchoredPosition = newPosition;
|
||||
}
|
||||
|
||||
void SetObjectActiveState(GameObject targetObject, bool newState)
|
||||
{
|
||||
targetObject.SetActive(newState);
|
||||
}
|
||||
|
||||
Vector2 GetDeltaBetweenPositions(Vector2 firstPosition, Vector2 secondPosition)
|
||||
{
|
||||
return secondPosition - firstPosition;
|
||||
}
|
||||
|
||||
Vector2 ClampValuesToMagnitude(Vector2 position)
|
||||
{
|
||||
return Vector2.ClampMagnitude(position, 1);
|
||||
}
|
||||
|
||||
Vector2 ApplyInversionFilter(Vector2 position)
|
||||
{
|
||||
if(invertXOutputValue)
|
||||
{
|
||||
position.x = InvertValue(position.x);
|
||||
}
|
||||
|
||||
if(invertYOutputValue)
|
||||
{
|
||||
position.y = InvertValue(position.y);
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
|
||||
float InvertValue(float value)
|
||||
{
|
||||
return -value;
|
||||
}
|
||||
|
||||
}
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class UIVirtualTouchZone : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
|
||||
{
|
||||
[System.Serializable]
|
||||
public class Event : UnityEvent<Vector2> { }
|
||||
|
||||
[Header("Rect References")]
|
||||
public RectTransform containerRect;
|
||||
public RectTransform handleRect;
|
||||
|
||||
[Header("Settings")]
|
||||
public bool clampToMagnitude;
|
||||
public float magnitudeMultiplier = 1f;
|
||||
public bool invertXOutputValue;
|
||||
public bool invertYOutputValue;
|
||||
|
||||
//Stored Pointer Values
|
||||
private Vector2 pointerDownPosition;
|
||||
private Vector2 currentPointerPosition;
|
||||
|
||||
[Header("Output")]
|
||||
public Event touchZoneOutputEvent;
|
||||
|
||||
void Start()
|
||||
{
|
||||
SetupHandle();
|
||||
}
|
||||
|
||||
private void SetupHandle()
|
||||
{
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out pointerDownPosition);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, true);
|
||||
UpdateHandleRectPosition(pointerDownPosition);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDrag(PointerEventData eventData)
|
||||
{
|
||||
|
||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(containerRect, eventData.position, eventData.pressEventCamera, out currentPointerPosition);
|
||||
|
||||
Vector2 positionDelta = GetDeltaBetweenPositions(pointerDownPosition, currentPointerPosition);
|
||||
|
||||
Vector2 clampedPosition = ClampValuesToMagnitude(positionDelta);
|
||||
|
||||
Vector2 outputPosition = ApplyInversionFilter(clampedPosition);
|
||||
|
||||
OutputPointerEventValue(outputPosition * magnitudeMultiplier);
|
||||
}
|
||||
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
pointerDownPosition = Vector2.zero;
|
||||
currentPointerPosition = Vector2.zero;
|
||||
|
||||
OutputPointerEventValue(Vector2.zero);
|
||||
|
||||
if(handleRect)
|
||||
{
|
||||
SetObjectActiveState(handleRect.gameObject, false);
|
||||
UpdateHandleRectPosition(Vector2.zero);
|
||||
}
|
||||
}
|
||||
|
||||
void OutputPointerEventValue(Vector2 pointerPosition)
|
||||
{
|
||||
touchZoneOutputEvent.Invoke(pointerPosition);
|
||||
}
|
||||
|
||||
void UpdateHandleRectPosition(Vector2 newPosition)
|
||||
{
|
||||
handleRect.anchoredPosition = newPosition;
|
||||
}
|
||||
|
||||
void SetObjectActiveState(GameObject targetObject, bool newState)
|
||||
{
|
||||
targetObject.SetActive(newState);
|
||||
}
|
||||
|
||||
Vector2 GetDeltaBetweenPositions(Vector2 firstPosition, Vector2 secondPosition)
|
||||
{
|
||||
return secondPosition - firstPosition;
|
||||
}
|
||||
|
||||
Vector2 ClampValuesToMagnitude(Vector2 position)
|
||||
{
|
||||
return Vector2.ClampMagnitude(position, 1);
|
||||
}
|
||||
|
||||
Vector2 ApplyInversionFilter(Vector2 position)
|
||||
{
|
||||
if(invertXOutputValue)
|
||||
{
|
||||
position.x = InvertValue(position.x);
|
||||
}
|
||||
|
||||
if(invertYOutputValue)
|
||||
{
|
||||
position.y = InvertValue(position.y);
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
|
||||
float InvertValue(float value)
|
||||
{
|
||||
return -value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e7fdf9603bb47074a9b04a3eb60ffcd8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: e7fdf9603bb47074a9b04a3eb60ffcd8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54b90d7f60b179e4e9909cd127aa060d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 54b90d7f60b179e4e9909cd127aa060d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 135db69c43c47ee4e97c7c6b13621056
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 135db69c43c47ee4e97c7c6b13621056
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 478ef75e2d9612043ad9e092df040fea
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 478ef75e2d9612043ad9e092df040fea
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+646
-646
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a0e91532ce93274fb01919ee0dda264
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 8a0e91532ce93274fb01919ee0dda264
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f99c02f4392c29d4dad06bad32b0bfb1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: f99c02f4392c29d4dad06bad32b0bfb1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f99957d857b6314489a45d0556423fd4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: f99957d857b6314489a45d0556423fd4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+8
-8
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f5880d19cc8d48c688d78a6c6d05ec8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 5f5880d19cc8d48c688d78a6c6d05ec8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+82
-82
@@ -1,82 +1,82 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1233149941 &-7586714597313585321
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_05_{-7586714597313585321}
|
||||
m_AudioClip: {fileID: 8300000, guid: 1834ec69586af4bccb2b0595d9065d3e, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-6025000786359728421
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_04_{-6025000786359728421}
|
||||
m_AudioClip: {fileID: 8300000, guid: f6c46c2ca4f624aacabaa487bb4ed6e4, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-4330494011686235080
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_02_{-4330494011686235080}
|
||||
m_AudioClip: {fileID: 8300000, guid: becc44e5c724942ff9db71e50e0cf47f, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-250991000991268778
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_01_{-250991000991268778}
|
||||
m_AudioClip: {fileID: 8300000, guid: 3515527f48a854c658f6654d89c03d44, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Footstep_Concrete
|
||||
m_Volume: -10
|
||||
m_Pitch: 500
|
||||
m_AutomaticTriggerTime: 1
|
||||
m_LoopCount: 1
|
||||
m_VolumeRandomizationRange: {x: -2, y: 2}
|
||||
m_PitchRandomizationRange: {x: 0, y: 500}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: -0.5, y: 0.5}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements:
|
||||
- {fileID: -250991000991268778}
|
||||
- {fileID: -4330494011686235080}
|
||||
- {fileID: 7655602436142396064}
|
||||
- {fileID: -6025000786359728421}
|
||||
- {fileID: -7586714597313585321}
|
||||
m_AvoidRepeatingLast: 0
|
||||
m_PlaybackMode: 2
|
||||
m_TriggerMode: 0
|
||||
m_AutomaticTriggerMode: 0
|
||||
m_LoopMode: 0
|
||||
m_VolumeRandomizationEnabled: 1
|
||||
m_PitchRandomizationEnabled: 1
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 1
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
--- !u!1233149941 &7655602436142396064
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_03_{7655602436142396064}
|
||||
m_AudioClip: {fileID: 8300000, guid: 2751f72ca7b6249dabb2f404db45c29f, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1233149941 &-7586714597313585321
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_05_{-7586714597313585321}
|
||||
m_AudioClip: {fileID: 8300000, guid: 1834ec69586af4bccb2b0595d9065d3e, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-6025000786359728421
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_04_{-6025000786359728421}
|
||||
m_AudioClip: {fileID: 8300000, guid: f6c46c2ca4f624aacabaa487bb4ed6e4, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-4330494011686235080
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_02_{-4330494011686235080}
|
||||
m_AudioClip: {fileID: 8300000, guid: becc44e5c724942ff9db71e50e0cf47f, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-250991000991268778
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_01_{-250991000991268778}
|
||||
m_AudioClip: {fileID: 8300000, guid: 3515527f48a854c658f6654d89c03d44, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Footstep_Concrete
|
||||
m_Volume: -10
|
||||
m_Pitch: 500
|
||||
m_AutomaticTriggerTime: 1
|
||||
m_LoopCount: 1
|
||||
m_VolumeRandomizationRange: {x: -2, y: 2}
|
||||
m_PitchRandomizationRange: {x: 0, y: 500}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: -0.5, y: 0.5}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements:
|
||||
- {fileID: -250991000991268778}
|
||||
- {fileID: -4330494011686235080}
|
||||
- {fileID: 7655602436142396064}
|
||||
- {fileID: -6025000786359728421}
|
||||
- {fileID: -7586714597313585321}
|
||||
m_AvoidRepeatingLast: 0
|
||||
m_PlaybackMode: 2
|
||||
m_TriggerMode: 0
|
||||
m_AutomaticTriggerMode: 0
|
||||
m_LoopMode: 0
|
||||
m_VolumeRandomizationEnabled: 1
|
||||
m_PitchRandomizationEnabled: 1
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 1
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
--- !u!1233149941 &7655602436142396064
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Concrete_03_{7655602436142396064}
|
||||
m_AudioClip: {fileID: 8300000, guid: 2751f72ca7b6249dabb2f404db45c29f, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
|
||||
+27
-27
@@ -1,27 +1,27 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Footstep
|
||||
m_Volume: 0
|
||||
m_Pitch: 0
|
||||
m_AutomaticTriggerTime: 0
|
||||
m_LoopCount: 1
|
||||
m_VolumeRandomizationRange: {x: 0, y: 0}
|
||||
m_PitchRandomizationRange: {x: 0, y: 0}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements: []
|
||||
m_AvoidRepeatingLast: 0
|
||||
m_PlaybackMode: 0
|
||||
m_TriggerMode: 1
|
||||
m_AutomaticTriggerMode: 1
|
||||
m_LoopMode: 2
|
||||
m_VolumeRandomizationEnabled: 0
|
||||
m_PitchRandomizationEnabled: 0
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 0
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Footstep
|
||||
m_Volume: 0
|
||||
m_Pitch: 0
|
||||
m_AutomaticTriggerTime: 0
|
||||
m_LoopCount: 1
|
||||
m_VolumeRandomizationRange: {x: 0, y: 0}
|
||||
m_PitchRandomizationRange: {x: 0, y: 0}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements: []
|
||||
m_AvoidRepeatingLast: 0
|
||||
m_PlaybackMode: 0
|
||||
m_TriggerMode: 1
|
||||
m_AutomaticTriggerMode: 1
|
||||
m_LoopMode: 2
|
||||
m_VolumeRandomizationEnabled: 0
|
||||
m_PitchRandomizationEnabled: 0
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 0
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
|
||||
+60
-60
@@ -1,60 +1,60 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1233149941 &-3038339863073270411
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_02_{-3038339863073270411}
|
||||
m_AudioClip: {fileID: 8300000, guid: c37138872f61b4418be9e8c1084790ac, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-2236532293860724103
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_01_{-2236532293860724103}
|
||||
m_AudioClip: {fileID: 8300000, guid: b13fd8dee3cf44c40859bf6c987bf68c, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &3241090870461451841
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_03_{3241090870461451841}
|
||||
m_AudioClip: {fileID: 8300000, guid: a3da1afec2ee3465db49602a61ef0ec7, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land
|
||||
m_Volume: 0
|
||||
m_Pitch: 200
|
||||
m_AutomaticTriggerTime: 0.2
|
||||
m_LoopCount: 2
|
||||
m_VolumeRandomizationRange: {x: -5, y: 0}
|
||||
m_PitchRandomizationRange: {x: 0, y: 500}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements:
|
||||
- {fileID: -2236532293860724103}
|
||||
- {fileID: -3038339863073270411}
|
||||
- {fileID: 3241090870461451841}
|
||||
m_AvoidRepeatingLast: 2
|
||||
m_PlaybackMode: 2
|
||||
m_TriggerMode: 0
|
||||
m_AutomaticTriggerMode: 0
|
||||
m_LoopMode: 1
|
||||
m_VolumeRandomizationEnabled: 1
|
||||
m_PitchRandomizationEnabled: 1
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 0
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1233149941 &-3038339863073270411
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_02_{-3038339863073270411}
|
||||
m_AudioClip: {fileID: 8300000, guid: c37138872f61b4418be9e8c1084790ac, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &-2236532293860724103
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_01_{-2236532293860724103}
|
||||
m_AudioClip: {fileID: 8300000, guid: b13fd8dee3cf44c40859bf6c987bf68c, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1233149941 &3241090870461451841
|
||||
AudioContainerElement:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land_03_{3241090870461451841}
|
||||
m_AudioClip: {fileID: 8300000, guid: a3da1afec2ee3465db49602a61ef0ec7, type: 3}
|
||||
m_Volume: 0
|
||||
m_Enabled: 1
|
||||
--- !u!1307931743 &6418180475301049370
|
||||
AudioRandomContainer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Player_Land
|
||||
m_Volume: 0
|
||||
m_Pitch: 200
|
||||
m_AutomaticTriggerTime: 0.2
|
||||
m_LoopCount: 2
|
||||
m_VolumeRandomizationRange: {x: -5, y: 0}
|
||||
m_PitchRandomizationRange: {x: 0, y: 500}
|
||||
m_AutomaticTriggerTimeRandomizationRange: {x: 0, y: 0}
|
||||
m_LoopCountRandomizationRange: {x: 0, y: 0}
|
||||
m_Elements:
|
||||
- {fileID: -2236532293860724103}
|
||||
- {fileID: -3038339863073270411}
|
||||
- {fileID: 3241090870461451841}
|
||||
m_AvoidRepeatingLast: 2
|
||||
m_PlaybackMode: 2
|
||||
m_TriggerMode: 0
|
||||
m_AutomaticTriggerMode: 0
|
||||
m_LoopMode: 1
|
||||
m_VolumeRandomizationEnabled: 1
|
||||
m_PitchRandomizationEnabled: 1
|
||||
m_AutomaticTriggerTimeRandomizationEnabled: 0
|
||||
m_LoopCountRandomizationEnabled: 0
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 940251fa621540241ab6a33c87cc8b7e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 940251fa621540241ab6a33c87cc8b7e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84b4ab346fc32d445b7207cb1884cf42
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 84b4ab346fc32d445b7207cb1884cf42
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+120
-120
@@ -1,120 +1,120 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8944336655422409498
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8944336655422409503}
|
||||
- component: {fileID: 8944336655422409496}
|
||||
- component: {fileID: 8944336655422409497}
|
||||
- component: {fileID: 9078993845375825671}
|
||||
m_Layer: 0
|
||||
m_Name: MainCamera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8944336655422409503
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 1.375, z: -4}
|
||||
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!20 &8944336655422409496
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.972549, g: 0.95686275, b: 0.92941177, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.2
|
||||
far clip plane: 5000
|
||||
field of view: 40
|
||||
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!81 &8944336655422409497
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
--- !u!114 &9078993845375825671
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ShowDebugText: 0
|
||||
m_ShowCameraFrustum: 1
|
||||
m_IgnoreTimeScale: 0
|
||||
m_WorldUpOverride: {fileID: 0}
|
||||
m_UpdateMethod: 2
|
||||
m_BlendUpdateMethod: 1
|
||||
m_DefaultBlend:
|
||||
m_Style: 1
|
||||
m_Time: 2
|
||||
m_CustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
m_CustomBlends: {fileID: 0}
|
||||
m_CameraCutEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_CameraActivatedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8944336655422409498
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8944336655422409503}
|
||||
- component: {fileID: 8944336655422409496}
|
||||
- component: {fileID: 8944336655422409497}
|
||||
- component: {fileID: 9078993845375825671}
|
||||
m_Layer: 0
|
||||
m_Name: MainCamera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8944336655422409503
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 1.375, z: -4}
|
||||
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!20 &8944336655422409496
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.972549, g: 0.95686275, b: 0.92941177, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.2
|
||||
far clip plane: 5000
|
||||
field of view: 40
|
||||
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!81 &8944336655422409497
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
--- !u!114 &9078993845375825671
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8944336655422409498}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ShowDebugText: 0
|
||||
m_ShowCameraFrustum: 1
|
||||
m_IgnoreTimeScale: 0
|
||||
m_WorldUpOverride: {fileID: 0}
|
||||
m_UpdateMethod: 2
|
||||
m_BlendUpdateMethod: 1
|
||||
m_DefaultBlend:
|
||||
m_Style: 1
|
||||
m_Time: 2
|
||||
m_CustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve: []
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
m_CustomBlends: {fileID: 0}
|
||||
m_CameraCutEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_CameraActivatedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
||||
+509
-509
File diff suppressed because it is too large
Load Diff
+492
-492
@@ -1,492 +1,492 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8047161636021232021
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2119775930974504096}
|
||||
m_Layer: 0
|
||||
m_Name: NestedParentCapsule_Unpack
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2119775930974504096
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8047161636021232021}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.92999995, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 5542111180780342647}
|
||||
- {fileID: 3203261902030644824}
|
||||
- {fileID: 6001220780674294383}
|
||||
- {fileID: 4072154296131656415}
|
||||
- {fileID: 6858111992258843779}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3515378425540693942
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1992104595683069851, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UI_EventSystem
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.92999995
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f0271df749728104eac22c3d897fd8ce, type: 3}
|
||||
--- !u!4 &6858111992258843779 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378425540693942}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427008540405
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1663187150, guid: 2f7f3dde7ae722a4aafffe20691ad702, type: 3}
|
||||
propertyPath: thirdPersonInputs
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6751388636123340836, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UI_Canvas_StarterAssetsInputs_Joysticks
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2f7f3dde7ae722a4aafffe20691ad702, type: 3}
|
||||
--- !u!224 &4072154296131656415 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427008540405}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427225392744
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 8944336655422409498, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MainCamera
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.20000005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.44500005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f6d148d888ffbf54b9afe9936dfaec1f, type: 3}
|
||||
--- !u!4 &5542111180780342647 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427225392744}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427639998752
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2070925441746177671, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PlayerFollowCamera
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.20000005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.44500005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177913, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_Follow
|
||||
value:
|
||||
objectReference: {fileID: 1654322001227874697}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: a1a802ecaf6775746bb2a929fb554ad8, type: 3}
|
||||
--- !u!4 &3203261902030644824 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427639998752}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &4807976689997140263
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.92999995
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1925873226565265906, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PlayerCapsule
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2553cec8fdb3eb643bbe9f2ec880c472, type: 3}
|
||||
--- !u!4 &6001220780674294383 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 4807976689997140263}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &1654322001227874697 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6074239116653777070, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 4807976689997140263}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &8047161636021232021
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2119775930974504096}
|
||||
m_Layer: 0
|
||||
m_Name: NestedParentCapsule_Unpack
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2119775930974504096
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8047161636021232021}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.92999995, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 5542111180780342647}
|
||||
- {fileID: 3203261902030644824}
|
||||
- {fileID: 6001220780674294383}
|
||||
- {fileID: 4072154296131656415}
|
||||
- {fileID: 6858111992258843779}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &3515378425540693942
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1992104595683069851, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UI_EventSystem
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.92999995
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f0271df749728104eac22c3d897fd8ce, type: 3}
|
||||
--- !u!4 &6858111992258843779 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8063073397250431797, guid: f0271df749728104eac22c3d897fd8ce,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378425540693942}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427008540405
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1663187150, guid: 2f7f3dde7ae722a4aafffe20691ad702, type: 3}
|
||||
propertyPath: thirdPersonInputs
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6751388636123340836, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UI_Canvas_StarterAssetsInputs_Joysticks
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2f7f3dde7ae722a4aafffe20691ad702, type: 3}
|
||||
--- !u!224 &4072154296131656415 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 597308369130767402, guid: 2f7f3dde7ae722a4aafffe20691ad702,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427008540405}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427225392744
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 8944336655422409498, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: MainCamera
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.20000005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.44500005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f6d148d888ffbf54b9afe9936dfaec1f, type: 3}
|
||||
--- !u!4 &5542111180780342647 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8944336655422409503, guid: f6d148d888ffbf54b9afe9936dfaec1f,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427225392744}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &3515378427639998752
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2070925441746177671, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PlayerFollowCamera
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0.20000005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.44500005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -4
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2070925441746177913, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
propertyPath: m_Follow
|
||||
value:
|
||||
objectReference: {fileID: 1654322001227874697}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: a1a802ecaf6775746bb2a929fb554ad8, type: 3}
|
||||
--- !u!4 &3203261902030644824 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2070925441746177912, guid: a1a802ecaf6775746bb2a929fb554ad8,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 3515378427639998752}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &4807976689997140263
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2119775930974504096}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -0.92999995
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1925873226565265906, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: PlayerCapsule
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2553cec8fdb3eb643bbe9f2ec880c472, type: 3}
|
||||
--- !u!4 &6001220780674294383 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1293029876712600392, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 4807976689997140263}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &1654322001227874697 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6074239116653777070, guid: 2553cec8fdb3eb643bbe9f2ec880c472,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 4807976689997140263}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
|
||||
+349
-349
@@ -1,349 +1,349 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &29811323
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 29811324}
|
||||
- component: {fileID: 29811327}
|
||||
- component: {fileID: 29811326}
|
||||
- component: {fileID: 29811325}
|
||||
m_Layer: 8
|
||||
m_Name: Capsule
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &29811324
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.9, z: 0}
|
||||
m_LocalScale: {x: 0.75, y: 0.9, z: 0.75}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1293029876712600392}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &29811327
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &29811326
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!136 &29811325
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
m_Radius: 0.5
|
||||
m_Height: 2
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1925873226565265906
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1293029876712600392}
|
||||
- component: {fileID: 1925873226565265912}
|
||||
- component: {fileID: 1925873226565265913}
|
||||
- component: {fileID: 7292828519420468114}
|
||||
- component: {fileID: 1925873226565265918}
|
||||
- component: {fileID: 2468714030164847400}
|
||||
m_Layer: 8
|
||||
m_Name: PlayerCapsule
|
||||
m_TagString: Player
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1293029876712600392
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
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: 6074239116653777070}
|
||||
- {fileID: 29811324}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!143 &1925873226565265912
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Height: 1.8
|
||||
m_Radius: 0.4
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.25
|
||||
m_SkinWidth: 0.02
|
||||
m_MinMoveDistance: 0
|
||||
m_Center: {x: 0, y: 0.93, z: 0}
|
||||
--- !u!114 &1925873226565265913
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26e54e5a728a9234ab24fcf1460ed8a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
MoveSpeed: 4
|
||||
SprintSpeed: 6
|
||||
RotationSmoothTime: 0.12
|
||||
SpeedChangeRate: 10
|
||||
JumpHeight: 1.2
|
||||
Gravity: -15
|
||||
JumpTimeout: 0.5
|
||||
FallTimeout: 0.15
|
||||
Grounded: 1
|
||||
GroundedOffset: -0.14
|
||||
GroundedRadius: 0.28
|
||||
GroundLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 513
|
||||
CinemachineCameraTarget: {fileID: 6074239116653777065}
|
||||
TopClamp: 70
|
||||
BottomClamp: -30
|
||||
CameraAngleOverride: 0
|
||||
LockCameraPosition: 0
|
||||
--- !u!114 &7292828519420468114
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 909d917d73a63f940ac158d02e936645, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
pushLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
canPush: 0
|
||||
strength: 1.1
|
||||
--- !u!114 &1925873226565265918
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Actions: {fileID: -944628639613478452, guid: 4419d82f33d36e848b3ed5af4c8da37e,
|
||||
type: 3}
|
||||
m_NotificationBehavior: 0
|
||||
m_UIInputModule: {fileID: 0}
|
||||
m_DeviceLostEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_DeviceRegainedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ControlsChangedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ActionEvents:
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputMove
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d
|
||||
m_ActionName: Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d,/Keyboard/upArrow,/Keyboard/downArrow,/Keyboard/leftArrow,/Keyboard/rightArrow,/XInputControllerWindows/leftStick]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputLook
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 2690c379-f54d-45be-a724-414123833eb4
|
||||
m_ActionName: Player/Look[/Mouse/delta,/XInputControllerWindows/rightStick]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputJump
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 8c4abdf8-4099-493a-aa1a-129acec7c3df
|
||||
m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputSprint
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 980e881e-182c-404c-8cbf-3d09fdb48fef
|
||||
m_ActionName: Player/Sprint[/Keyboard/leftShift,/XInputControllerWindows/leftTrigger]
|
||||
- m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ActionId: e4ce1614-c754-48c1-9103-33130441661f
|
||||
m_ActionName: UI/New action
|
||||
m_NeverAutoSwitchControlSchemes: 0
|
||||
m_DefaultControlScheme:
|
||||
m_DefaultActionMap: Player
|
||||
m_SplitScreenIndex: -1
|
||||
m_Camera: {fileID: 0}
|
||||
--- !u!114 &2468714030164847400
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e087ecce43ebbff45a1b360637807d93, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
move: {x: 0, y: 0}
|
||||
look: {x: 0, y: 0}
|
||||
jump: 0
|
||||
sprint: 0
|
||||
analogMovement: 0
|
||||
cursorLocked: 1
|
||||
cursorInputForLook: 1
|
||||
--- !u!1 &6074239116653777065
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6074239116653777070}
|
||||
m_Layer: 0
|
||||
m_Name: PlayerCameraRoot
|
||||
m_TagString: CinemachineTarget
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6074239116653777070
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6074239116653777065}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1.375, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1293029876712600392}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &29811323
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 29811324}
|
||||
- component: {fileID: 29811327}
|
||||
- component: {fileID: 29811326}
|
||||
- component: {fileID: 29811325}
|
||||
m_Layer: 8
|
||||
m_Name: Capsule
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &29811324
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0.9, z: 0}
|
||||
m_LocalScale: {x: 0.75, y: 0.9, z: 0.75}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1293029876712600392}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &29811327
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &29811326
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 6b911390c5825014e8377183a7837d3f, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!136 &29811325
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 29811323}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
m_Radius: 0.5
|
||||
m_Height: 2
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1925873226565265906
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1293029876712600392}
|
||||
- component: {fileID: 1925873226565265912}
|
||||
- component: {fileID: 1925873226565265913}
|
||||
- component: {fileID: 7292828519420468114}
|
||||
- component: {fileID: 1925873226565265918}
|
||||
- component: {fileID: 2468714030164847400}
|
||||
m_Layer: 8
|
||||
m_Name: PlayerCapsule
|
||||
m_TagString: Player
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1293029876712600392
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
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: 6074239116653777070}
|
||||
- {fileID: 29811324}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!143 &1925873226565265912
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Height: 1.8
|
||||
m_Radius: 0.4
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.25
|
||||
m_SkinWidth: 0.02
|
||||
m_MinMoveDistance: 0
|
||||
m_Center: {x: 0, y: 0.93, z: 0}
|
||||
--- !u!114 &1925873226565265913
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26e54e5a728a9234ab24fcf1460ed8a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
MoveSpeed: 4
|
||||
SprintSpeed: 6
|
||||
RotationSmoothTime: 0.12
|
||||
SpeedChangeRate: 10
|
||||
JumpHeight: 1.2
|
||||
Gravity: -15
|
||||
JumpTimeout: 0.5
|
||||
FallTimeout: 0.15
|
||||
Grounded: 1
|
||||
GroundedOffset: -0.14
|
||||
GroundedRadius: 0.28
|
||||
GroundLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 513
|
||||
CinemachineCameraTarget: {fileID: 6074239116653777065}
|
||||
TopClamp: 70
|
||||
BottomClamp: -30
|
||||
CameraAngleOverride: 0
|
||||
LockCameraPosition: 0
|
||||
--- !u!114 &7292828519420468114
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 909d917d73a63f940ac158d02e936645, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
pushLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
canPush: 0
|
||||
strength: 1.1
|
||||
--- !u!114 &1925873226565265918
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Actions: {fileID: -944628639613478452, guid: 4419d82f33d36e848b3ed5af4c8da37e,
|
||||
type: 3}
|
||||
m_NotificationBehavior: 0
|
||||
m_UIInputModule: {fileID: 0}
|
||||
m_DeviceLostEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_DeviceRegainedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ControlsChangedEvent:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ActionEvents:
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputMove
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 6bc1aaf4-b110-4ff7-891e-5b9fe6f32c4d
|
||||
m_ActionName: Player/Move[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d,/Keyboard/upArrow,/Keyboard/downArrow,/Keyboard/leftArrow,/Keyboard/rightArrow,/XInputControllerWindows/leftStick]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputLook
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 2690c379-f54d-45be-a724-414123833eb4
|
||||
m_ActionName: Player/Look[/Mouse/delta,/XInputControllerWindows/rightStick]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputJump
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 8c4abdf8-4099-493a-aa1a-129acec7c3df
|
||||
m_ActionName: Player/Jump[/Keyboard/space,/XInputControllerWindows/buttonSouth]
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1925873226565265913}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName: InputSprint
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
m_ActionId: 980e881e-182c-404c-8cbf-3d09fdb48fef
|
||||
m_ActionName: Player/Sprint[/Keyboard/leftShift,/XInputControllerWindows/leftTrigger]
|
||||
- m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_ActionId: e4ce1614-c754-48c1-9103-33130441661f
|
||||
m_ActionName: UI/New action
|
||||
m_NeverAutoSwitchControlSchemes: 0
|
||||
m_DefaultControlScheme:
|
||||
m_DefaultActionMap: Player
|
||||
m_SplitScreenIndex: -1
|
||||
m_Camera: {fileID: 0}
|
||||
--- !u!114 &2468714030164847400
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1925873226565265906}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e087ecce43ebbff45a1b360637807d93, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
move: {x: 0, y: 0}
|
||||
look: {x: 0, y: 0}
|
||||
jump: 0
|
||||
sprint: 0
|
||||
analogMovement: 0
|
||||
cursorLocked: 1
|
||||
cursorInputForLook: 1
|
||||
--- !u!1 &6074239116653777065
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6074239116653777070}
|
||||
m_Layer: 0
|
||||
m_Name: PlayerCameraRoot
|
||||
m_TagString: CinemachineTarget
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &6074239116653777070
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6074239116653777065}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1.375, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1293029876712600392}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
||||
+153
-153
@@ -1,153 +1,153 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2070925441746177671
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2070925441746177912}
|
||||
- component: {fileID: 2070925441746177913}
|
||||
m_Layer: 0
|
||||
m_Name: PlayerFollowCamera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2070925441746177912
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925441746177671}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 1.375, z: -4}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 2070925442191277756}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2070925441746177913
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925441746177671}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ExcludedPropertiesInInspector:
|
||||
- m_Script
|
||||
m_LockStageInInspector:
|
||||
m_StreamingVersion: 20170927
|
||||
m_Priority: 10
|
||||
m_StandbyUpdate: 2
|
||||
m_LookAt: {fileID: 0}
|
||||
m_Follow: {fileID: 0}
|
||||
m_Lens:
|
||||
FieldOfView: 40
|
||||
OrthographicSize: 10
|
||||
NearClipPlane: 0.2
|
||||
FarClipPlane: 500
|
||||
Dutch: 0
|
||||
LensShift: {x: 0, y: 0}
|
||||
m_Transitions:
|
||||
m_BlendHint: 0
|
||||
m_InheritPosition: 0
|
||||
m_OnCameraLive:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_LegacyBlendHint: 0
|
||||
m_ComponentOwner: {fileID: 2070925442191277756}
|
||||
--- !u!1 &2070925442191277755
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2070925442191277756}
|
||||
- component: {fileID: 2070925442191277757}
|
||||
- component: {fileID: 2070925442191277753}
|
||||
- component: {fileID: 2070925442191277752}
|
||||
m_Layer: 0
|
||||
m_Name: cm
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2070925442191277756
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
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: 2070925441746177912}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2070925442191277757
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &2070925442191277753
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_NoiseProfile: {fileID: 11400000, guid: 46965f9cbaf525742a6da4c2172a99cd, type: 2}
|
||||
m_PivotOffset: {x: 0, y: 0, z: 1}
|
||||
m_AmplitudeGain: 0.5
|
||||
m_FrequencyGain: 0.3
|
||||
mNoiseOffsets: {x: -451.37964, y: 684.7062, z: 648.0488}
|
||||
--- !u!114 &2070925442191277752
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bd6043bde05a7fc4cba197d06915c1e3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Damping: {x: 0.1, y: 0.25, z: 0.3}
|
||||
ShoulderOffset: {x: 1, y: 0, z: 0}
|
||||
VerticalArmLength: 0
|
||||
CameraSide: 0.6
|
||||
CameraDistance: 4
|
||||
CameraCollisionFilter:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
IgnoreTag: Player
|
||||
CameraRadius: 0.15
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2070925441746177671
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2070925441746177912}
|
||||
- component: {fileID: 2070925441746177913}
|
||||
m_Layer: 0
|
||||
m_Name: PlayerFollowCamera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2070925441746177912
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925441746177671}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 1.375, z: -4}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 2070925442191277756}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2070925441746177913
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925441746177671}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_ExcludedPropertiesInInspector:
|
||||
- m_Script
|
||||
m_LockStageInInspector:
|
||||
m_StreamingVersion: 20170927
|
||||
m_Priority: 10
|
||||
m_StandbyUpdate: 2
|
||||
m_LookAt: {fileID: 0}
|
||||
m_Follow: {fileID: 0}
|
||||
m_Lens:
|
||||
FieldOfView: 40
|
||||
OrthographicSize: 10
|
||||
NearClipPlane: 0.2
|
||||
FarClipPlane: 500
|
||||
Dutch: 0
|
||||
LensShift: {x: 0, y: 0}
|
||||
m_Transitions:
|
||||
m_BlendHint: 0
|
||||
m_InheritPosition: 0
|
||||
m_OnCameraLive:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_LegacyBlendHint: 0
|
||||
m_ComponentOwner: {fileID: 2070925442191277756}
|
||||
--- !u!1 &2070925442191277755
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2070925442191277756}
|
||||
- component: {fileID: 2070925442191277757}
|
||||
- component: {fileID: 2070925442191277753}
|
||||
- component: {fileID: 2070925442191277752}
|
||||
m_Layer: 0
|
||||
m_Name: cm
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2070925442191277756
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
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: 2070925441746177912}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2070925442191277757
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &2070925442191277753
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_NoiseProfile: {fileID: 11400000, guid: 46965f9cbaf525742a6da4c2172a99cd, type: 2}
|
||||
m_PivotOffset: {x: 0, y: 0, z: 1}
|
||||
m_AmplitudeGain: 0.5
|
||||
m_FrequencyGain: 0.3
|
||||
mNoiseOffsets: {x: -451.37964, y: 684.7062, z: 648.0488}
|
||||
--- !u!114 &2070925442191277752
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2070925442191277755}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: bd6043bde05a7fc4cba197d06915c1e3, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Damping: {x: 0.1, y: 0.25, z: 0.3}
|
||||
ShoulderOffset: {x: 1, y: 0, z: 0}
|
||||
VerticalArmLength: 0
|
||||
CameraSide: 0.6
|
||||
CameraDistance: 4
|
||||
CameraCollisionFilter:
|
||||
serializedVersion: 2
|
||||
m_Bits: 1
|
||||
IgnoreTag: Player
|
||||
CameraRadius: 0.15
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89e5f9b6a0fcdae4e8ccb4b461925e8c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 89e5f9b6a0fcdae4e8ccb4b461925e8c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 22db1f6f78cfb3440835ed6dee5f8e9e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: 22db1f6f78cfb3440835ed6dee5f8e9e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
+34
-34
@@ -1,35 +1,35 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class BasicRigidBodyPush : MonoBehaviour
|
||||
{
|
||||
public LayerMask pushLayers;
|
||||
public bool canPush;
|
||||
[Range(0.5f, 5f)] public float strength = 1.1f;
|
||||
|
||||
private void OnControllerColliderHit(ControllerColliderHit hit)
|
||||
{
|
||||
if (canPush) PushRigidBodies(hit);
|
||||
}
|
||||
|
||||
private void PushRigidBodies(ControllerColliderHit hit)
|
||||
{
|
||||
// https://docs.unity3d.com/ScriptReference/CharacterController.OnControllerColliderHit.html
|
||||
|
||||
// make sure we hit a non kinematic rigidbody
|
||||
Rigidbody body = hit.collider.attachedRigidbody;
|
||||
if (body == null || body.isKinematic) return;
|
||||
|
||||
// make sure we only push desired layer(s)
|
||||
var bodyLayerMask = 1 << body.gameObject.layer;
|
||||
if ((bodyLayerMask & pushLayers.value) == 0) return;
|
||||
|
||||
// We dont want to push objects below us
|
||||
if (hit.moveDirection.y < -0.3f) return;
|
||||
|
||||
// Calculate push direction from move direction, horizontal motion only
|
||||
Vector3 pushDir = new Vector3(hit.moveDirection.x, 0.0f, hit.moveDirection.z);
|
||||
|
||||
// Apply the push and take strength into account
|
||||
body.AddForce(pushDir * strength, ForceMode.Impulse);
|
||||
}
|
||||
using UnityEngine;
|
||||
|
||||
public class BasicRigidBodyPush : MonoBehaviour
|
||||
{
|
||||
public LayerMask pushLayers;
|
||||
public bool canPush;
|
||||
[Range(0.5f, 5f)] public float strength = 1.1f;
|
||||
|
||||
private void OnControllerColliderHit(ControllerColliderHit hit)
|
||||
{
|
||||
if (canPush) PushRigidBodies(hit);
|
||||
}
|
||||
|
||||
private void PushRigidBodies(ControllerColliderHit hit)
|
||||
{
|
||||
// https://docs.unity3d.com/ScriptReference/CharacterController.OnControllerColliderHit.html
|
||||
|
||||
// make sure we hit a non kinematic rigidbody
|
||||
Rigidbody body = hit.collider.attachedRigidbody;
|
||||
if (body == null || body.isKinematic) return;
|
||||
|
||||
// make sure we only push desired layer(s)
|
||||
var bodyLayerMask = 1 << body.gameObject.layer;
|
||||
if ((bodyLayerMask & pushLayers.value) == 0) return;
|
||||
|
||||
// We dont want to push objects below us
|
||||
if (hit.moveDirection.y < -0.3f) return;
|
||||
|
||||
// Calculate push direction from move direction, horizontal motion only
|
||||
Vector3 pushDir = new Vector3(hit.moveDirection.x, 0.0f, hit.moveDirection.z);
|
||||
|
||||
// Apply the push and take strength into account
|
||||
body.AddForce(pushDir * strength, ForceMode.Impulse);
|
||||
}
|
||||
}
|
||||
+400
-400
@@ -1,401 +1,401 @@
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
/* Note: animations are called via the controller for both the character and capsule using animator null checks
|
||||
*/
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
[RequireComponent(typeof(PlayerInput))]
|
||||
#endif
|
||||
public class ThirdPersonController : MonoBehaviour
|
||||
{
|
||||
[Header("Player")]
|
||||
[Tooltip("Move speed of the character in m/s")]
|
||||
public float MoveSpeed = 2.0f;
|
||||
|
||||
[Tooltip("Sprint speed of the character in m/s")]
|
||||
public float SprintSpeed = 5.335f;
|
||||
|
||||
[Tooltip("How fast the character turns to face movement direction")]
|
||||
[Range(0.0f, 0.3f)]
|
||||
public float RotationSmoothTime = 0.12f;
|
||||
|
||||
[Tooltip("Acceleration and deceleration")]
|
||||
public float SpeedChangeRate = 10.0f;
|
||||
|
||||
public AudioSource AudioFootsteps;
|
||||
public AudioSource LandingAudio;
|
||||
public AudioSource AudioFoley;
|
||||
public AudioClip LandingAudioClip;
|
||||
public AudioClip[] FootstepAudioClips;
|
||||
[Range(0, 1)] public float FootstepAudioVolume = 0.5f;
|
||||
|
||||
[Space(10)]
|
||||
[Tooltip("The height the player can jump")]
|
||||
public float JumpHeight = 1.2f;
|
||||
|
||||
[Tooltip("The character uses its own gravity value. The engine default is -9.81f")]
|
||||
public float Gravity = -15.0f;
|
||||
|
||||
[Space(10)]
|
||||
[Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")]
|
||||
public float JumpTimeout = 0.50f;
|
||||
|
||||
[Tooltip("Time required to pass before entering the fall state. Useful for walking down stairs")]
|
||||
public float FallTimeout = 0.15f;
|
||||
|
||||
[Header("Player Grounded")]
|
||||
[Tooltip("If the character is grounded or not. Not part of the CharacterController built in grounded check")]
|
||||
public bool Grounded = true;
|
||||
|
||||
[Tooltip("Useful for rough ground")]
|
||||
public float GroundedOffset = -0.14f;
|
||||
|
||||
[Tooltip("The radius of the grounded check. Should match the radius of the CharacterController")]
|
||||
public float GroundedRadius = 0.28f;
|
||||
|
||||
[Tooltip("What layers the character uses as ground")]
|
||||
public LayerMask GroundLayers;
|
||||
|
||||
[Header("Cinemachine")]
|
||||
[Tooltip("The follow target set in the Cinemachine Virtual Camera that the camera will follow")]
|
||||
public GameObject CinemachineCameraTarget;
|
||||
|
||||
[Tooltip("How far in degrees can you move the camera up")]
|
||||
public float TopClamp = 70.0f;
|
||||
|
||||
[Tooltip("How far in degrees can you move the camera down")]
|
||||
public float BottomClamp = -30.0f;
|
||||
|
||||
[Tooltip("Additional degress to override the camera. Useful for fine tuning camera position when locked")]
|
||||
public float CameraAngleOverride = 0.0f;
|
||||
|
||||
[Tooltip("For locking the camera position on all axis")]
|
||||
public bool LockCameraPosition = false;
|
||||
|
||||
// cinemachine
|
||||
private float _cinemachineTargetYaw;
|
||||
private float _cinemachineTargetPitch;
|
||||
|
||||
// player
|
||||
private float _speed;
|
||||
private float _animationBlend;
|
||||
private float _targetRotation = 0.0f;
|
||||
private float _rotationVelocity;
|
||||
private float _verticalVelocity;
|
||||
private float _terminalVelocity = 53.0f;
|
||||
|
||||
// timeout deltatime
|
||||
private float _jumpTimeoutDelta;
|
||||
private float _fallTimeoutDelta;
|
||||
|
||||
// animation IDs
|
||||
private int _animIDSpeed;
|
||||
private int _animIDGrounded;
|
||||
private int _animIDJump;
|
||||
private int _animIDFreeFall;
|
||||
private int _animIDMotionSpeed;
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
private PlayerInput _playerInput;
|
||||
#endif
|
||||
private Animator _animator;
|
||||
private CharacterController _controller;
|
||||
private StarterAssetsInputs _input;
|
||||
private GameObject _mainCamera;
|
||||
|
||||
private const float _threshold = 0.01f;
|
||||
|
||||
private bool _hasAnimator;
|
||||
|
||||
private bool IsCurrentDeviceMouse
|
||||
{
|
||||
get
|
||||
{
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
return _playerInput.currentControlScheme == "KeyboardMouse";
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// get a reference to our main camera
|
||||
if (_mainCamera == null)
|
||||
{
|
||||
_mainCamera = GameObject.FindGameObjectWithTag("MainCamera");
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_cinemachineTargetYaw = CinemachineCameraTarget.transform.rotation.eulerAngles.y;
|
||||
|
||||
_hasAnimator = TryGetComponent(out _animator);
|
||||
_controller = GetComponent<CharacterController>();
|
||||
_input = GetComponent<StarterAssetsInputs>();
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
_playerInput = GetComponent<PlayerInput>();
|
||||
#else
|
||||
Debug.LogError( "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it");
|
||||
#endif
|
||||
|
||||
AssignAnimationIDs();
|
||||
|
||||
// reset our timeouts on start
|
||||
_jumpTimeoutDelta = JumpTimeout;
|
||||
_fallTimeoutDelta = FallTimeout;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
_hasAnimator = TryGetComponent(out _animator);
|
||||
|
||||
JumpAndGravity();
|
||||
GroundedCheck();
|
||||
Move();
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
CameraRotation();
|
||||
}
|
||||
|
||||
private void AssignAnimationIDs()
|
||||
{
|
||||
_animIDSpeed = Animator.StringToHash("Speed");
|
||||
_animIDGrounded = Animator.StringToHash("Grounded");
|
||||
_animIDJump = Animator.StringToHash("Jump");
|
||||
_animIDFreeFall = Animator.StringToHash("FreeFall");
|
||||
_animIDMotionSpeed = Animator.StringToHash("MotionSpeed");
|
||||
}
|
||||
|
||||
private void GroundedCheck()
|
||||
{
|
||||
// set sphere position, with offset
|
||||
Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset,
|
||||
transform.position.z);
|
||||
Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers,
|
||||
QueryTriggerInteraction.Ignore);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDGrounded, Grounded);
|
||||
}
|
||||
}
|
||||
|
||||
private void CameraRotation()
|
||||
{
|
||||
// if there is an input and camera position is not fixed
|
||||
if (_input.look.sqrMagnitude >= _threshold && !LockCameraPosition)
|
||||
{
|
||||
//Don't multiply mouse input by Time.deltaTime;
|
||||
float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime;
|
||||
|
||||
_cinemachineTargetYaw += _input.look.x * deltaTimeMultiplier;
|
||||
_cinemachineTargetPitch += _input.look.y * deltaTimeMultiplier;
|
||||
}
|
||||
|
||||
// clamp our rotations so our values are limited 360 degrees
|
||||
_cinemachineTargetYaw = ClampAngle(_cinemachineTargetYaw, float.MinValue, float.MaxValue);
|
||||
_cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, BottomClamp, TopClamp);
|
||||
|
||||
// Cinemachine will follow this target
|
||||
CinemachineCameraTarget.transform.rotation = Quaternion.Euler(_cinemachineTargetPitch + CameraAngleOverride,
|
||||
_cinemachineTargetYaw, 0.0f);
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
// set target speed based on move speed, sprint speed and if sprint is pressed
|
||||
float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed;
|
||||
|
||||
// a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon
|
||||
|
||||
// note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude
|
||||
// if there is no input, set the target speed to 0
|
||||
if (_input.move == Vector2.zero) targetSpeed = 0.0f;
|
||||
|
||||
// a reference to the players current horizontal velocity
|
||||
float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude;
|
||||
|
||||
float speedOffset = 0.1f;
|
||||
float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f;
|
||||
|
||||
// accelerate or decelerate to target speed
|
||||
if (currentHorizontalSpeed < targetSpeed - speedOffset ||
|
||||
currentHorizontalSpeed > targetSpeed + speedOffset)
|
||||
{
|
||||
// creates curved result rather than a linear one giving a more organic speed change
|
||||
// note T in Lerp is clamped, so we don't need to clamp our speed
|
||||
_speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude,
|
||||
Time.deltaTime * SpeedChangeRate);
|
||||
|
||||
// round speed to 3 decimal places
|
||||
_speed = Mathf.Round(_speed * 1000f) / 1000f;
|
||||
}
|
||||
else
|
||||
{
|
||||
_speed = targetSpeed;
|
||||
}
|
||||
|
||||
// NightclubArcadia: blend toward speed scaled by input magnitude so
|
||||
// partial stick / click-to-move arrival uses walk cycles, not a
|
||||
// slowed run clip via MotionSpeed alone.
|
||||
_animationBlend = Mathf.Lerp(_animationBlend, targetSpeed * inputMagnitude,
|
||||
Time.deltaTime * SpeedChangeRate);
|
||||
if (_animationBlend < 0.01f) _animationBlend = 0f;
|
||||
|
||||
// normalise input direction
|
||||
Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized;
|
||||
|
||||
// note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude
|
||||
// if there is a move input rotate player when the player is moving
|
||||
if (_input.move != Vector2.zero)
|
||||
{
|
||||
_targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg +
|
||||
_mainCamera.transform.eulerAngles.y;
|
||||
float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity,
|
||||
RotationSmoothTime);
|
||||
|
||||
// rotate to face input direction relative to camera position
|
||||
transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
Vector3 targetDirection = Quaternion.Euler(0.0f, _targetRotation, 0.0f) * Vector3.forward;
|
||||
|
||||
// move the player
|
||||
_controller.Move(targetDirection.normalized * (_speed * Time.deltaTime) +
|
||||
new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetFloat(_animIDSpeed, _animationBlend);
|
||||
_animator.SetFloat(_animIDMotionSpeed, inputMagnitude);
|
||||
}
|
||||
}
|
||||
|
||||
private void JumpAndGravity()
|
||||
{
|
||||
if (Grounded)
|
||||
{
|
||||
// reset the fall timeout timer
|
||||
_fallTimeoutDelta = FallTimeout;
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDJump, false);
|
||||
_animator.SetBool(_animIDFreeFall, false);
|
||||
}
|
||||
|
||||
// stop our velocity dropping infinitely when grounded
|
||||
if (_verticalVelocity < 0.0f)
|
||||
{
|
||||
_verticalVelocity = -2f;
|
||||
}
|
||||
|
||||
// Jump
|
||||
if (_input.jump && _jumpTimeoutDelta <= 0.0f)
|
||||
{
|
||||
// the square root of H * -2 * G = how much velocity needed to reach desired height
|
||||
_verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDJump, true);
|
||||
}
|
||||
}
|
||||
|
||||
// jump timeout
|
||||
if (_jumpTimeoutDelta >= 0.0f)
|
||||
{
|
||||
_jumpTimeoutDelta -= Time.deltaTime;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// reset the jump timeout timer
|
||||
_jumpTimeoutDelta = JumpTimeout;
|
||||
|
||||
// fall timeout
|
||||
if (_fallTimeoutDelta >= 0.0f)
|
||||
{
|
||||
_fallTimeoutDelta -= Time.deltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDFreeFall, true);
|
||||
}
|
||||
}
|
||||
|
||||
// if we are not grounded, do not jump
|
||||
_input.jump = false;
|
||||
}
|
||||
|
||||
// apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time)
|
||||
if (_verticalVelocity < _terminalVelocity)
|
||||
{
|
||||
_verticalVelocity += Gravity * Time.deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
private static float ClampAngle(float lfAngle, float lfMin, float lfMax)
|
||||
{
|
||||
if (lfAngle < -360f) lfAngle += 360f;
|
||||
if (lfAngle > 360f) lfAngle -= 360f;
|
||||
return Mathf.Clamp(lfAngle, lfMin, lfMax);
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f);
|
||||
Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f);
|
||||
|
||||
if (Grounded) Gizmos.color = transparentGreen;
|
||||
else Gizmos.color = transparentRed;
|
||||
|
||||
// when selected, draw a gizmo in the position of, and matching radius of, the grounded collider
|
||||
Gizmos.DrawSphere(
|
||||
new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z),
|
||||
GroundedRadius);
|
||||
}
|
||||
|
||||
private void OnFootstep(AnimationEvent animationEvent)
|
||||
{
|
||||
if (animationEvent.animatorClipInfo.weight > 0.5f)
|
||||
{
|
||||
|
||||
if (AudioFootsteps != null)
|
||||
AudioFootsteps.Play();
|
||||
if (AudioFoley != null)
|
||||
AudioFoley.Play();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnLand(AnimationEvent animationEvent)
|
||||
{
|
||||
if (animationEvent.animatorClipInfo.weight > 0.5f)
|
||||
{
|
||||
if (LandingAudio != null)
|
||||
LandingAudio.Play();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
using UnityEngine;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
|
||||
/* Note: animations are called via the controller for both the character and capsule using animator null checks
|
||||
*/
|
||||
|
||||
namespace StarterAssets
|
||||
{
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
[RequireComponent(typeof(PlayerInput))]
|
||||
#endif
|
||||
public class ThirdPersonController : MonoBehaviour
|
||||
{
|
||||
[Header("Player")]
|
||||
[Tooltip("Move speed of the character in m/s")]
|
||||
public float MoveSpeed = 2.0f;
|
||||
|
||||
[Tooltip("Sprint speed of the character in m/s")]
|
||||
public float SprintSpeed = 5.335f;
|
||||
|
||||
[Tooltip("How fast the character turns to face movement direction")]
|
||||
[Range(0.0f, 0.3f)]
|
||||
public float RotationSmoothTime = 0.12f;
|
||||
|
||||
[Tooltip("Acceleration and deceleration")]
|
||||
public float SpeedChangeRate = 10.0f;
|
||||
|
||||
public AudioSource AudioFootsteps;
|
||||
public AudioSource LandingAudio;
|
||||
public AudioSource AudioFoley;
|
||||
public AudioClip LandingAudioClip;
|
||||
public AudioClip[] FootstepAudioClips;
|
||||
[Range(0, 1)] public float FootstepAudioVolume = 0.5f;
|
||||
|
||||
[Space(10)]
|
||||
[Tooltip("The height the player can jump")]
|
||||
public float JumpHeight = 1.2f;
|
||||
|
||||
[Tooltip("The character uses its own gravity value. The engine default is -9.81f")]
|
||||
public float Gravity = -15.0f;
|
||||
|
||||
[Space(10)]
|
||||
[Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")]
|
||||
public float JumpTimeout = 0.50f;
|
||||
|
||||
[Tooltip("Time required to pass before entering the fall state. Useful for walking down stairs")]
|
||||
public float FallTimeout = 0.15f;
|
||||
|
||||
[Header("Player Grounded")]
|
||||
[Tooltip("If the character is grounded or not. Not part of the CharacterController built in grounded check")]
|
||||
public bool Grounded = true;
|
||||
|
||||
[Tooltip("Useful for rough ground")]
|
||||
public float GroundedOffset = -0.14f;
|
||||
|
||||
[Tooltip("The radius of the grounded check. Should match the radius of the CharacterController")]
|
||||
public float GroundedRadius = 0.28f;
|
||||
|
||||
[Tooltip("What layers the character uses as ground")]
|
||||
public LayerMask GroundLayers;
|
||||
|
||||
[Header("Cinemachine")]
|
||||
[Tooltip("The follow target set in the Cinemachine Virtual Camera that the camera will follow")]
|
||||
public GameObject CinemachineCameraTarget;
|
||||
|
||||
[Tooltip("How far in degrees can you move the camera up")]
|
||||
public float TopClamp = 70.0f;
|
||||
|
||||
[Tooltip("How far in degrees can you move the camera down")]
|
||||
public float BottomClamp = -30.0f;
|
||||
|
||||
[Tooltip("Additional degress to override the camera. Useful for fine tuning camera position when locked")]
|
||||
public float CameraAngleOverride = 0.0f;
|
||||
|
||||
[Tooltip("For locking the camera position on all axis")]
|
||||
public bool LockCameraPosition = false;
|
||||
|
||||
// cinemachine
|
||||
private float _cinemachineTargetYaw;
|
||||
private float _cinemachineTargetPitch;
|
||||
|
||||
// player
|
||||
private float _speed;
|
||||
private float _animationBlend;
|
||||
private float _targetRotation = 0.0f;
|
||||
private float _rotationVelocity;
|
||||
private float _verticalVelocity;
|
||||
private float _terminalVelocity = 53.0f;
|
||||
|
||||
// timeout deltatime
|
||||
private float _jumpTimeoutDelta;
|
||||
private float _fallTimeoutDelta;
|
||||
|
||||
// animation IDs
|
||||
private int _animIDSpeed;
|
||||
private int _animIDGrounded;
|
||||
private int _animIDJump;
|
||||
private int _animIDFreeFall;
|
||||
private int _animIDMotionSpeed;
|
||||
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
private PlayerInput _playerInput;
|
||||
#endif
|
||||
private Animator _animator;
|
||||
private CharacterController _controller;
|
||||
private StarterAssetsInputs _input;
|
||||
private GameObject _mainCamera;
|
||||
|
||||
private const float _threshold = 0.01f;
|
||||
|
||||
private bool _hasAnimator;
|
||||
|
||||
private bool IsCurrentDeviceMouse
|
||||
{
|
||||
get
|
||||
{
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
return _playerInput.currentControlScheme == "KeyboardMouse";
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// get a reference to our main camera
|
||||
if (_mainCamera == null)
|
||||
{
|
||||
_mainCamera = GameObject.FindGameObjectWithTag("MainCamera");
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_cinemachineTargetYaw = CinemachineCameraTarget.transform.rotation.eulerAngles.y;
|
||||
|
||||
_hasAnimator = TryGetComponent(out _animator);
|
||||
_controller = GetComponent<CharacterController>();
|
||||
_input = GetComponent<StarterAssetsInputs>();
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
_playerInput = GetComponent<PlayerInput>();
|
||||
#else
|
||||
Debug.LogError( "Starter Assets package is missing dependencies. Please use Tools/Starter Assets/Reinstall Dependencies to fix it");
|
||||
#endif
|
||||
|
||||
AssignAnimationIDs();
|
||||
|
||||
// reset our timeouts on start
|
||||
_jumpTimeoutDelta = JumpTimeout;
|
||||
_fallTimeoutDelta = FallTimeout;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
_hasAnimator = TryGetComponent(out _animator);
|
||||
|
||||
JumpAndGravity();
|
||||
GroundedCheck();
|
||||
Move();
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
CameraRotation();
|
||||
}
|
||||
|
||||
private void AssignAnimationIDs()
|
||||
{
|
||||
_animIDSpeed = Animator.StringToHash("Speed");
|
||||
_animIDGrounded = Animator.StringToHash("Grounded");
|
||||
_animIDJump = Animator.StringToHash("Jump");
|
||||
_animIDFreeFall = Animator.StringToHash("FreeFall");
|
||||
_animIDMotionSpeed = Animator.StringToHash("MotionSpeed");
|
||||
}
|
||||
|
||||
private void GroundedCheck()
|
||||
{
|
||||
// set sphere position, with offset
|
||||
Vector3 spherePosition = new Vector3(transform.position.x, transform.position.y - GroundedOffset,
|
||||
transform.position.z);
|
||||
Grounded = Physics.CheckSphere(spherePosition, GroundedRadius, GroundLayers,
|
||||
QueryTriggerInteraction.Ignore);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDGrounded, Grounded);
|
||||
}
|
||||
}
|
||||
|
||||
private void CameraRotation()
|
||||
{
|
||||
// if there is an input and camera position is not fixed
|
||||
if (_input.look.sqrMagnitude >= _threshold && !LockCameraPosition)
|
||||
{
|
||||
//Don't multiply mouse input by Time.deltaTime;
|
||||
float deltaTimeMultiplier = IsCurrentDeviceMouse ? 1.0f : Time.deltaTime;
|
||||
|
||||
_cinemachineTargetYaw += _input.look.x * deltaTimeMultiplier;
|
||||
_cinemachineTargetPitch += _input.look.y * deltaTimeMultiplier;
|
||||
}
|
||||
|
||||
// clamp our rotations so our values are limited 360 degrees
|
||||
_cinemachineTargetYaw = ClampAngle(_cinemachineTargetYaw, float.MinValue, float.MaxValue);
|
||||
_cinemachineTargetPitch = ClampAngle(_cinemachineTargetPitch, BottomClamp, TopClamp);
|
||||
|
||||
// Cinemachine will follow this target
|
||||
CinemachineCameraTarget.transform.rotation = Quaternion.Euler(_cinemachineTargetPitch + CameraAngleOverride,
|
||||
_cinemachineTargetYaw, 0.0f);
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
// set target speed based on move speed, sprint speed and if sprint is pressed
|
||||
float targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed;
|
||||
|
||||
// a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon
|
||||
|
||||
// note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude
|
||||
// if there is no input, set the target speed to 0
|
||||
if (_input.move == Vector2.zero) targetSpeed = 0.0f;
|
||||
|
||||
// a reference to the players current horizontal velocity
|
||||
float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude;
|
||||
|
||||
float speedOffset = 0.1f;
|
||||
float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f;
|
||||
|
||||
// accelerate or decelerate to target speed
|
||||
if (currentHorizontalSpeed < targetSpeed - speedOffset ||
|
||||
currentHorizontalSpeed > targetSpeed + speedOffset)
|
||||
{
|
||||
// creates curved result rather than a linear one giving a more organic speed change
|
||||
// note T in Lerp is clamped, so we don't need to clamp our speed
|
||||
_speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude,
|
||||
Time.deltaTime * SpeedChangeRate);
|
||||
|
||||
// round speed to 3 decimal places
|
||||
_speed = Mathf.Round(_speed * 1000f) / 1000f;
|
||||
}
|
||||
else
|
||||
{
|
||||
_speed = targetSpeed;
|
||||
}
|
||||
|
||||
// NightclubArcadia: blend toward speed scaled by input magnitude so
|
||||
// partial stick / click-to-move arrival uses walk cycles, not a
|
||||
// slowed run clip via MotionSpeed alone.
|
||||
_animationBlend = Mathf.Lerp(_animationBlend, targetSpeed * inputMagnitude,
|
||||
Time.deltaTime * SpeedChangeRate);
|
||||
if (_animationBlend < 0.01f) _animationBlend = 0f;
|
||||
|
||||
// normalise input direction
|
||||
Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized;
|
||||
|
||||
// note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude
|
||||
// if there is a move input rotate player when the player is moving
|
||||
if (_input.move != Vector2.zero)
|
||||
{
|
||||
_targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg +
|
||||
_mainCamera.transform.eulerAngles.y;
|
||||
float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity,
|
||||
RotationSmoothTime);
|
||||
|
||||
// rotate to face input direction relative to camera position
|
||||
transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
Vector3 targetDirection = Quaternion.Euler(0.0f, _targetRotation, 0.0f) * Vector3.forward;
|
||||
|
||||
// move the player
|
||||
_controller.Move(targetDirection.normalized * (_speed * Time.deltaTime) +
|
||||
new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetFloat(_animIDSpeed, _animationBlend);
|
||||
_animator.SetFloat(_animIDMotionSpeed, inputMagnitude);
|
||||
}
|
||||
}
|
||||
|
||||
private void JumpAndGravity()
|
||||
{
|
||||
if (Grounded)
|
||||
{
|
||||
// reset the fall timeout timer
|
||||
_fallTimeoutDelta = FallTimeout;
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDJump, false);
|
||||
_animator.SetBool(_animIDFreeFall, false);
|
||||
}
|
||||
|
||||
// stop our velocity dropping infinitely when grounded
|
||||
if (_verticalVelocity < 0.0f)
|
||||
{
|
||||
_verticalVelocity = -2f;
|
||||
}
|
||||
|
||||
// Jump
|
||||
if (_input.jump && _jumpTimeoutDelta <= 0.0f)
|
||||
{
|
||||
// the square root of H * -2 * G = how much velocity needed to reach desired height
|
||||
_verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity);
|
||||
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDJump, true);
|
||||
}
|
||||
}
|
||||
|
||||
// jump timeout
|
||||
if (_jumpTimeoutDelta >= 0.0f)
|
||||
{
|
||||
_jumpTimeoutDelta -= Time.deltaTime;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// reset the jump timeout timer
|
||||
_jumpTimeoutDelta = JumpTimeout;
|
||||
|
||||
// fall timeout
|
||||
if (_fallTimeoutDelta >= 0.0f)
|
||||
{
|
||||
_fallTimeoutDelta -= Time.deltaTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
// update animator if using character
|
||||
if (_hasAnimator)
|
||||
{
|
||||
_animator.SetBool(_animIDFreeFall, true);
|
||||
}
|
||||
}
|
||||
|
||||
// if we are not grounded, do not jump
|
||||
_input.jump = false;
|
||||
}
|
||||
|
||||
// apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time)
|
||||
if (_verticalVelocity < _terminalVelocity)
|
||||
{
|
||||
_verticalVelocity += Gravity * Time.deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
private static float ClampAngle(float lfAngle, float lfMin, float lfMax)
|
||||
{
|
||||
if (lfAngle < -360f) lfAngle += 360f;
|
||||
if (lfAngle > 360f) lfAngle -= 360f;
|
||||
return Mathf.Clamp(lfAngle, lfMin, lfMax);
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Color transparentGreen = new Color(0.0f, 1.0f, 0.0f, 0.35f);
|
||||
Color transparentRed = new Color(1.0f, 0.0f, 0.0f, 0.35f);
|
||||
|
||||
if (Grounded) Gizmos.color = transparentGreen;
|
||||
else Gizmos.color = transparentRed;
|
||||
|
||||
// when selected, draw a gizmo in the position of, and matching radius of, the grounded collider
|
||||
Gizmos.DrawSphere(
|
||||
new Vector3(transform.position.x, transform.position.y - GroundedOffset, transform.position.z),
|
||||
GroundedRadius);
|
||||
}
|
||||
|
||||
private void OnFootstep(AnimationEvent animationEvent)
|
||||
{
|
||||
if (animationEvent.animatorClipInfo.weight > 0.5f)
|
||||
{
|
||||
|
||||
if (AudioFootsteps != null)
|
||||
AudioFootsteps.Play();
|
||||
if (AudioFoley != null)
|
||||
AudioFoley.Play();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnLand(AnimationEvent animationEvent)
|
||||
{
|
||||
if (animationEvent.animatorClipInfo.weight > 0.5f)
|
||||
{
|
||||
if (LandingAudio != null)
|
||||
LandingAudio.Play();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9b1ba53f81715d4a8405a40b0a1e2c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
fileFormatVersion: 2
|
||||
guid: d9b1ba53f81715d4a8405a40b0a1e2c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
This package is licensed under the Unity Companion License.
|
||||
This package is licensed under the Unity Companion License.
|
||||
For full license terms, please see: https://unity3d.com/legal/licenses/Unity_Companion_License
|
||||
@@ -0,0 +1,141 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using NUnit.Framework;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NightclubArcadia.Skills.Tests
|
||||
{
|
||||
/// <summary>
|
||||
/// Guards the voice-sheet pipeline: writing/voices/*.md holds the prose, skill_bible.json
|
||||
/// mirrors it, and the SkillDefinition assets are generated from the JSON.
|
||||
///
|
||||
/// A writer edits the markdown and runs tools/writing/sync_voices.py --to-json. If they
|
||||
/// forget, or if someone edits the JSON prose directly, the two drift and the shipped
|
||||
/// voice stops matching the sheet the next scene is written against. That is silent and
|
||||
/// expensive, so it fails here instead.
|
||||
///
|
||||
/// This deliberately does NOT reimplement the markdown parser in C#. It asserts that the
|
||||
/// prose the game ships is present verbatim in the sheet, which catches drift in either
|
||||
/// direction without a second parser to keep in step with the Python one.
|
||||
/// </summary>
|
||||
public class VoiceSheetSyncTests
|
||||
{
|
||||
const string DatabasePath = "Assets/Skills/SkillDatabase.asset";
|
||||
|
||||
static string VoicesDir =>
|
||||
Path.GetFullPath(Path.Combine(Application.dataPath, "..", "..", "writing", "voices"));
|
||||
|
||||
static string SheetPath(string id) => Path.Combine(VoicesDir, id + ".md");
|
||||
|
||||
SkillDatabase LoadDatabase()
|
||||
{
|
||||
var db = AssetDatabase.LoadAssetAtPath<SkillDatabase>(DatabasePath);
|
||||
Assert.IsNotNull(db, $"Expected SkillDatabase at {DatabasePath}");
|
||||
return db;
|
||||
}
|
||||
|
||||
/// <summary>Files in voices/ that are prose for the writer, not a voice sheet.</summary>
|
||||
static bool IsSupportingDoc(string name) =>
|
||||
name.StartsWith("_") ||
|
||||
string.Equals(name, "README", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
/// <summary>Collapse whitespace so a hard-wrapped sheet still matches a single-line source.</summary>
|
||||
static string Flatten(string s) =>
|
||||
Regex.Replace(s ?? string.Empty, @"\s+", " ").Trim();
|
||||
|
||||
[Test]
|
||||
public void EverySkill_HasAVoiceSheet()
|
||||
{
|
||||
Assert.IsTrue(Directory.Exists(VoicesDir), $"Expected the voice sheets at {VoicesDir}");
|
||||
|
||||
var missing = LoadDatabase().All
|
||||
.Where(s => !File.Exists(SheetPath(s.Id)))
|
||||
.Select(s => s.Id)
|
||||
.ToList();
|
||||
|
||||
Assert.IsEmpty(missing,
|
||||
"No voice sheet for: " + string.Join(", ", missing) +
|
||||
". Run: python3 tools/writing/sync_voices.py --to-md");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void EveryVoiceSheet_HasASkill()
|
||||
{
|
||||
Assert.IsTrue(Directory.Exists(VoicesDir), $"Expected the voice sheets at {VoicesDir}");
|
||||
|
||||
var ids = new HashSet<string>(LoadDatabase().All.Select(s => s.Id));
|
||||
var orphans = Directory.GetFiles(VoicesDir, "*.md")
|
||||
.Select(Path.GetFileNameWithoutExtension)
|
||||
.Where(name => !IsSupportingDoc(name) && !ids.Contains(name))
|
||||
.ToList();
|
||||
|
||||
Assert.IsEmpty(orphans,
|
||||
"Voice sheets with no matching skill id: " + string.Join(", ", orphans));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void VoiceSheets_MatchTheShippedProse()
|
||||
{
|
||||
var problems = new List<string>();
|
||||
|
||||
foreach (var skill in LoadDatabase().All)
|
||||
{
|
||||
var path = SheetPath(skill.Id);
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
continue; // EverySkill_HasAVoiceSheet reports this
|
||||
}
|
||||
|
||||
var sheet = Flatten(File.ReadAllText(path));
|
||||
|
||||
if (!sheet.Contains(Flatten("# " + skill.DisplayName)))
|
||||
{
|
||||
problems.Add($"{skill.Id}: sheet title does not match displayName '{skill.DisplayName}'");
|
||||
}
|
||||
|
||||
if (!sheet.Contains(Flatten(skill.Domain)))
|
||||
{
|
||||
problems.Add($"{skill.Id}: the domain text is not in the sheet");
|
||||
}
|
||||
|
||||
foreach (var line in VoiceSamples(skill.Notes))
|
||||
{
|
||||
if (!sheet.Contains(Flatten(line)))
|
||||
{
|
||||
var preview = line.Length > 60 ? line.Substring(0, 60) + "…" : line;
|
||||
problems.Add($"{skill.Id}: voice sample missing from the sheet: {preview}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Assert.IsEmpty(problems,
|
||||
"writing/voices/*.md has drifted from skill_bible.json:\n " +
|
||||
string.Join("\n ", problems) +
|
||||
"\n\nProse is authored in the markdown. If you changed it there, run:\n" +
|
||||
" python3 tools/writing/sync_voices.py --to-json\n" +
|
||||
"If you changed the JSON directly, move the change into the sheet instead.");
|
||||
}
|
||||
|
||||
/// <summary>The SUCCESS / FAILURE / PASSIVE lines out of a Skill Bible notes blob.</summary>
|
||||
static IEnumerable<string> VoiceSamples(string notes)
|
||||
{
|
||||
if (string.IsNullOrEmpty(notes))
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
foreach (var raw in notes.Split('\n'))
|
||||
{
|
||||
var match = Regex.Match(raw, @"^(?:SUCCESS|FAILURE|PASSIVE) VOICE(?: — .*?)?: (.+)$");
|
||||
if (match.Success)
|
||||
{
|
||||
yield return match.Groups[1].Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f51db402df844805947fea0f2d43dfbc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,158 +1,158 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
[CustomEditor(typeof(Readme))]
|
||||
[InitializeOnLoad]
|
||||
public class ReadmeEditor : Editor {
|
||||
|
||||
static string kShowedReadmeSessionStateName = "ReadmeEditor.showedReadme";
|
||||
|
||||
static float kSpace = 16f;
|
||||
|
||||
static ReadmeEditor()
|
||||
{
|
||||
EditorApplication.delayCall += SelectReadmeAutomatically;
|
||||
}
|
||||
|
||||
static void SelectReadmeAutomatically()
|
||||
{
|
||||
if (!SessionState.GetBool(kShowedReadmeSessionStateName, false ))
|
||||
{
|
||||
var readme = SelectReadme();
|
||||
SessionState.SetBool(kShowedReadmeSessionStateName, true);
|
||||
|
||||
if (readme && !readme.loadedLayout)
|
||||
{
|
||||
LoadLayout();
|
||||
readme.loadedLayout = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadLayout()
|
||||
{
|
||||
var assembly = typeof(EditorApplication).Assembly;
|
||||
var windowLayoutType = assembly.GetType("UnityEditor.WindowLayout", true);
|
||||
var method = windowLayoutType.GetMethod("LoadWindowLayout", BindingFlags.Public | BindingFlags.Static);
|
||||
method.Invoke(null, new object[]{Path.Combine(Application.dataPath, "TutorialInfo/Layout.wlt"), false});
|
||||
}
|
||||
|
||||
[MenuItem("Tutorial/Show Tutorial Instructions")]
|
||||
static Readme SelectReadme()
|
||||
{
|
||||
var ids = AssetDatabase.FindAssets("Readme t:Readme");
|
||||
if (ids.Length == 1)
|
||||
{
|
||||
var readmeObject = AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath(ids[0]));
|
||||
|
||||
Selection.objects = new UnityEngine.Object[]{readmeObject};
|
||||
|
||||
return (Readme)readmeObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("Couldn't find a readme");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnHeaderGUI()
|
||||
{
|
||||
var readme = (Readme)target;
|
||||
Init();
|
||||
|
||||
var iconWidth = Mathf.Min(EditorGUIUtility.currentViewWidth/3f - 20f, 128f);
|
||||
|
||||
GUILayout.BeginHorizontal("In BigTitle");
|
||||
{
|
||||
GUILayout.Label(readme.icon, GUILayout.Width(iconWidth), GUILayout.Height(iconWidth));
|
||||
GUILayout.Label(readme.title, TitleStyle);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
var readme = (Readme)target;
|
||||
Init();
|
||||
|
||||
foreach (var section in readme.sections)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(section.heading))
|
||||
{
|
||||
GUILayout.Label(section.heading, HeadingStyle);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(section.text))
|
||||
{
|
||||
GUILayout.Label(section.text, BodyStyle);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(section.linkText))
|
||||
{
|
||||
if (LinkLabel(new GUIContent(section.linkText)))
|
||||
{
|
||||
Application.OpenURL(section.url);
|
||||
}
|
||||
}
|
||||
GUILayout.Space(kSpace);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool m_Initialized;
|
||||
|
||||
GUIStyle LinkStyle { get { return m_LinkStyle; } }
|
||||
[SerializeField] GUIStyle m_LinkStyle;
|
||||
|
||||
GUIStyle TitleStyle { get { return m_TitleStyle; } }
|
||||
[SerializeField] GUIStyle m_TitleStyle;
|
||||
|
||||
GUIStyle HeadingStyle { get { return m_HeadingStyle; } }
|
||||
[SerializeField] GUIStyle m_HeadingStyle;
|
||||
|
||||
GUIStyle BodyStyle { get { return m_BodyStyle; } }
|
||||
[SerializeField] GUIStyle m_BodyStyle;
|
||||
|
||||
void Init()
|
||||
{
|
||||
if (m_Initialized)
|
||||
return;
|
||||
m_BodyStyle = new GUIStyle(EditorStyles.label);
|
||||
m_BodyStyle.wordWrap = true;
|
||||
m_BodyStyle.fontSize = 14;
|
||||
|
||||
m_TitleStyle = new GUIStyle(m_BodyStyle);
|
||||
m_TitleStyle.fontSize = 26;
|
||||
|
||||
m_HeadingStyle = new GUIStyle(m_BodyStyle);
|
||||
m_HeadingStyle.fontSize = 18 ;
|
||||
|
||||
m_LinkStyle = new GUIStyle(m_BodyStyle);
|
||||
m_LinkStyle.wordWrap = false;
|
||||
// Match selection color which works nicely for both light and dark skins
|
||||
m_LinkStyle.normal.textColor = new Color (0x00/255f, 0x78/255f, 0xDA/255f, 1f);
|
||||
m_LinkStyle.stretchWidth = false;
|
||||
|
||||
m_Initialized = true;
|
||||
}
|
||||
|
||||
bool LinkLabel (GUIContent label, params GUILayoutOption[] options)
|
||||
{
|
||||
var position = GUILayoutUtility.GetRect(label, LinkStyle, options);
|
||||
|
||||
Handles.BeginGUI ();
|
||||
Handles.color = LinkStyle.normal.textColor;
|
||||
Handles.DrawLine (new Vector3(position.xMin, position.yMax), new Vector3(position.xMax, position.yMax));
|
||||
Handles.color = Color.white;
|
||||
Handles.EndGUI ();
|
||||
|
||||
EditorGUIUtility.AddCursorRect (position, MouseCursor.Link);
|
||||
|
||||
return GUI.Button (position, label, LinkStyle);
|
||||
}
|
||||
}
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
[CustomEditor(typeof(Readme))]
|
||||
[InitializeOnLoad]
|
||||
public class ReadmeEditor : Editor {
|
||||
|
||||
static string kShowedReadmeSessionStateName = "ReadmeEditor.showedReadme";
|
||||
|
||||
static float kSpace = 16f;
|
||||
|
||||
static ReadmeEditor()
|
||||
{
|
||||
EditorApplication.delayCall += SelectReadmeAutomatically;
|
||||
}
|
||||
|
||||
static void SelectReadmeAutomatically()
|
||||
{
|
||||
if (!SessionState.GetBool(kShowedReadmeSessionStateName, false ))
|
||||
{
|
||||
var readme = SelectReadme();
|
||||
SessionState.SetBool(kShowedReadmeSessionStateName, true);
|
||||
|
||||
if (readme && !readme.loadedLayout)
|
||||
{
|
||||
LoadLayout();
|
||||
readme.loadedLayout = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadLayout()
|
||||
{
|
||||
var assembly = typeof(EditorApplication).Assembly;
|
||||
var windowLayoutType = assembly.GetType("UnityEditor.WindowLayout", true);
|
||||
var method = windowLayoutType.GetMethod("LoadWindowLayout", BindingFlags.Public | BindingFlags.Static);
|
||||
method.Invoke(null, new object[]{Path.Combine(Application.dataPath, "TutorialInfo/Layout.wlt"), false});
|
||||
}
|
||||
|
||||
[MenuItem("Tutorial/Show Tutorial Instructions")]
|
||||
static Readme SelectReadme()
|
||||
{
|
||||
var ids = AssetDatabase.FindAssets("Readme t:Readme");
|
||||
if (ids.Length == 1)
|
||||
{
|
||||
var readmeObject = AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath(ids[0]));
|
||||
|
||||
Selection.objects = new UnityEngine.Object[]{readmeObject};
|
||||
|
||||
return (Readme)readmeObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("Couldn't find a readme");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnHeaderGUI()
|
||||
{
|
||||
var readme = (Readme)target;
|
||||
Init();
|
||||
|
||||
var iconWidth = Mathf.Min(EditorGUIUtility.currentViewWidth/3f - 20f, 128f);
|
||||
|
||||
GUILayout.BeginHorizontal("In BigTitle");
|
||||
{
|
||||
GUILayout.Label(readme.icon, GUILayout.Width(iconWidth), GUILayout.Height(iconWidth));
|
||||
GUILayout.Label(readme.title, TitleStyle);
|
||||
}
|
||||
GUILayout.EndHorizontal();
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
var readme = (Readme)target;
|
||||
Init();
|
||||
|
||||
foreach (var section in readme.sections)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(section.heading))
|
||||
{
|
||||
GUILayout.Label(section.heading, HeadingStyle);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(section.text))
|
||||
{
|
||||
GUILayout.Label(section.text, BodyStyle);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(section.linkText))
|
||||
{
|
||||
if (LinkLabel(new GUIContent(section.linkText)))
|
||||
{
|
||||
Application.OpenURL(section.url);
|
||||
}
|
||||
}
|
||||
GUILayout.Space(kSpace);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool m_Initialized;
|
||||
|
||||
GUIStyle LinkStyle { get { return m_LinkStyle; } }
|
||||
[SerializeField] GUIStyle m_LinkStyle;
|
||||
|
||||
GUIStyle TitleStyle { get { return m_TitleStyle; } }
|
||||
[SerializeField] GUIStyle m_TitleStyle;
|
||||
|
||||
GUIStyle HeadingStyle { get { return m_HeadingStyle; } }
|
||||
[SerializeField] GUIStyle m_HeadingStyle;
|
||||
|
||||
GUIStyle BodyStyle { get { return m_BodyStyle; } }
|
||||
[SerializeField] GUIStyle m_BodyStyle;
|
||||
|
||||
void Init()
|
||||
{
|
||||
if (m_Initialized)
|
||||
return;
|
||||
m_BodyStyle = new GUIStyle(EditorStyles.label);
|
||||
m_BodyStyle.wordWrap = true;
|
||||
m_BodyStyle.fontSize = 14;
|
||||
|
||||
m_TitleStyle = new GUIStyle(m_BodyStyle);
|
||||
m_TitleStyle.fontSize = 26;
|
||||
|
||||
m_HeadingStyle = new GUIStyle(m_BodyStyle);
|
||||
m_HeadingStyle.fontSize = 18 ;
|
||||
|
||||
m_LinkStyle = new GUIStyle(m_BodyStyle);
|
||||
m_LinkStyle.wordWrap = false;
|
||||
// Match selection color which works nicely for both light and dark skins
|
||||
m_LinkStyle.normal.textColor = new Color (0x00/255f, 0x78/255f, 0xDA/255f, 1f);
|
||||
m_LinkStyle.stretchWidth = false;
|
||||
|
||||
m_Initialized = true;
|
||||
}
|
||||
|
||||
bool LinkLabel (GUIContent label, params GUILayoutOption[] options)
|
||||
{
|
||||
var position = GUILayoutUtility.GetRect(label, LinkStyle, options);
|
||||
|
||||
Handles.BeginGUI ();
|
||||
Handles.color = LinkStyle.normal.textColor;
|
||||
Handles.DrawLine (new Vector3(position.xMin, position.yMax), new Vector3(position.xMax, position.yMax));
|
||||
Handles.color = Color.white;
|
||||
Handles.EndGUI ();
|
||||
|
||||
EditorGUIUtility.AddCursorRect (position, MouseCursor.Link);
|
||||
|
||||
return GUI.Button (position, label, LinkStyle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class Readme : ScriptableObject {
|
||||
public Texture2D icon;
|
||||
public string title;
|
||||
public Section[] sections;
|
||||
public bool loadedLayout;
|
||||
|
||||
[Serializable]
|
||||
public class Section {
|
||||
public string heading, text, linkText, url;
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class Readme : ScriptableObject {
|
||||
public Texture2D icon;
|
||||
public string title;
|
||||
public Section[] sections;
|
||||
public bool loadedLayout;
|
||||
|
||||
[Serializable]
|
||||
public class Section {
|
||||
public string heading, text, linkText, url;
|
||||
}
|
||||
}
|
||||
|
||||
+45
-20
@@ -10,7 +10,7 @@ Companion reading: `docs/skill-system-refactor-plan.md`, `docs/candidate-system-
|
||||
|
||||
---
|
||||
|
||||
## 0. Status — Phase 0 is complete
|
||||
## 0. Status — Phases 0 and 2 are complete
|
||||
|
||||
Executed 2026-08-25. The working tree is clean and tagged `pre-restructure`.
|
||||
|
||||
@@ -19,7 +19,7 @@ the UI layer, player control setup, the dialogue-vs-menu interaction fix, and th
|
||||
A full pre-flight backup was taken first (`.tar.gz` of the tree excluding `Library/`, `Temp/`,
|
||||
`Logs/`, and build output) plus a separate copy of the scene file.
|
||||
|
||||
Everything below from §1 onward is unchanged proposal. Nothing in §2–§5 has been applied.
|
||||
Phase 2 (the writing pipeline) is also done — see §4. Phases 1, 3, 4 and 5 remain proposal.
|
||||
|
||||
### 0.1 The binary scene — diagnosis corrected
|
||||
|
||||
@@ -388,8 +388,8 @@ Effort marks are rough: **S** ≲1h, **M** a half day, **L** a day or more.
|
||||
| 0.2 | Full backup of the tree + separate copy of the scene | done |
|
||||
| 0.3 | Commit all uncommitted work in logical slices (§5) | done — 5 commits |
|
||||
| 0.4 | Convert `DialogueTest.unity` to text | **blocked** — Editor-UI only, see §0.1 |
|
||||
| 0.5 | Tag `pre-restructure` | done |
|
||||
| 0.6 | Push `main` and the tag to `origin` | pending |
|
||||
| 0.5 | Tag `pre-restructure` (on a green tree, 39/39) | done |
|
||||
| 0.6 | Push `main` and the tag to `origin` | done |
|
||||
|
||||
0.4 is the one open item and it does not block Phase 1 or 2.
|
||||
|
||||
@@ -405,20 +405,41 @@ Effort marks are rough: **S** ≲1h, **M** a half day, **L** a day or more.
|
||||
`.gitattributes` before any restructuring is deliberate — the moment work happens on a branch,
|
||||
scene merges without a merge driver will corrupt files.
|
||||
|
||||
### Phase 2 — writing pipeline (no Unity changes, fully parallel to Phase 3+)
|
||||
### Phase 2 — writing pipeline ✅ DONE (2026-08-25)
|
||||
|
||||
| # | Step | Detail | Effort |
|
||||
|---|---|---|---|
|
||||
| 2.1 | Create `writing/` skeleton + templates | §2.2, §2.3 | S |
|
||||
| 2.2 | **Write `writing/STYLE.md`** | The missing handbook. Recover the rules from `.yarn` header comments and the three `docs/` plans. Highest-value single item in this plan. | M |
|
||||
| 2.3 | Extract `skill_bible.json` `notes` → `writing/voices/*.md` | one-shot script, 11 files | M |
|
||||
| 2.4 | Write the sync script md → JSON + an EditMode drift test | §2.4 | M |
|
||||
| 2.5 | Author the three character sheets | Bartender, Bradford Kane, Chevalier Cassian Thal | M |
|
||||
| 2.6 | Write `writing/README.md` + `YARN-PRIMER.md` | The Cowork session entry point, incl. the YarnCheck caveat (§2.6) | S |
|
||||
| 2.7 | Move `SC101.yarn`'s header rules into `writing/scenes/sc101-*.md` | leave a one-line pointer in the `.yarn` | S |
|
||||
| # | Step | Status |
|
||||
|---|---|---|
|
||||
| 2.1 | `writing/` skeleton + templates | done |
|
||||
| 2.2 | `writing/STYLE.md` | done — **digested from the vault handbook, not reconstructed** (below) |
|
||||
| 2.3 | Extract `skill_bible.json` prose → `writing/voices/*.md` | done — 11 sheets, lossless round-trip |
|
||||
| 2.4 | Sync script + EditMode drift test | done — `tools/writing/sync_voices.py`, `VoiceSheetSyncTests` |
|
||||
| 2.5 | Character sheets | done — Bartender, Chevalier Cassian Thal, Bradford Kane |
|
||||
| 2.6 | `README.md` + `YARN-PRIMER.md` | done, plus `GLOSSARY.md` and `lore/candidates.md` |
|
||||
| 2.7 | SC-101 header rules → scene brief | done — header trimmed to the six rules that bind while editing, rationale moved to the brief |
|
||||
|
||||
Phase 2 touches **no Unity asset at all**. It can proceed while the Editor is open and while
|
||||
Phase 3 is in flight, and it is what unblocks Cowork. Consider doing it first.
|
||||
Validated: EditMode **42/42** (three new), YarnCheck compiles 9 files / 35 nodes, sheets in sync.
|
||||
The drift test was verified to actually fail on drift, not merely to pass.
|
||||
|
||||
#### Phase 2 — what changed against the plan
|
||||
|
||||
Two things, both discovered during execution.
|
||||
|
||||
**The handbook exists.** `docs/skill-system-refactor-plan.md` §2 names it, and it is at
|
||||
`~/Obsidian-Vaults/obsidian-vault/Projects/Active/NightclubArcadia/` — a 874-line
|
||||
`[[Mystery Writing Handbook]]`, plus `[[Character Sheet Handbook]]`, `[[Skill System Draft]]`,
|
||||
`[[Lorebook]]`, `[[Candidate System — Design Explanation]]`, scene specs, and `[[Ground Truth]]`.
|
||||
So §2.2 became a **digest with pointers** rather than a reconstruction, which is both more
|
||||
accurate and honest about where the authoring home is. The vault remains that home.
|
||||
|
||||
**`[[Ground Truth]]` must never enter this repo.** It is the solution document. The premise of
|
||||
the game is that the protagonist's identity never resolves, and a copy of the answer in a git
|
||||
history is exactly how that leaks. This is now stated in `writing/README.md` and `CLAUDE.md` §4.1.
|
||||
|
||||
One thing surfaced that is worth acting on independently: `[[000_OpeningSceneTemplate]]` records
|
||||
SC-101's tone check as **BLOCKED** because the one-page Voice Sheet has never been written — the
|
||||
scene spec could not honestly certify its own tone field. `writing/STYLE.md` §9 now holds that
|
||||
sheet with four fields explicitly unset. Filling them is about half an hour of decisions and it
|
||||
unblocks a check that has been stuck for a while.
|
||||
|
||||
### Phase 3 — scene restructure (the risky part)
|
||||
|
||||
@@ -494,7 +515,10 @@ That turned out to matter — four Unity runs followed, one ending in a `SIGILL`
|
||||
|
||||
Slices rather than one lump, because the restructure will want to revert *part* of this later.
|
||||
|
||||
**Still to do:** push `main` and the tag to `origin`, and the Editor-UI serialization fix (§0.1).
|
||||
6. Fixed two wrong expectations in the locomotion math tests (both test bugs, not
|
||||
production bugs); EditMode is **39/39**. Moved the tag onto that green tree and pushed.
|
||||
|
||||
**Still to do:** the Editor-UI serialization fix (§0.1). That is the only open Phase 0 item.
|
||||
|
||||
### 5.1 Residual risks after checkpointing
|
||||
|
||||
@@ -527,9 +551,10 @@ the world every session.
|
||||
|
||||
## 7. Open questions
|
||||
|
||||
1. **Does a writing handbook exist outside the repo?** `docs/candidate-system-implementation-plan.md`
|
||||
says it exists but is not checked in. If there is a document somewhere, importing it beats
|
||||
reconstructing it (Phase 2.2 assumes reconstruction).
|
||||
1. ~~Does a writing handbook exist outside the repo?~~ **Answered — yes** (Phase 2 notes). It is in the
|
||||
Obsidian vault and is now pointed at rather than duplicated. The open part is whether any of
|
||||
it should eventually move into the repo wholesale; the current answer is no, because the vault
|
||||
is reachable from writing sessions and duplication would drift.
|
||||
2. ~~How did the scene become binary?~~ **Answered** (§0.1): Force Text only converts when the
|
||||
setting changes, so anything that entered binary stays binary. The open part is *how* it
|
||||
first entered binary — most likely created or imported during a Force Binary window. Adding a
|
||||
|
||||
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Summarise an NUnit results file and exit non-zero if anything failed.
|
||||
|
||||
Unity's own docs state there is no common exit-code definition across the
|
||||
components under test, so the results XML is the authority, not $?.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
|
||||
def main(path):
|
||||
try:
|
||||
root = ET.parse(path).getroot()
|
||||
except FileNotFoundError:
|
||||
print(f"no results at {path} — the run did not get far enough to write one")
|
||||
return 1
|
||||
except ET.ParseError as exc:
|
||||
print(f"could not parse {path}: {exc}")
|
||||
return 1
|
||||
|
||||
total = int(root.get("total") or 0)
|
||||
passed = int(root.get("passed") or 0)
|
||||
failed = int(root.get("failed") or 0)
|
||||
skipped = int(root.get("skipped") or 0)
|
||||
|
||||
for case in root.iter("test-case"):
|
||||
if case.get("result") == "Passed":
|
||||
continue
|
||||
print(f"FAIL {case.get('fullname')}")
|
||||
message = case.find("failure/message")
|
||||
if message is not None and message.text:
|
||||
for line in message.text.strip().splitlines()[:6]:
|
||||
print(f" {line}")
|
||||
|
||||
if total == 0:
|
||||
print("no tests ran")
|
||||
else:
|
||||
print(f"{passed}/{total} passed" + (f", {skipped} skipped" if skipped else ""))
|
||||
return 1 if failed else 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else ".test-results/editmode.xml"))
|
||||
@@ -0,0 +1,277 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Sync the eleven voice sheets between writing/voices/*.md and skill_bible.json.
|
||||
|
||||
Direction of truth, per field. This is the whole design; read it before changing
|
||||
anything here.
|
||||
|
||||
PROSE writing/voices/<id>.md -> skill_bible.json (displayName, domain, notes)
|
||||
MACHINE skill_bible.json -> writing/voices/<id>.md ("Machine fields" block)
|
||||
|
||||
A writer edits prose in the markdown and never opens the JSON. An engineer edits
|
||||
machine fields in the JSON and never hand-writes the markdown table. Neither
|
||||
direction is ambiguous, so nothing silently wins.
|
||||
|
||||
Usage:
|
||||
sync_voices.py --to-md regenerate every .md from the JSON (initial extraction,
|
||||
and to refresh the machine block afterwards)
|
||||
sync_voices.py --to-json fold the markdown prose back into skill_bible.json
|
||||
sync_voices.py --check verify the two are in sync; exit 1 if not
|
||||
|
||||
Wrapped prose is fine: lines inside a section are joined with single spaces, so a
|
||||
writer may hard-wrap a paragraph without changing what lands in the JSON.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
import voicelib
|
||||
|
||||
ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
JSON_PATH = os.path.join(ROOT, "NightclubArcadia", "Assets", "Skills", "skill_bible.json")
|
||||
VOICES_DIR = os.path.join(ROOT, "writing", "voices")
|
||||
|
||||
GEN_START = "<!-- GENERATED FROM skill_bible.json — do not edit by hand -->"
|
||||
GEN_END = "<!-- END GENERATED -->"
|
||||
|
||||
# markdown heading -> notes field key
|
||||
SECTIONS = [
|
||||
("Domain", "domain"),
|
||||
("What it wants for you", "what it wants for you"),
|
||||
("What it's wrong about", "what it's wrong about"),
|
||||
("How it addresses you", "how it addresses you"),
|
||||
("Register", "register"),
|
||||
("What it never does", "what it never does"),
|
||||
("Opposed to", "opposed to"),
|
||||
("Allied with", "allied with"),
|
||||
("Domains it must not comment on", "__forbidden"),
|
||||
]
|
||||
|
||||
|
||||
def machine_block(s):
|
||||
allied = ", ".join(f"`{a}`" for a in s.get("alliedWith", [])) or "—"
|
||||
c = s.get("accentColor", {})
|
||||
return "\n".join([
|
||||
GEN_START,
|
||||
"",
|
||||
"| Field | Value |",
|
||||
"|---|---|",
|
||||
f"| id | `{s['id']}` |",
|
||||
f"| axis | {s.get('axis','—')} |",
|
||||
f"| opposed to | `{s.get('opposedTo','—')}` |",
|
||||
f"| allied with | {allied} |",
|
||||
f"| primary channel | {s.get('primaryChannel','—')} |",
|
||||
f"| secondary channel | {s.get('secondaryChannel','—')} |",
|
||||
f"| clue yield | {s.get('clueYield','—')} |",
|
||||
f"| starting rank | {s.get('startingRank','—')} |",
|
||||
f"| target firings/hour | {s.get('targetFiringsPerHour','—')} |",
|
||||
f"| accent colour | rgba({c.get('r')}, {c.get('g')}, {c.get('b')}, {c.get('a')}) |",
|
||||
"",
|
||||
GEN_END,
|
||||
])
|
||||
|
||||
|
||||
def to_md(s):
|
||||
d = voicelib.parse_notes(s["notes"])
|
||||
f = d["fields"]
|
||||
L = [
|
||||
"---",
|
||||
f"id: {s['id']}",
|
||||
"---",
|
||||
"",
|
||||
f"# {f['name']}",
|
||||
"",
|
||||
"> Voice sheet. **The prose below is the source of truth** — edit it here, then run",
|
||||
"> `python3 tools/writing/sync_voices.py --to-json`. The machine table is generated",
|
||||
"> from `skill_bible.json`; changing it here does nothing.",
|
||||
"",
|
||||
"## Machine fields",
|
||||
"",
|
||||
machine_block(s),
|
||||
"",
|
||||
]
|
||||
for heading, key in SECTIONS:
|
||||
L.append(f"## {heading}")
|
||||
L.append("")
|
||||
L.append(d["forbidden"] if key == "__forbidden" else f[key])
|
||||
L.append("")
|
||||
|
||||
L.append("## Verbal tics")
|
||||
L.append("")
|
||||
for n, text in d["tics"]:
|
||||
L.append(f"{n}. {text}")
|
||||
L.append("")
|
||||
|
||||
L.append("## Voice samples")
|
||||
L.append("")
|
||||
for kind in ("success", "failure", "passive"):
|
||||
L.append(f"### {kind.capitalize()}")
|
||||
L.append("")
|
||||
if kind in d["voice_gloss"]:
|
||||
L.append(f"*{d['voice_gloss'][kind]}*")
|
||||
L.append("")
|
||||
L.append(f"> {d['voices'][kind]}")
|
||||
L.append("")
|
||||
|
||||
L.append("## Firing frequency")
|
||||
L.append("")
|
||||
L.append(f"{d['firing']} per hour (target).")
|
||||
L.append("")
|
||||
return "\n".join(L)
|
||||
|
||||
|
||||
def _join(lines):
|
||||
return " ".join(x.strip() for x in lines if x.strip())
|
||||
|
||||
|
||||
def from_md(text, skill_id):
|
||||
"""markdown -> the dict voicelib.emit_notes expects."""
|
||||
body = re.sub(re.escape(GEN_START) + r".*?" + re.escape(GEN_END), "", text, flags=re.S)
|
||||
|
||||
name_m = re.search(r"^# (.+)$", body, re.M)
|
||||
if not name_m:
|
||||
raise ValueError(f"{skill_id}: no H1 title")
|
||||
|
||||
chunks = {}
|
||||
for m in re.finditer(r"^##+ (.+?)$\n(.*?)(?=^##+ |\Z)", body, re.M | re.S):
|
||||
chunks.setdefault(m.group(1).strip(), []).append(m.group(2))
|
||||
|
||||
def need(h):
|
||||
if h not in chunks:
|
||||
raise ValueError(f"{skill_id}: missing section '## {h}'")
|
||||
return chunks[h][0]
|
||||
|
||||
fields = {"name": name_m.group(1).strip()}
|
||||
forbidden = None
|
||||
for heading, key in SECTIONS:
|
||||
val = _join(need(heading).split("\n"))
|
||||
if key == "__forbidden":
|
||||
forbidden = val
|
||||
else:
|
||||
fields[key] = val
|
||||
|
||||
tics = []
|
||||
for line in need("Verbal tics").split("\n"):
|
||||
m = re.match(r"^\s*(\d+)\.\s+(.*)$", line)
|
||||
if m:
|
||||
tics.append((int(m.group(1)), m.group(2).strip()))
|
||||
|
||||
voices, gloss = {}, {}
|
||||
for kind in ("Success", "Failure", "Passive"):
|
||||
sec = need(kind)
|
||||
q = [l for l in sec.split("\n") if l.strip().startswith(">")]
|
||||
if not q:
|
||||
raise ValueError(f"{skill_id}: '### {kind}' has no quoted line")
|
||||
voices[kind.lower()] = _join([re.sub(r"^\s*>\s?", "", l) for l in q])
|
||||
g = re.search(r"^\*(.+)\*$", sec.strip(), re.M)
|
||||
if g:
|
||||
gloss[kind.lower()] = g.group(1).strip()
|
||||
|
||||
fm = re.search(r"(\d+)\s+per hour", need("Firing frequency"))
|
||||
if not fm:
|
||||
raise ValueError(f"{skill_id}: could not read firing frequency")
|
||||
|
||||
return {
|
||||
"_header": "SKILL",
|
||||
"fields": fields,
|
||||
"tics": tics,
|
||||
"voices": voices,
|
||||
"voice_gloss": gloss,
|
||||
"firing": int(fm.group(1)),
|
||||
"forbidden": forbidden,
|
||||
}
|
||||
|
||||
|
||||
def load_json():
|
||||
with open(JSON_PATH, encoding="utf-8") as fh:
|
||||
return json.load(fh)
|
||||
|
||||
|
||||
def md_path(skill_id):
|
||||
return os.path.join(VOICES_DIR, f"{skill_id}.md")
|
||||
|
||||
|
||||
def cmd_to_md(data):
|
||||
os.makedirs(VOICES_DIR, exist_ok=True)
|
||||
for s in data["skills"]:
|
||||
with open(md_path(s["id"]), "w", encoding="utf-8") as fh:
|
||||
fh.write(to_md(s))
|
||||
print(f"wrote writing/voices/{s['id']}.md")
|
||||
|
||||
|
||||
def rebuilt(s):
|
||||
with open(md_path(s["id"]), encoding="utf-8") as fh:
|
||||
d = from_md(fh.read(), s["id"])
|
||||
return d, voicelib.emit_notes(d)
|
||||
|
||||
|
||||
def cmd_check(data):
|
||||
problems = []
|
||||
for s in data["skills"]:
|
||||
if not os.path.exists(md_path(s["id"])):
|
||||
problems.append(f"{s['id']}: writing/voices/{s['id']}.md is missing")
|
||||
continue
|
||||
try:
|
||||
d, notes = rebuilt(s)
|
||||
except Exception as e:
|
||||
problems.append(f"{s['id']}: {e}")
|
||||
continue
|
||||
if notes != s["notes"]:
|
||||
problems.append(f"{s['id']}: prose differs from skill_bible.json notes")
|
||||
if d["fields"]["name"] != s["displayName"]:
|
||||
problems.append(f"{s['id']}: title differs from displayName")
|
||||
if d["fields"]["domain"] != s["domain"]:
|
||||
problems.append(f"{s['id']}: domain differs from the JSON domain field")
|
||||
if d["firing"] != s.get("targetFiringsPerHour"):
|
||||
problems.append(
|
||||
f"{s['id']}: firing frequency {d['firing']} != "
|
||||
f"targetFiringsPerHour {s.get('targetFiringsPerHour')}")
|
||||
for p in problems:
|
||||
print("DRIFT:", p)
|
||||
if problems:
|
||||
print(f"\n{len(problems)} problem(s). Run --to-json (prose changed) "
|
||||
f"or --to-md (machine fields changed).")
|
||||
return 1
|
||||
print(f"in sync — {len(data['skills'])} voice sheets")
|
||||
return 0
|
||||
|
||||
|
||||
def cmd_to_json(data):
|
||||
changed = []
|
||||
for s in data["skills"]:
|
||||
d, notes = rebuilt(s)
|
||||
if (notes != s["notes"] or d["fields"]["name"] != s["displayName"]
|
||||
or d["fields"]["domain"] != s["domain"]):
|
||||
changed.append(s["id"])
|
||||
s["notes"] = notes
|
||||
s["displayName"] = d["fields"]["name"]
|
||||
s["domain"] = d["fields"]["domain"]
|
||||
s["targetFiringsPerHour"] = d["firing"]
|
||||
with open(JSON_PATH, "w", encoding="utf-8") as fh:
|
||||
json.dump(data, fh, indent=2, ensure_ascii=False)
|
||||
fh.write("\n")
|
||||
print("updated skill_bible.json" + (f" — changed: {', '.join(changed)}" if changed else " — no prose changes"))
|
||||
|
||||
|
||||
def main():
|
||||
ap = argparse.ArgumentParser(description=__doc__,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
g = ap.add_mutually_exclusive_group(required=True)
|
||||
g.add_argument("--to-md", action="store_true")
|
||||
g.add_argument("--to-json", action="store_true")
|
||||
g.add_argument("--check", action="store_true")
|
||||
a = ap.parse_args()
|
||||
data = load_json()
|
||||
if a.to_md:
|
||||
cmd_to_md(data)
|
||||
elif a.to_json:
|
||||
cmd_to_json(data)
|
||||
else:
|
||||
sys.exit(cmd_check(data))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,120 @@
|
||||
"""Parse and re-emit the Skill Bible prose that lives in skill_bible.json.
|
||||
|
||||
The `notes` field of each skill is a plain-text sheet with a fixed shape. This
|
||||
module converts between that string and a structured dict, losslessly, so the
|
||||
prose can live in writing/voices/*.md and still be folded back into the JSON.
|
||||
|
||||
Round-tripping is the whole contract: notes -> dict -> notes must be identity
|
||||
for every skill in the bible, and check_roundtrip() asserts exactly that.
|
||||
"""
|
||||
|
||||
import re
|
||||
|
||||
PROSE_KEYS = [
|
||||
"name",
|
||||
"domain",
|
||||
"what it wants for you",
|
||||
"what it's wrong about",
|
||||
"how it addresses you",
|
||||
"register",
|
||||
]
|
||||
# "verbal tics" is handled separately (it carries bullets)
|
||||
TAIL_KEYS = ["what it never does", "opposed to", "allied with"]
|
||||
|
||||
VOICE_RE = re.compile(r'^(SUCCESS|FAILURE|PASSIVE) VOICE(?: — (.*?))?: (.*)$')
|
||||
FIRING_RE = re.compile(r'^Firing frequency target \(per hour\): (\d+)$')
|
||||
FORBID_RE = re.compile(r'^Domains it must NOT comment on: (.*)$')
|
||||
BULLET_RE = re.compile(r'^\* \((\d+)\) (.*)$')
|
||||
|
||||
|
||||
def parse_notes(notes):
|
||||
"""notes string -> dict. Raises on anything unrecognised."""
|
||||
out = {"fields": {}, "tics": [], "voices": {}, "voice_gloss": {}}
|
||||
lines = notes.split("\n")
|
||||
i = 0
|
||||
if lines[i].strip() != "SKILL":
|
||||
raise ValueError("expected a leading SKILL line")
|
||||
out["_header"] = lines[i]
|
||||
i += 1
|
||||
|
||||
while i < len(lines):
|
||||
line = lines[i]
|
||||
|
||||
if line.strip() == "":
|
||||
i += 1
|
||||
continue
|
||||
|
||||
m = BULLET_RE.match(line)
|
||||
if m:
|
||||
out["tics"].append((int(m.group(1)), m.group(2)))
|
||||
i += 1
|
||||
continue
|
||||
|
||||
m = VOICE_RE.match(line)
|
||||
if m:
|
||||
kind = m.group(1).lower()
|
||||
out["voices"][kind] = m.group(3)
|
||||
if m.group(2):
|
||||
out["voice_gloss"][kind] = m.group(2)
|
||||
i += 1
|
||||
continue
|
||||
|
||||
m = FIRING_RE.match(line)
|
||||
if m:
|
||||
out["firing"] = int(m.group(1))
|
||||
i += 1
|
||||
continue
|
||||
|
||||
m = FORBID_RE.match(line)
|
||||
if m:
|
||||
out["forbidden"] = m.group(1)
|
||||
i += 1
|
||||
continue
|
||||
|
||||
m = re.match(r"^([a-z][a-z '\-]*): ?(.*)$", line)
|
||||
if m and m.group(1) in PROSE_KEYS + TAIL_KEYS + ["verbal tics"]:
|
||||
out["fields"][m.group(1)] = m.group(2)
|
||||
i += 1
|
||||
continue
|
||||
|
||||
raise ValueError(f"unrecognised line: {line!r}")
|
||||
|
||||
return out
|
||||
|
||||
|
||||
def emit_notes(d):
|
||||
"""dict -> notes string. Inverse of parse_notes."""
|
||||
L = [d.get("_header", "SKILL")]
|
||||
for k in PROSE_KEYS:
|
||||
L.append(f"{k}: {d['fields'][k]}")
|
||||
L.append("verbal tics:")
|
||||
for n, text in d["tics"]:
|
||||
L.append(f"* ({n}) {text}")
|
||||
for k in TAIL_KEYS:
|
||||
L.append(f"{k}: {d['fields'][k]}")
|
||||
L.append("")
|
||||
for kind in ("success", "failure", "passive"):
|
||||
gloss = d["voice_gloss"].get(kind)
|
||||
label = f"{kind.upper()} VOICE"
|
||||
if gloss:
|
||||
L.append(f"{label} — {gloss}: {d['voices'][kind]}")
|
||||
else:
|
||||
L.append(f"{label}: {d['voices'][kind]}")
|
||||
L.append("")
|
||||
L.append(f"Firing frequency target (per hour): {d['firing']}")
|
||||
L.append(f"Domains it must NOT comment on: {d['forbidden']}")
|
||||
return "\n".join(L)
|
||||
|
||||
|
||||
def check_roundtrip(skills):
|
||||
"""Assert notes -> dict -> notes is identity for every skill."""
|
||||
bad = []
|
||||
for s in skills:
|
||||
try:
|
||||
again = emit_notes(parse_notes(s["notes"]))
|
||||
except Exception as e:
|
||||
bad.append((s["id"], f"parse error: {e}"))
|
||||
continue
|
||||
if again != s["notes"]:
|
||||
bad.append((s["id"], "round-trip differs"))
|
||||
return bad
|
||||
@@ -0,0 +1,55 @@
|
||||
# Glossary
|
||||
|
||||
In-world and project terms that come up while writing. World history, factions and the timeline
|
||||
live in the Obsidian vault — `[[Lorebook]]`, `[[Timeline notes]]`,
|
||||
`[[Divergence Point Analysis]]` — and this file deliberately does not duplicate them. It covers
|
||||
the vocabulary you need to read a `.yarn` file and a design note without stopping.
|
||||
|
||||
## The project's own terms
|
||||
|
||||
**Voice** — one of the eleven skills. A character in the protagonist's head, not a stat. See `voices/`.
|
||||
|
||||
**Candidate** — one of three live readings of who the protagonist is: the Made Asset, the
|
||||
Journalist, the Inheritor. They are not mutually exclusive and **never resolve**.
|
||||
|
||||
**Lean** — `$self_lean_<candidate>`. A counter of how far play has tilted toward one reading.
|
||||
Tracks *belief*, not truth, which is why a wrong deduction still moves it.
|
||||
|
||||
**Clue** — a registry entry in `Assets/Candidates/candidates.json`. Each candidate has exactly
|
||||
four: one object, one testimony, one document, one intuition.
|
||||
|
||||
**Trace channel** — where a clue physically comes from: physical, testimonial, behavioural,
|
||||
documentary. Used to keep acquisition routes genuinely independent.
|
||||
|
||||
**Wrong Truth** — a failed check that yields a confident, coherent, false conclusion, stated
|
||||
with no hedge in the prose. The workhorse failure of this game.
|
||||
|
||||
**Colour check / gate check** — a check written for texture versus one that controls access to
|
||||
a route. 80–90% should be colour.
|
||||
|
||||
**Bottleneck** — a point every playthrough must pass. Clues required to pass one need multiple
|
||||
independent routes.
|
||||
|
||||
**Detour / jump** — Yarn's two ways to move between nodes; the first returns, the second does not.
|
||||
|
||||
**Node group** — several nodes sharing a `title:`, with `when:` conditions selecting between them.
|
||||
|
||||
**Thread 2 / Thread 9** — two lore threads designed never to resolve. Do not map candidate
|
||||
material onto them.
|
||||
|
||||
**Fugue** — the protagonist's amnesia. Dissociative, and specifically about their own identity
|
||||
rather than an external event. The indeterminacy is the design, not a puzzle with a hidden answer.
|
||||
|
||||
## The cast so far
|
||||
|
||||
| Name | Where | Sheet |
|
||||
|---|---|---|
|
||||
| The Bartender | the bar, SC-101 | [`characters/bartender.md`](characters/bartender.md) |
|
||||
| Chevalier Cassian Thal | the table, SC-101 | [`characters/chevalier-cassian-thal.md`](characters/chevalier-cassian-thal.md) |
|
||||
| Bradford Kane | the table, SC-101 | [`characters/bradford-kane.md`](characters/bradford-kane.md) |
|
||||
| Mr. Doss | referenced only, never seen | — |
|
||||
|
||||
## Scene ids
|
||||
|
||||
`SC101` — The Card at the Desk. The opening; playable end to end.
|
||||
`SC102` — The figure at the head of the table stands up. A one-line stub.
|
||||
@@ -0,0 +1,96 @@
|
||||
# Writing — start here
|
||||
|
||||
This directory is the writing surface for **Nightclub Arcadia**. Everything a session needs
|
||||
to write or revise dialogue lives here or in `Assets/Dialogue/`. You should not need to open
|
||||
Unity, edit C#, or touch a `.asset` file to write a scene, a character, or a branch. If a
|
||||
writing task seems to require any of those, that is a pipeline bug — say so rather than
|
||||
working around it.
|
||||
|
||||
## Read in this order
|
||||
|
||||
| # | File | What it gives you |
|
||||
|---|---|---|
|
||||
| 1 | [`STYLE.md`](STYLE.md) | The register, the five tone moves, the ban list, the rules that govern branching. **Re-read before every session.** |
|
||||
| 2 | [`YARN-PRIMER.md`](YARN-PRIMER.md) | The one page of Yarn syntax you actually need. |
|
||||
| 3 | [`voices/`](voices/) | The eleven skill voices, one sheet each. Who they are and how they talk. |
|
||||
| 4 | [`characters/`](characters/) | The named NPCs. |
|
||||
| 5 | [`scenes/`](scenes/) | Per-scene briefs — intent, beats, constraints. Not the dialogue. |
|
||||
| 6 | [`GLOSSARY.md`](GLOSSARY.md) | In-world terms, and where the deep lore lives. |
|
||||
|
||||
## Where the words actually go
|
||||
|
||||
Playable dialogue lives in **`NightclubArcadia/Assets/Dialogue/`**, not here:
|
||||
|
||||
```
|
||||
Assets/Dialogue/
|
||||
├── Common.yarn every <<declare>>, project-wide. Never played. Add new flags here.
|
||||
├── Commentary.yarn passive skill barks, one node per (context, voice)
|
||||
├── Scenes/ SC101, SC102, Debug
|
||||
├── Characters/ Bartender, Bradford Kane, Chevalier Cassian Thal
|
||||
└── Objects/ Chair
|
||||
```
|
||||
|
||||
A new `.yarn` file anywhere under `Assets/Dialogue/` is picked up automatically — the Yarn
|
||||
project globs `**/*.yarn`. **Adding a scene or a character needs no registration step.**
|
||||
|
||||
This directory holds the *context*; `Assets/Dialogue/` holds the *content*. Keep it that way:
|
||||
never paste dialogue into a sheet here, and never paste a character bio into a `.yarn` file.
|
||||
|
||||
## Check your work before handing it back
|
||||
|
||||
From the repo root:
|
||||
|
||||
```bash
|
||||
cd tools/YarnCheck && dotnet run -- ../../NightclubArcadia/Assets/Dialogue
|
||||
```
|
||||
|
||||
That compiles every Yarn file and reports errors with line numbers. It needs only the .NET 9
|
||||
SDK — no Unity, no licence, no Editor. Run it after any dialogue change.
|
||||
|
||||
You can also *play* a node from the terminal, choosing options by number:
|
||||
|
||||
```bash
|
||||
dotnet run -- ../../NightclubArcadia/Assets/Dialogue Bartender_Talk 2 2 0 0
|
||||
```
|
||||
|
||||
Leftover picks restart the node, which models the player walking away and coming back.
|
||||
|
||||
> **One thing that will confuse you.** YarnCheck stubs the engine's commands, so `<<check>>`
|
||||
> never runs and `$check_result` is always `false`. **Every check-gated branch will show you
|
||||
> its failure side.** That is the harness, not a bug in your writing. To read the success
|
||||
> prose, read the file.
|
||||
|
||||
If you edited a voice sheet in `voices/`, also run:
|
||||
|
||||
```bash
|
||||
python3 tools/writing/sync_voices.py --check
|
||||
```
|
||||
|
||||
## What is yours, and what is not
|
||||
|
||||
**Yours** — edit freely: everything in `writing/`, every `.yarn` file, the `<<declare>>` lines
|
||||
in `Common.yarn`, and the prose fields of `Assets/Candidates/candidates.json`.
|
||||
|
||||
**Not yours** — ask an engineer: any `.cs` file, anything under `Assets/Editor/`, any
|
||||
`.asset` / `.prefab` / `.unity` / `.meta` file, and `ProjectSettings/`. The *implementations*
|
||||
of Yarn commands are code; *using* them is writing.
|
||||
|
||||
## The deeper design material
|
||||
|
||||
The full design documents live in Obsidian, not in this repo, and remain the authoring home
|
||||
for design work:
|
||||
|
||||
`~/Obsidian-Vaults/obsidian-vault/Projects/Active/NightclubArcadia/`
|
||||
|
||||
- `[[Mystery Writing Handbook]]` — the full reference. `STYLE.md` is a dialogue-facing digest of it.
|
||||
- `[[Skill System Draft]]` — the Skill Bible. `voices/` is generated from the shipped subset.
|
||||
- `[[Candidate System — Design Explanation]]` — the three identity readings.
|
||||
- `[[Lorebook]]`, `[[Timeline notes]]`, `[[Divergence Point Analysis]]` — world and history.
|
||||
- `[[Character Sheet Handbook]]` — the full character schema. `characters/_TEMPLATE.md` is its
|
||||
dialogue-facing subset.
|
||||
|
||||
> **`[[Ground Truth]]` is the solution document. Do not copy it, quote it, or summarise it
|
||||
> into this repo — not into a sheet, not into a comment, not into a commit message.** The
|
||||
> game's central premise is that the protagonist's identity never resolves; a copy of the
|
||||
> answer sitting in a git history is how that leaks. If you need to know whether something
|
||||
> contradicts the solution, ask, and keep the answer out of the files.
|
||||
@@ -0,0 +1,271 @@
|
||||
# Style — the register and the rules
|
||||
|
||||
Re-read this before every writing session. It is the anchor against drift, which is the
|
||||
characteristic failure of a solo writer working across a year.
|
||||
|
||||
This is a **dialogue-facing digest**. The full argument for each rule is in
|
||||
`[[Mystery Writing Handbook]]` in the Obsidian vault; section numbers below point into it.
|
||||
Where this file and the handbook disagree, the handbook wins — and this file should be fixed.
|
||||
|
||||
---
|
||||
|
||||
## 1. The register, in one paragraph
|
||||
|
||||
Second person, present tense, unreliable. The narration is a committee — eleven voices with
|
||||
opinions, some of them wrong — and the player is inside the argument rather than being told
|
||||
its result. Concrete over abstract, always. Roughly seventy percent plain, sincere prose, so
|
||||
that the flourishes land when they come. Sentimental underneath the cynicism; that is what
|
||||
makes the cynicism bearable.
|
||||
|
||||
## 2. The five tone moves (§6.4)
|
||||
|
||||
Learn the moves, use your own words. Do not imitate Disco Elysium's prose — imitate its method.
|
||||
|
||||
1. **Concrete over abstract.** Never "the room felt neglected." Name the object that proves it.
|
||||
The failure mode of introspective writing is abstraction; the fix is always a physical particular.
|
||||
2. **Bathos with a return trip.** Rise to something genuinely grand, puncture it with the mundane —
|
||||
*then come back and mean it anyway*. The puncture alone is just irony, and irony alone is cheap.
|
||||
The return is what makes it humane. This is the most-imitated and least-understood DE move.
|
||||
3. **Mock, then love.** Every character gets ridiculed by some voice in your head, and every
|
||||
character then gets one moment where the ridicule is revealed as inadequate to them. No
|
||||
character exists only as a joke.
|
||||
4. **The world speaks through failure.** Broken things describe the society that broke them.
|
||||
Describe what the rent did to the stairwell instead of explaining the political economy.
|
||||
5. **Second person, present tense, unreliable.** "You" and "now" produce intimacy and complicity.
|
||||
|
||||
### The ban list
|
||||
|
||||
- **Quirk with no cost.** A voice that is only funny is decoration.
|
||||
- **Cynicism with no warmth.**
|
||||
- **Everything is a bit.** Straight, plain, sincere sentences are what make the flourishes work.
|
||||
- **Trauma as texture.** If suffering is described, someone in the text takes it seriously.
|
||||
- **Explaining the joke, or the theme.** If the thematic statement appears verbatim in dialogue, cut it.
|
||||
|
||||
### Length discipline
|
||||
|
||||
| Kind of line | Length |
|
||||
|---|---|
|
||||
| Passive skill line | 1–3 sentences |
|
||||
| Success text | 2–5 sentences |
|
||||
| Opening frame | 2–4 sentences |
|
||||
|
||||
If you are writing a paragraph, you are writing an essay, and the player will skim it — which
|
||||
trains them to skim everything else. Long passages are earned at high skill ranks, nowhere else.
|
||||
|
||||
---
|
||||
|
||||
## 3. How voices behave
|
||||
|
||||
A skill is a **character**, not a stat. It wants something for you, and it is wrong about
|
||||
something. Both halves matter: the wrongness is what makes it a voice rather than a hint system.
|
||||
|
||||
- **Voices advocate; they do not report.** A line is that voice's own biased reading, even when
|
||||
it happens to be right. No voice ever states a candidate identity as settled fact.
|
||||
- **Respect the forbidden domains.** Each sheet in `voices/` ends with "domains it must not
|
||||
comment on." PROVENANCE does not discuss appetite. This is characterisation, not bookkeeping.
|
||||
- **Opposed pairs are a writing engine.** Fire both halves of a pair with contradictory readings
|
||||
and you get friction for free. You never have to invent conflict; the cast contains it.
|
||||
- **Cap introductions at three voices per scene.** An opening is many players' first contact with
|
||||
the system, and fewer, stronger first impressions beat a crowded debut.
|
||||
*(From `[[000_OpeningSceneTemplate]]` §3. SC-101 deliberately breaks this with four — one per
|
||||
pair, because each candidate needs its intuition channel present from the start. That is a
|
||||
logged, scene-specific exception. Do not copy it as precedent, and do not "correct" SC-101 down
|
||||
to three.)*
|
||||
- **Passives carry the personality.** Roughly 60–70% of all skill text should be passive. They
|
||||
cost the player nothing and are the main delivery system for character.
|
||||
|
||||
---
|
||||
|
||||
## 4. Checks (§4.4)
|
||||
|
||||
Two kinds, and knowing which you are writing is the whole discipline:
|
||||
|
||||
| | **Colour check** | **Gate check** |
|
||||
|---|---|---|
|
||||
| Purpose | Voice, texture, insight | Controls access to a clue or route |
|
||||
| Share of all checks | 80–90% | 10–20% |
|
||||
| Failure produces | Different *content* | Different *route* |
|
||||
| Redundancy required | None | Always ≥2 independent routes |
|
||||
|
||||
> **A failed gate never removes content. It replaces one route with another.**
|
||||
|
||||
**The two-outcome test — apply before writing any check.** Write the one-line summary of the
|
||||
success and the one-line summary of the failure. If the failure summary is *"the player doesn't
|
||||
get the thing"*, delete the check.
|
||||
|
||||
Other rules that bind:
|
||||
|
||||
- **Never roll for what a competent detective would just do.** If failing is boring, don't roll.
|
||||
Roll only where *both* outcomes are content you want to write.
|
||||
- **Rate-limit active checks** to roughly one per 3–5 minutes of play. Prose rhythm dies under
|
||||
constant dice.
|
||||
- **Use the band names,** not raw numbers: `Trivial` 8, `Routine` 11, `Hard` 14, `Specialist` 17,
|
||||
`BuildDefining` 20. No in-between values.
|
||||
|
||||
### The five productive failures (§4.5)
|
||||
|
||||
Never write a failure that means "nothing happens." Every failed check produces one of:
|
||||
|
||||
| Type | What happens | Best for |
|
||||
|---|---|---|
|
||||
| **Wrong Truth** | A confident, coherent, *false* conclusion | Reason/perception checks |
|
||||
| **Cost** | You get it, and pay — reputation, a relationship, a secret, time | Social checks |
|
||||
| **Detour** | This route closes, an uglier one opens | Gate checks |
|
||||
| **Character** | You learn nothing about the case and something about yourself | Self checks |
|
||||
| **Delayed** | Noted now, resurfaces later at a worse moment | Act transitions |
|
||||
|
||||
Rough distribution across the game: 30% Wrong Truth, 25% Cost, 20% Detour, 15% Character,
|
||||
10% Delayed. Wrong Truth is the workhorse of a mystery and is badly underused in most games.
|
||||
|
||||
### The Wrong Truth rule — the one that is easiest to get wrong
|
||||
|
||||
**A voice that fails does not signal that it failed.** It states its wrong conclusion with
|
||||
exactly the same confidence, cadence and structure as a correct one. The player learns it was
|
||||
wrong through contradiction, later.
|
||||
|
||||
The honest version of the trick: the *roll* is visibly failed in the UI. The player knows a
|
||||
roll failed; they do not know which part of what follows is contaminated. **The UI banner is
|
||||
the only tell. Never put a hedge, a wobble, or a wink in the prose.**
|
||||
|
||||
Compare the two PROVENANCE samples in `voices/provenance.md` — same cadence, same calm, one
|
||||
unearned verb. That is the target.
|
||||
|
||||
---
|
||||
|
||||
## 5. Branching shapes (§2.7)
|
||||
|
||||
Three shapes. Default to the first.
|
||||
|
||||
**A. Hub-and-spoke — ~80% of conversations.** Topics are spokes that return to a hub.
|
||||
Reconvergence is structural, so you get it for free, and cost is linear in topics rather than
|
||||
exponential. `Chair.yarn` is the worked example in this project.
|
||||
|
||||
**B. Short branching tree — ~15%, for confrontations.** Depth ≤ 3. Always reconverge inside the
|
||||
scene. Track the outcome flag, not the path.
|
||||
|
||||
**C. True divergence — 3–5 moments in the entire game.** Endings, the culprit confrontation, one
|
||||
or two irreversible choices. Budget these explicitly.
|
||||
|
||||
**The 3-deep cap.** No conditional nested more than three levels. If you need four, you have a
|
||||
state that should be a flag rather than a path.
|
||||
|
||||
### Node naming
|
||||
|
||||
Existing conventions in this project, which new content should match:
|
||||
|
||||
| Pattern | Used for |
|
||||
|---|---|
|
||||
| `<Character>_Talk` | a character's entry node (`Bartender_Talk`) |
|
||||
| `SC###_Hook_<Subject>` | a scene beat or sub-conversation |
|
||||
| `Commentary_<Context>_<voice_id>` | a passive bark |
|
||||
|
||||
---
|
||||
|
||||
## 6. Flags and variables
|
||||
|
||||
**Every variable must be `<<declare>>`d in `Common.yarn`.** That is what turns `$reputaton`
|
||||
into a compile error instead of a silently-created second variable. Adding a flag is a writing
|
||||
action — you do not need an engineer.
|
||||
|
||||
Families that are load-bearing, two of them lint-enforced against the candidate registry:
|
||||
|
||||
| Family | Meaning | Enforced |
|
||||
|---|---|---|
|
||||
| `$self_lean_<candidate_id>` | identity lean | yes — id must exist in `candidates.json` |
|
||||
| `$found_<clue_id>` | clue coverage | yes — id must exist in `candidates.json` |
|
||||
| `$visited_<location_id>` | first arrival at a location | convention |
|
||||
| `$errand_<errand_id>` | errand reached a state that matters | convention |
|
||||
| `$seen_<scene_id>` | scene witnessed | convention |
|
||||
| `$spoke_to_<character>` | first conversation happened | convention |
|
||||
| `$check_*` | written by `<<check>>` | **never `<<set>>` by hand** |
|
||||
|
||||
### The candidate rules — these are hard constraints
|
||||
|
||||
The protagonist's identity has three live readings and **never resolves**. Three integers track
|
||||
belief, not truth.
|
||||
|
||||
1. **Never compare one lean against another.** Not in Yarn, not in prose, not in a debug line.
|
||||
Comparing a lean to a *constant* is fine and intended. `$self_lean_a > $self_lean_b` must
|
||||
not exist anywhere.
|
||||
2. **No ground-truth field.** Nothing named `isTrue`, `actualIdentity`, `canonical`, or `weight`.
|
||||
3. **Clue availability is exploration-gated, never skill-gated.** An `unlockFlag` names a
|
||||
`$visited_*` or `$errand_*` variable. A clue-bearing node never sits behind a `skill_rank(` guard.
|
||||
4. **Evidence balance.** Each candidate carries exactly one object, one testimony, one document,
|
||||
and one intuition clue. Do not stack types, or trust becomes an artefact of imbalance.
|
||||
5. **Lean is belief, so a Wrong Truth still writes lean.** Being wrong moves the needle. That is
|
||||
the point.
|
||||
|
||||
### Two threads that never resolve
|
||||
|
||||
The project has two permanently unresolved lore threads, referred to as **Thread 2** and
|
||||
**Thread 9**. Candidate material must stay structurally separate from them: do not resolve
|
||||
them, do not map a candidate clue onto them. If you find yourself needing to know what they
|
||||
contain in order to write a line, you are writing the wrong line.
|
||||
|
||||
---
|
||||
|
||||
## 7. Flow control
|
||||
|
||||
`<<detour>>` returns to the caller. `<<jump>>` does not, and clears the return stack.
|
||||
|
||||
- A node started directly by an interactable has nothing waiting on it, so its branches
|
||||
`<<jump>>`, and each destination calls `<<enter_environment>>` itself.
|
||||
- A sub-conversation that must resume its caller uses `<<detour>>` — and **never** `<<jump>>`
|
||||
inside it, which would strand the caller forever.
|
||||
- A menu that loops uses `<<jump>>` back to its own hub, which replaces the current node and
|
||||
pushes nothing.
|
||||
|
||||
Nodes sharing a `title:` form a **node group**; Yarn runs the most specific variation whose
|
||||
`when:` conditions pass. Prefer adding a variation over growing an `<<if>>` chain.
|
||||
|
||||
---
|
||||
|
||||
## 8. Writing order for a scene (§5.5)
|
||||
|
||||
1. Fill the scene brief header — purpose and critical outputs. **Stop.** Confirm the clue routes
|
||||
are registered in `Assets/Candidates/candidates.json`.
|
||||
2. Write the beats as one-line summaries.
|
||||
3. Write the checks table — *both* outcomes as summaries, before any prose.
|
||||
4. Now write prose, in this order: opening frame → success texts → failure texts → passives → barks.
|
||||
5. Update clue `status` in `candidates.json`.
|
||||
|
||||
Do not implement in engine until the act is drafted. Implementing mid-draft is the biggest time
|
||||
sink in solo narrative work, because every structural revision then costs double.
|
||||
|
||||
---
|
||||
|
||||
## 9. The voice sheet
|
||||
|
||||
Five sentences to be proud of, five to cut, three adjectives, one sentence on what the game
|
||||
feels about its world. This is the anchor §6.5 asks for and it is cheaper than re-reading your
|
||||
own draft.
|
||||
|
||||
**Three adjectives for the register:** *(unset — decide these and stop leaving the field open)*
|
||||
|
||||
**What the game feels about its world:** *(unset)*
|
||||
|
||||
**Five sentences to be proud of** — provisional, taken from shipped SC-101 and the Skill Bible,
|
||||
to be replaced with chosen ones:
|
||||
|
||||
> The mahogany doors are too heavy for the hinges someone recently, badly, tightened — you feel
|
||||
> the extra half-second of resistance before either side gives.
|
||||
|
||||
> Someone left a card with your name on it at the registration desk three hours before you
|
||||
> decided to come. You don't remember deciding.
|
||||
|
||||
> Cigar smoke, spilled aperitif, and under it — cold, sharp — the ammonia bite of a floor mopped
|
||||
> in a hurry, love. Someone's trying to make this room smell like money. It smells like panic
|
||||
> with good cologne on top.
|
||||
|
||||
> A line that begins nowhere is a line somebody drew.
|
||||
|
||||
> Her hands are wrong for that coat. It's somebody's good coat, and it isn't hers.
|
||||
|
||||
**Five to cut:** *(unset — write these next session; the cut list is the more useful half,
|
||||
because it names the specific temptations this project keeps giving in to)*
|
||||
|
||||
> This section is deliberately incomplete. `[[NightclubArcadia]]` has carried "Write the one-page
|
||||
> Voice Sheet" as an open action for a while, and `[[000_OpeningSceneTemplate]]` records tone
|
||||
> checks as **BLOCKED** on it — the SC-101 spec could not honestly certify its own tone field.
|
||||
> Filling the four unset fields above unblocks that. It is a half-hour of decisions, not a
|
||||
> writing project.
|
||||
@@ -0,0 +1,149 @@
|
||||
# Yarn, in one page
|
||||
|
||||
Everything below is used somewhere in `Assets/Dialogue/`. Nothing else is needed to write a
|
||||
scene. Full language docs: <https://docs.yarnspinner.dev>.
|
||||
|
||||
## A file
|
||||
|
||||
```
|
||||
// Comments start with two slashes. Use them — this project keeps its design
|
||||
// reasoning in file headers, and that is the record of why things are the way
|
||||
// they are. Do not strip them.
|
||||
|
||||
title: Bartender_Talk
|
||||
---
|
||||
Bartender: Ah, {$player_alias}, back again?
|
||||
Narrator: What does he mean? "Back again?"
|
||||
===
|
||||
```
|
||||
|
||||
`title:` names the node. `---` ends the header, `===` ends the node. One file can hold many
|
||||
nodes. A `position:` line may appear in the header — that is the graph editor's coordinates,
|
||||
not something you write by hand.
|
||||
|
||||
## Who is speaking
|
||||
|
||||
The text before the first colon is the speaker.
|
||||
|
||||
```
|
||||
Narrator: The mahogany doors are too heavy for the hinges.
|
||||
Bartender: What can I get ya?
|
||||
PROVENANCE: Nineteen sixty-nine, the licence.
|
||||
```
|
||||
|
||||
Skill voices are spoken in **UPPERCASE**, exactly as they appear in `voices/`. `Narrator:` is
|
||||
the room and the body. A named character uses their display name.
|
||||
|
||||
## Player choices
|
||||
|
||||
```
|
||||
-> Back? I have never been here.
|
||||
<<set $revealed_fugue_to_bartender = true>>
|
||||
Narrator: The bartender squints with a critical look.
|
||||
-> Yes. I'll take the usual.
|
||||
Narrator: He doesn't even flinch.
|
||||
```
|
||||
|
||||
Indentation is what nests the consequence under the option. Options are presented together;
|
||||
whichever is chosen runs its indented block.
|
||||
|
||||
## Conditions
|
||||
|
||||
```
|
||||
<<if $spoke_to_bartender>>
|
||||
Bartender: Ah, still hazy? A drink?
|
||||
<<elseif $reputation > 10>>
|
||||
Bartender: On the house.
|
||||
<<else>>
|
||||
Bartender: And you are?
|
||||
<<endif>>
|
||||
```
|
||||
|
||||
Comparison words also work: `eq`, `neq`, `gt`, `lt`, `gte`, `lte`, `and`, `or`, `not`.
|
||||
|
||||
## Variables
|
||||
|
||||
Every variable must first be declared in `Common.yarn`:
|
||||
|
||||
```
|
||||
<<declare $spoke_to_bartender = false as bool>>
|
||||
<<declare $reputation = 0 as number>>
|
||||
<<declare $player_name = "Vesper" as string>>
|
||||
```
|
||||
|
||||
Then set and read it anywhere:
|
||||
|
||||
```
|
||||
<<set $spoke_to_bartender = true>>
|
||||
<<set $self_lean_made_asset += 1>>
|
||||
Bartender: Ah, {$player_alias}.
|
||||
```
|
||||
|
||||
`{$variable}` interpolates into a line. **If you skip the `<<declare>>`, the compiler cannot
|
||||
catch your typos** — that is the entire reason `Common.yarn` exists.
|
||||
|
||||
## Moving between nodes
|
||||
|
||||
```
|
||||
<<detour Chevalier_Cassian_Thal_Talk>> // goes there, comes BACK here
|
||||
<<jump SC101_Hook_Menu_Chair_Interaction>> // goes there, never returns
|
||||
<<stop>> // ends the conversation immediately
|
||||
```
|
||||
|
||||
Getting this wrong is the most common structural bug in this project. See `STYLE.md` §7 —
|
||||
and never `<<jump>>` out of a node you were `<<detour>>`ed into.
|
||||
|
||||
## Node groups — variations without an if-chain
|
||||
|
||||
Several nodes may share one `title:`. Yarn runs the most specific variation whose `when:`
|
||||
conditions pass:
|
||||
|
||||
```
|
||||
title: Bartender_Talk
|
||||
when: $reputation > 10
|
||||
---
|
||||
Bartender: Your money's no good here.
|
||||
===
|
||||
```
|
||||
|
||||
Callers just `<<detour Bartender_Talk>>` and do not care which variation ran. Adding a new
|
||||
situation later means adding a node, not editing a growing `<<if>>`.
|
||||
|
||||
## The commands this game adds
|
||||
|
||||
| Syntax | What it does |
|
||||
|---|---|
|
||||
| `<<check <voice> <Band>>>` | Roll. Bands: `Trivial` `Routine` `Hard` `Specialist` `BuildDefining`. Writes `$check_result` and the other `$check_*` variables. |
|
||||
| `<<skill_mod <source> <voice> <n>>>` | Temporary modifier. `source` is a bucket key, e.g. `scene`, `drunk`. |
|
||||
| `<<clear_skill_mods <source>>>` | Drops a bucket. |
|
||||
| `<<enter_environment>>` | Hands control back to the world. Ends the dialogue cleanly. |
|
||||
|
||||
And two functions:
|
||||
|
||||
| Syntax | What it returns |
|
||||
|---|---|
|
||||
| `skill_rank(<voice>)` | the player's rank in that voice |
|
||||
| `top_skill(a, b, …)` | the highest of the named voices — **returns its FIRST argument on a tie**, so argument order is a design decision |
|
||||
|
||||
A check in practice:
|
||||
|
||||
```
|
||||
<<check provenance Hard>>
|
||||
<<if $check_result>>
|
||||
PROVENANCE: Basel? Makes total sense.
|
||||
<<else>>
|
||||
PROVENANCE: This is probably related to Switzerland.
|
||||
<<endif>>
|
||||
```
|
||||
|
||||
Note that the failure branch is written with the same confidence as the success branch. That is
|
||||
the Wrong Truth rule, and it is not optional — `STYLE.md` §4.
|
||||
|
||||
## Checking your work
|
||||
|
||||
```bash
|
||||
cd tools/YarnCheck && dotnet run -- ../../NightclubArcadia/Assets/Dialogue
|
||||
```
|
||||
|
||||
Remember that this harness never runs `<<check>>`, so `$check_result` is always `false` and you
|
||||
will only ever see failure branches when playing through it.
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
id: <kebab-case-id>
|
||||
name: <exact string used as the Yarn speaker prefix>
|
||||
chr: CHR-### # the vault sheet this projects from, if one exists
|
||||
yarn_file: Assets/Dialogue/Characters/<File>.yarn
|
||||
status: planned # planned | drafted | in-engine | tested
|
||||
scenes: [SC101]
|
||||
---
|
||||
|
||||
# <Name>
|
||||
|
||||
> **This is the dialogue-facing sheet.** The full character record — placement in the Lorebook,
|
||||
> faction row, the two truths, sensitivity check, continuity hooks — lives in the vault at
|
||||
> `[[Character Sheet Handbook]]`, one file per character. Fill that one *first* for any figure
|
||||
> who touches real history or a faction. This sheet exists so a writing session can pick the
|
||||
> character up and write them without loading all of it.
|
||||
|
||||
## Who they are
|
||||
|
||||
One paragraph. What they want *tonight*, in this room — not their life goal.
|
||||
|
||||
## How they speak
|
||||
|
||||
Register in three adjectives. Sentence length. Do they contract? Do they use the player's name,
|
||||
and which form — `{$player_name}`, `{$player_name_full}`, or `{$player_alias}`? Anything a
|
||||
reader could imitate.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
At most two. More than two is a costume, not a voice.
|
||||
|
||||
## What they never say or do
|
||||
|
||||
The negative constraints. Usually more useful than the positive ones.
|
||||
|
||||
## What they know
|
||||
|
||||
One row per thing the player can learn from them. "Reveals when" names the actual condition;
|
||||
"records" names the flag that remembers it.
|
||||
|
||||
| They know | True? | Reveals when | Records |
|
||||
|---|---|---|---|
|
||||
| | | | |
|
||||
|
||||
## What they are wrong about
|
||||
|
||||
Where their confidence outruns their information. This is what makes them a source of Wrong
|
||||
Truths rather than an oracle.
|
||||
|
||||
## Their read on the protagonist
|
||||
|
||||
Which candidate reading, if any, they push — and what happens if the player agrees or refuses.
|
||||
Remember they advocate; they never state an identity as settled fact.
|
||||
|
||||
## One line that is 100% them
|
||||
|
||||
Written now, before a scene needs it.
|
||||
|
||||
> "..."
|
||||
|
||||
## Open threads
|
||||
|
||||
What is unwritten, unresolved, or deliberately left open. Link the vault note if there is one.
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
id: bartender
|
||||
name: Bartender
|
||||
chr: —
|
||||
yarn_file: Assets/Dialogue/Characters/Bartender.yarn
|
||||
status: drafted
|
||||
scenes: [SC101]
|
||||
---
|
||||
|
||||
# The Bartender
|
||||
|
||||
## Who they are
|
||||
|
||||
He is behind the bar at a conference that is pretending to be a party, and he has been behind
|
||||
it long enough to have opinions he will not offer. He recognises the protagonist. He is certain
|
||||
he has served them before, with Mr. Doss, a few days ago — and he says so casually, the way you
|
||||
mention the weather, without any idea that he has just detonated something. What he wants
|
||||
tonight is an ordinary shift. He is not going to get one.
|
||||
|
||||
FACEWORK reads him as a watcher: a man who tends the bar *and* observes, and reports back. That
|
||||
reading is FACEWORK's, and FACEWORK advocates rather than reports — it may well be wrong. Do
|
||||
not resolve it in his prose.
|
||||
|
||||
## How they speak
|
||||
|
||||
Warm, clipped, incurious on the surface. Short sentences. Contracts freely — "What can I get
|
||||
ya?" He uses `{$player_alias}`, the club name, never the real one. That detail is load-bearing:
|
||||
he knows the protagonist by a name the protagonist does not remember choosing.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
1. Opens with "Ah," — recognition offered before it is earned.
|
||||
2. Names the drink rather than the person: "One Estate coming right up."
|
||||
|
||||
## What they never say or do
|
||||
|
||||
He never asks why the protagonist does not remember. He notices the strangeness, files it, and
|
||||
pours. He never raises the matter of Doss himself — he answers about him, and only when asked.
|
||||
|
||||
## What they know
|
||||
|
||||
| They know | True? | Reveals when | Records |
|
||||
|---|---|---|---|
|
||||
| The protagonist has been here before | believed, unverified | first conversation, unprompted | `$spoke_to_bartender` |
|
||||
| They were with Mr. Doss "a few days ago" | believed, unverified | if the player denies having been here | `$looking_for_doss` |
|
||||
| Their usual drink is the Estate | believed | on ordering, or "what can you recommend" | `$had_the_estate_drink` |
|
||||
|
||||
## What they are wrong about
|
||||
|
||||
Possibly nothing. Possibly the entire identification. He is confident and casual, which is
|
||||
exactly the register a Wrong Truth wears — except this one is his, not a voice's. Whether the
|
||||
protagonist was ever here is not settled by him saying so, and the writing must not let his
|
||||
certainty function as proof.
|
||||
|
||||
## Their read on the protagonist
|
||||
|
||||
He pushes the **Made Asset** reading without meaning to — someone known here, under a name they
|
||||
do not remember, in company they cannot account for. Revealing the fugue to him sets
|
||||
`$revealed_fugue_to_bartender` and adds to `$self_lean_made_asset`. Claiming "the usual" instead
|
||||
adds to `$self_lean_inheritor` — a person with a standing order is a person with a past here.
|
||||
|
||||
Note the drink beat writes lean in **both directions**: agreeing the Estate tastes familiar adds
|
||||
to the Inheritor lean, denying it subtracts. It is the one place a player can actively push a
|
||||
lean down, and it only counts on the first glass.
|
||||
|
||||
## One line that is 100% them
|
||||
|
||||
> "I could have sworn you are {$player_alias}, weren't you with Mr. Doss a few days ago?"
|
||||
|
||||
## Open threads
|
||||
|
||||
`SC101_Hook_Questions_Bartender_Talk` is **placeholder text** — literally "Question 1 / Answer
|
||||
1". It is a working hub-and-spoke loop with nothing in it. This is the single largest piece of
|
||||
unwritten dialogue in the shipped scene, and the natural home for testimony-channel clues,
|
||||
which the candidate registry currently lists as `Planned` for all three candidates.
|
||||
|
||||
Mr. Doss never appears. He is referenced by the Bartender and by Chevalier Cassian Thal, who
|
||||
calls him "your friend" — two independent sources treating the protagonist's connection to him
|
||||
as established fact.
|
||||
@@ -0,0 +1,70 @@
|
||||
---
|
||||
id: bradford-kane
|
||||
name: Bradford Kane
|
||||
chr: —
|
||||
yarn_file: Assets/Dialogue/Characters/Bradford Kane.yarn
|
||||
status: planned
|
||||
scenes: [SC101]
|
||||
---
|
||||
|
||||
# Bradford Kane
|
||||
|
||||
> **Effectively unwritten.** `Bradford_Kane_Talk` contains one line — `<<set
|
||||
> $spoke_to_bradford_kane = true>>` — and nothing else. The chair menu already offers him as an
|
||||
> option in every variation, so a player can introduce themselves to him and receive silence.
|
||||
> This is the most visible gap in SC-101.
|
||||
|
||||
## Who they are
|
||||
|
||||
*Unwritten.* What exists: he is the gentleman on the protagonist's **right** at the table, the
|
||||
one seated further from the head than Chevalier Cassian Thal. That is the whole of it.
|
||||
|
||||
The structural role is available and worth taking deliberately: the chair scene currently has
|
||||
one talker and one silence, and the menu variations (`Left_Not_Right`, `Right_Not_Left`, `Both`)
|
||||
are already built to track both conversations independently. The architecture is waiting for him.
|
||||
|
||||
## How they speak
|
||||
|
||||
*Unwritten.* One constraint worth honouring: he should not be a second Chevalier. Cassian Thal
|
||||
is courteous, archaic and institutional. If Kane is also old money at ease, the table has one
|
||||
voice twice. The name reads American against Thal's continental title — that contrast is free
|
||||
and probably should be used.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
*Unwritten.* Maximum two.
|
||||
|
||||
## What they never say or do
|
||||
|
||||
*Unwritten.*
|
||||
|
||||
## What they know
|
||||
|
||||
| They know | True? | Reveals when | Records |
|
||||
|---|---|---|---|
|
||||
| — | — | — | `$spoke_to_bradford_kane` (set, currently unused by any branch) |
|
||||
|
||||
The candidate registry lists **testimony** clues as `Planned` for all three candidates, with no
|
||||
`sceneId`. Kane is the obvious carrier for at least one: he is already placed, already
|
||||
reachable, and already has a flag recording that the player met him.
|
||||
|
||||
## What they are wrong about
|
||||
|
||||
*Unwritten.*
|
||||
|
||||
## Their read on the protagonist
|
||||
|
||||
*Unwritten.* Note the design constraint before choosing one: Chevalier Cassian Thal already
|
||||
implements the "mirror the leading lean back at the player" mechanic. Kane should not repeat it.
|
||||
A contrast would be stronger — a figure who reads the protagonist as one specific thing and
|
||||
does not update, or one who declines to guess at all.
|
||||
|
||||
## One line that is 100% them
|
||||
|
||||
*Unwritten. Write this first — it is the cheapest way to find out who he is.*
|
||||
|
||||
## Open threads
|
||||
|
||||
Everything. Before drafting, fill the vault character sheet (`[[Character Sheet Handbook]]`) —
|
||||
§1 placement and §2 the two truths — because he does not yet have a faction row, and writing him
|
||||
before that is exactly the failure mode that document exists to prevent.
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
id: chevalier-cassian-thal
|
||||
name: Chevalier Cassian Thal
|
||||
chr: —
|
||||
yarn_file: Assets/Dialogue/Characters/Chevalier Cassian Thal.yarn
|
||||
status: drafted
|
||||
scenes: [SC101]
|
||||
---
|
||||
|
||||
# Chevalier Cassian Thal
|
||||
|
||||
## Who they are
|
||||
|
||||
A knight, of Basel and Cyprus, seated at the table nearer the head than the protagonist is. He
|
||||
introduces himself with a bow and a half-open fist to the forehead — an old form, performed
|
||||
without irony. Old money, and comfortable in it. He is here as part of something ("the Knight's
|
||||
compromise", "our friends of the Vaselian Concordat") and he speaks about it as though everyone
|
||||
at the table already knows, because in his world everyone does.
|
||||
|
||||
He is the scene's mirror: whatever the protagonist has been leaning toward, he names it back at
|
||||
them, gently, and waits. He is rarely wrong in matters like these, as he will tell you.
|
||||
|
||||
## How they speak
|
||||
|
||||
Courteous, archaic, warm. Slightly too familiar too quickly — "old chap", "my boy" — which reads
|
||||
as class rather than affection. He uses `{$player_name_full}`, the formal form, when he is being
|
||||
precise. He laughs easily and often, including at things that are not jokes.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
1. Slips into the institutional "we" and "us" without noticing, then does not correct it.
|
||||
2. Deflects with courtesy rather than refusal — "I am of no right to reveal this."
|
||||
|
||||
## What they never say or do
|
||||
|
||||
He never threatens and never withholds coldly; every evasion is dressed as politeness. He does
|
||||
not name the Concordat's business outright, and he never breaks the fiction that the protagonist
|
||||
already belongs at this table.
|
||||
|
||||
## What they know
|
||||
|
||||
| They know | True? | Reveals when | Records |
|
||||
|---|---|---|---|
|
||||
| He is of Basel and Cyprus | true | on introduction | `$spoke_to_chevalier_cassian_thal` |
|
||||
| Cyprus connects to something he won't name | true | `<<check provenance Hard>>` succeeds, then the player inquires | `$inquired_about_cyprus` |
|
||||
| Mr. Doss can explain the Cyprus connection | believed | on inquiring about Cyprus | `$looking_for_doss` |
|
||||
| Something is about to happen at the table | true | after the protagonist declares a reading | `$declared_candidate_to_chevalier_cassian_thal` |
|
||||
|
||||
## What they are wrong about
|
||||
|
||||
He is certain he knows what the protagonist is. He is working from whatever the protagonist has
|
||||
been projecting — which is to say from the lean, which is belief rather than truth. His
|
||||
confidence is sincere and is not evidence. When he says "I am rarely wrong in matters like
|
||||
these", that is characterisation, not a hint from the author.
|
||||
|
||||
## Their read on the protagonist
|
||||
|
||||
He is the game's first mirror mechanic. `SC101_Asks_Candidate_Chevalier_Cassian_Thal_Talk`
|
||||
computes `top_skill(...)` over the three leans and asks the matching question:
|
||||
|
||||
| Leading reading | What he asks |
|
||||
|---|---|
|
||||
| Made Asset | whether they observe on behalf of the Vaselian Concordat |
|
||||
| Journalist | whether he will read his answers in tomorrow's paper |
|
||||
| Inheritor | whether they are here to settle a parent's debts |
|
||||
|
||||
Agreeing reinforces that lean. Denying adds to *both other* leans — a refusal is not neutral, it
|
||||
is a push toward the alternatives. Denial routes to `SC101_Deny_Candidate`, which recomputes the
|
||||
winner and, if it has not changed, offers the player the chance to reverse; if it has changed,
|
||||
he simply asks the new question. The player can be walked around this loop.
|
||||
|
||||
`made_asset` is passed first to `top_skill`, which returns its first argument on a tie — so an
|
||||
even score reads as Made Asset. That bias is deliberate.
|
||||
|
||||
## One line that is 100% them
|
||||
|
||||
> "Well, then let us hope the ... others follow the Knight's compromise."
|
||||
|
||||
## Open threads
|
||||
|
||||
The Atlantean cross on the place card (`$saw_knights_atlantean_cross_on_place_card`, found via a
|
||||
`Hard` PROVENANCE check) is never connected to him in dialogue, though he is a knight and the
|
||||
symbol is a knight's. That connection is available and unwritten.
|
||||
|
||||
His faction, the Vaselian Concordat, and "the Knight's compromise" are named but not explained.
|
||||
Before writing more of him, confirm his faction row against `[[Lorebook]]` §2 — the vault's
|
||||
`[[Character Sheet Handbook]]` exists specifically because figures drifting from the faction
|
||||
tables is a logged, repeated failure in this project.
|
||||
@@ -0,0 +1,81 @@
|
||||
# The three readings
|
||||
|
||||
The protagonist's amnesia is a dissociative fugue, and what is walled off is their own identity
|
||||
rather than an external event.
|
||||
|
||||
**The design is ontological, not epistemic.** There is no single hidden fact of the matter that
|
||||
the game is withholding and will eventually reveal. The three readings below can overlap and
|
||||
partially coexist. The player "discovers" an identity by choosing which evidence to trust, and
|
||||
lean accumulates from play rather than from one declare-your-identity choice at the end.
|
||||
|
||||
This is the constraint most likely to be broken by accident, because almost every instinct a
|
||||
mystery writer has runs the other way. There is no answer. Do not write toward one.
|
||||
|
||||
## The candidates
|
||||
|
||||
Registry: `Assets/Candidates/candidates.json`. Adding a fourth means a JSON entry, one
|
||||
`<<declare>>`, and content — never editing a list of three in code.
|
||||
|
||||
### The Made Asset — `made_asset`, Reason axis
|
||||
|
||||
> The PC was trained, conditioned, or activated by one of the factions for a role near the
|
||||
> central conference.
|
||||
|
||||
Its intuition is fluency: parsing something coded or ritual *before* consciously trying to.
|
||||
CONFLUENCE carries it.
|
||||
|
||||
### The Journalist — `journalist`, Social axis
|
||||
|
||||
> The PC came for a specific person, not a story; "journalist" is a cover identity.
|
||||
|
||||
Its intuition is a reaction that lands wrong and cannot yet be explained — a flinch that is not
|
||||
a stranger's flinch. FACEWORK carries it.
|
||||
|
||||
### The Inheritor — `inheritor`, Self axis
|
||||
|
||||
> This was never the PC's own story; a parent or elder relative had standing or a debt with a
|
||||
> faction, which passed without full consent.
|
||||
|
||||
Its intuition is the body knowing an etiquette the mind never learned — correcting a place
|
||||
setting by a rule you were never taught. STANDING ORDER carries it.
|
||||
|
||||
## Evidence balance
|
||||
|
||||
Each candidate carries **exactly one of each type**: one object, one testimony, one document,
|
||||
one intuition. Never stack types, or trust becomes an artefact of imbalance rather than of play.
|
||||
|
||||
Current state — the three intuitions are authored in SC-101; **the other nine clues are all
|
||||
`Planned` with no scene**:
|
||||
|
||||
| | Object | Testimony | Document | Intuition |
|
||||
|---|---|---|---|---|
|
||||
| Made Asset | planned | planned | planned | **SC101** (CONFLUENCE) |
|
||||
| Journalist | planned | planned | planned | **SC101** (FACEWORK) |
|
||||
| Inheritor | planned | planned | planned | **SC101** (STANDING ORDER) |
|
||||
|
||||
Each planned clue already has its unlock flag reserved — `$visited_back_office`,
|
||||
`$errand_door_list`, `$visited_archives`, and so on. Those flags name the locations and errands
|
||||
the game still needs.
|
||||
|
||||
## Rules that bind
|
||||
|
||||
1. **Never compare one lean against another.** Not in Yarn, not in prose, not in a debug line.
|
||||
Comparing a lean against a *constant* is fine and intended. There is no winner, no
|
||||
`$dominant_candidate`, no ranking.
|
||||
2. **No ground-truth field anywhere** — nothing named `isTrue`, `actualIdentity`, `canonical`,
|
||||
or `weight`, in any file or in save data. Persistence is three integers and some booleans,
|
||||
and contains no answer.
|
||||
3. **Clue availability is exploration-gated, never skill-gated.** An `unlockFlag` names a
|
||||
`$visited_*` or `$errand_*` variable. A clue-bearing node never sits behind `skill_rank(`.
|
||||
4. **Discovery order must be player-steerable**, so no candidate is reliably surfaced first.
|
||||
5. **Voices advocate for a reading**, so trust in it tracks which part of the protagonist wants
|
||||
it to be true. No voice states a candidate as settled fact.
|
||||
6. **Lean is belief, not truth** — a Wrong Truth still writes lean. Being wrong moves the needle.
|
||||
7. **Keep clear of Thread 2 and Thread 9.** Those two lore threads never resolve; do not map any
|
||||
candidate clue onto them.
|
||||
|
||||
## Where the rest lives
|
||||
|
||||
The full design argument is `[[Candidate System — Design Explanation]]` in the vault. The
|
||||
implementation plans are `docs/candidate-system-plan.md` and
|
||||
`docs/candidate-system-implementation-plan.md`.
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
id: SC###
|
||||
title: <title>
|
||||
act: I
|
||||
status: outlined # outlined | drafted | revised | in-engine | tested
|
||||
yarn_file: Assets/Dialogue/Scenes/SC###.yarn
|
||||
location:
|
||||
reenterable: no
|
||||
---
|
||||
|
||||
# SC-### — <title>
|
||||
|
||||
> One scene, one file, ideally one screen of spec. If this brief does not fit on a page, the
|
||||
> scene is doing too much — split it. That discipline is what lets one writer hold a sixty-scene
|
||||
> game in their head.
|
||||
>
|
||||
> This is the **brief**, not the dialogue. The words live in the `.yarn` file.
|
||||
|
||||
## Purpose
|
||||
|
||||
One line: what has changed by the end.
|
||||
|
||||
## Cast
|
||||
|
||||
Speaking characters, and which voices are prominent. **Cap voice introductions at three.**
|
||||
|
||||
## Entry conditions
|
||||
|
||||
Flags required. "None" is a good answer.
|
||||
|
||||
## Critical outputs
|
||||
|
||||
Things every build must be able to obtain. Each needs ≥2 independent routes — and independent
|
||||
means different trace channels, not two checks in the same conversation.
|
||||
|
||||
| Clue id | Routes |
|
||||
|---|---|
|
||||
| | |
|
||||
|
||||
## Optional outputs
|
||||
|
||||
Missable by design. One route is fine.
|
||||
|
||||
## Shape
|
||||
|
||||
`hub-and-spoke` | `short tree` | `divergent`. Default to the first.
|
||||
|
||||
## Opening frame
|
||||
|
||||
2–4 sentences of establishing prose. Sensory, specific, and including one concrete detail that
|
||||
does not serve the plot.
|
||||
|
||||
## Beats
|
||||
|
||||
3–6. Each beat is one exchange or one discovery.
|
||||
|
||||
1.
|
||||
|
||||
## Checks
|
||||
|
||||
Write **both** outcomes as summaries before writing any prose. If the failure summary is "the
|
||||
player doesn't get the thing", delete the check.
|
||||
|
||||
| # | Voice | Colour/Gate | DC band | Success → | Failure type | Failure → |
|
||||
|---|---|---|---|---|---|---|
|
||||
| | | | | | | |
|
||||
|
||||
## Branch points
|
||||
|
||||
| id | The choice | Reconverges at | Persistent effect |
|
||||
|---|---|---|---|
|
||||
| | | | |
|
||||
|
||||
## Exit states
|
||||
|
||||
Keep to ≤3. More than three means this is a hub, not a scene.
|
||||
|
||||
## Flags
|
||||
|
||||
**Sets:**
|
||||
**Reads:**
|
||||
|
||||
## Constraints specific to this scene
|
||||
|
||||
Anything a later editor must not "fix". Deliberate exceptions to a general rule go here, with
|
||||
the reason, so they survive review.
|
||||
@@ -0,0 +1,135 @@
|
||||
---
|
||||
id: SC101
|
||||
title: The Card at the Desk
|
||||
act: I
|
||||
status: in-engine
|
||||
yarn_file: Assets/Dialogue/Scenes/SC101.yarn
|
||||
location: The conference hall — registration desk, the bar, the table
|
||||
reenterable: yes
|
||||
---
|
||||
|
||||
# SC-101 — The Card at the Desk
|
||||
|
||||
The opening. Playable end to end, and it exits into SC-102, which is still a one-line stub.
|
||||
|
||||
An opening scene is not a normal node in the sandbox. It has no entry conditions and almost
|
||||
nothing to gate. Its job is to sell the register in one sitting — the voice-committee narration,
|
||||
the tone, the world's texture of disrepair, and one open question the player carries into Act I.
|
||||
|
||||
## Purpose
|
||||
|
||||
Establish that the protagonist does not know who they are, that other people appear to, and that
|
||||
this was arranged before they decided to come.
|
||||
|
||||
## Cast
|
||||
|
||||
**Speaking:** Narrator, the Bartender, Chevalier Cassian Thal, Bradford Kane (silent — unwritten).
|
||||
|
||||
**Voices introduced:** CONFLUENCE (Reason), FACEWORK (Social), STANDING ORDER (Self),
|
||||
HOUSE POUR (Body). Also appearing: PROVENANCE, AMNESTY, THE FLOAT.
|
||||
|
||||
## Entry conditions
|
||||
|
||||
None.
|
||||
|
||||
## Critical outputs
|
||||
|
||||
| Clue id | Routes |
|
||||
|---|---|
|
||||
| `made_asset_intuition` | CONFLUENCE hook at the desk (`$visited_desk`) |
|
||||
| `journalist_intuition` | FACEWORK hook at the desk (`$visited_desk`) |
|
||||
| `inheritor_intuition` | STANDING ORDER hook at the desk (`$visited_desk`) |
|
||||
|
||||
All three are **single-route**, which is acceptable only because they are intuitions rather than
|
||||
gates: they fire passively, with no roll, so no build can miss them. The object, testimony and
|
||||
document clues for all three candidates are still `Planned` with no `sceneId` — see the registry
|
||||
in `Assets/Candidates/candidates.json`.
|
||||
|
||||
## Optional outputs
|
||||
|
||||
- The Atlantean cross on the place card — `Hard` PROVENANCE, one route, missable by design.
|
||||
- The Cyprus connection — `Hard` PROVENANCE with Chevalier Cassian Thal, then an inquiry.
|
||||
- Mr. Doss, surfaced from either the Bartender or the Chevalier — two independent routes.
|
||||
- The Estate drink, and whether it tastes like the protagonist's own past.
|
||||
|
||||
## Shape
|
||||
|
||||
Hub-and-spoke throughout. The chair menu (`SC101_Hook_Menu_Chair_Interaction`) is the hub and
|
||||
re-evaluates which variation shows after every sub-conversation returns.
|
||||
|
||||
## Opening frame
|
||||
|
||||
> The mahogany doors are too heavy for the hinges someone recently, badly, tightened — you feel
|
||||
> the extra half-second of resistance before either side gives. Beyond them: a hall built for
|
||||
> four hundred people politely disagreeing about tariffs, hosting perhaps sixty, none of whom
|
||||
> look like they've read the programme.
|
||||
|
||||
## Beats
|
||||
|
||||
1. Arrival at the desk. A card with the protagonist's name, left three hours before they decided
|
||||
to come. Pure orientation, no plot delivery.
|
||||
2. Four voices introduce themselves, one per pair, each reading the room differently.
|
||||
3. The bar. The Bartender recognises someone the protagonist does not remember being.
|
||||
4. The table. The place card, and a symbol that does not belong in Switzerland.
|
||||
5. Two seated gentlemen. One of them mirrors back whatever the protagonist has been projecting.
|
||||
6. Exit into SC-102 once a reading has been declared.
|
||||
|
||||
## Checks
|
||||
|
||||
| # | Voice | Colour/Gate | DC band | Success → | Failure type | Failure → |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | PROVENANCE | colour | Hard | the cross is identified as not-Swiss, sets the flag | Wrong Truth | "This is probably related to Switzerland." Same calm, no hedge. |
|
||||
| 2 | PROVENANCE | colour | Hard | Basel reads as old money, opens the Cyprus inquiry | Wrong Truth | the inquiry never opens; nothing signals that it existed |
|
||||
|
||||
Both are colour, not gates: failure changes what the protagonist believes, never what they can
|
||||
reach. The desk hooks are **check-free by design** — a roll there would produce a pass/fail state
|
||||
that reads as evidence about identity, which this scene must not deliver.
|
||||
|
||||
## Branch points
|
||||
|
||||
| id | The choice | Reconverges at | Persistent effect |
|
||||
|---|---|---|---|
|
||||
| B1 | Admit the fugue to the Bartender, or claim "the usual" | bar conversation end | `$revealed_fugue_to_bartender`; lean to Made Asset or Inheritor |
|
||||
| B2 | Whether the Estate tastes familiar | drink node end | ±1 Inheritor lean, first glass only |
|
||||
| B3 | Accept or deny the Chevalier's reading | `SC101_Deny_Candidate` loop | `$declared_candidate_to_chevalier_cassian_thal`; lean |
|
||||
|
||||
## Flags
|
||||
|
||||
**Sets:** `$seen_sc_101`, `$visited_desk`, `$found_*_intuition` (×3), `$spoke_to_bartender`,
|
||||
`$revealed_fugue_to_bartender`, `$looking_for_doss`, `$had_the_estate_drink`,
|
||||
`$sat_down_at_table`, `$saw_knights_atlantean_cross_on_place_card`,
|
||||
`$spoke_to_chevalier_cassian_thal`, `$spoke_to_bradford_kane`, `$inquired_about_cyprus`,
|
||||
`$declared_candidate_to_chevalier_cassian_thal`, `$self_lean_*`
|
||||
|
||||
**Reads:** all of the above, plus `$player_name`, `$player_name_full`, `$player_alias`
|
||||
|
||||
## Constraints specific to this scene
|
||||
|
||||
These are deliberate. Do not "fix" them.
|
||||
|
||||
1. **Four voice introductions, against the cap of three.** One per pair — Self, Body, Social,
|
||||
Reason — because each candidate carries one intuition from a different voice-pair, and cutting
|
||||
to three would drop a candidate's intuition channel from its earliest appearance. HOUSE POUR
|
||||
is the non-lean control and the one to cut if the cap is ever enforced strictly. This is a
|
||||
logged exception for SC-101 only; do not copy it as precedent elsewhere.
|
||||
2. **Evidence balance.** Each candidate gets exactly one of each evidence type. Never stack
|
||||
types, or trust becomes an artefact of imbalance rather than of play.
|
||||
3. **Beat order is fixed.** Hooks fire in sequence from `SC101_Desk`: STANDING ORDER → HOUSE POUR
|
||||
→ FACEWORK → CONFLUENCE. Each stays an independently authored node. Never `<<if>>`-guard a
|
||||
hook on another hook having fired, on any `$self_lean_*`, or on `skill_rank(...)`.
|
||||
4. **The passive pattern for clue-bearing hooks.** One voice per hook, from the candidate's
|
||||
attached pair. The line is that character's *argument*, never a report. Exactly one
|
||||
`$self_lean_*` write, with `$found_<clue_id>` set alongside it.
|
||||
5. **The body of the scene stays neutral.** No lean, no candidate attachment outside the hooks.
|
||||
6. **The Chevalier's tie bias.** `top_skill` receives `made_asset` first and returns its first
|
||||
argument on a tie, so an even score reads as Made Asset. Deliberate, not an accident of
|
||||
argument order.
|
||||
|
||||
## Open work
|
||||
|
||||
- `SC101_Hook_Questions_Bartender_Talk` is placeholder text ("Question 1 / Answer 1"). It is a
|
||||
working loop with nothing in it, and the natural home for the missing testimony clues.
|
||||
- Bradford Kane is reachable and silent.
|
||||
- The Atlantean cross is never connected to the knight who is sitting right there.
|
||||
- Tone could not be certified against a voice sheet when this scene was specced, because one did
|
||||
not exist. See `STYLE.md` §9 — four fields there still need deciding.
|
||||
@@ -0,0 +1,62 @@
|
||||
# The eleven voices
|
||||
|
||||
One sheet per skill. A skill in this game is a **character**, not a stat: it wants something for
|
||||
you, and it is wrong about something. Both halves matter — the wrongness is what makes it a
|
||||
voice instead of a hint system.
|
||||
|
||||
## These files are generated — and they are still the source of truth for the prose
|
||||
|
||||
Each sheet has two halves, with truth flowing in opposite directions:
|
||||
|
||||
| Half | Direction | Who edits it |
|
||||
|---|---|---|
|
||||
| The **prose** — domain, what it wants, what it's wrong about, register, tics, voice samples | `.md` → `skill_bible.json` | **you** |
|
||||
| The **machine fields** table | `skill_bible.json` → `.md` | an engineer, in the JSON |
|
||||
|
||||
So: edit the prose here, freely. Then run, from the repo root:
|
||||
|
||||
```bash
|
||||
python3 tools/writing/sync_voices.py --to-json
|
||||
```
|
||||
|
||||
That folds your words into `Assets/Skills/skill_bible.json`, which Unity turns into the
|
||||
`SkillDefinition` assets the game reads. Never edit the JSON prose directly — the markdown wins,
|
||||
and your JSON edit would be overwritten the next time anyone syncs.
|
||||
|
||||
To check without changing anything:
|
||||
|
||||
```bash
|
||||
python3 tools/writing/sync_voices.py --check
|
||||
```
|
||||
|
||||
The EditMode suite runs the same check (`VoiceSheetSyncTests`), so drift fails the build rather
|
||||
than quietly shipping a voice that no longer matches its sheet.
|
||||
|
||||
Hard-wrapping a paragraph is fine — lines within a section are rejoined on sync.
|
||||
|
||||
## The cast
|
||||
|
||||
Four opposed pairs plus three specialists. Opposed pairs are a writing engine: fire both halves
|
||||
with contradictory readings and the scene generates its own friction.
|
||||
|
||||
| Pair / group | Voice | Voice | The argument |
|
||||
|---|---|---|---|
|
||||
| Reason | [PROVENANCE](provenance.md) | [CONFLUENCE](confluence.md) | Is the world legible? |
|
||||
| Body | [HOUSE POUR](house_pour.md) | [THE LONG SHIFT](long_shift.md) | What do we owe the flesh? |
|
||||
| Social | [FACEWORK](facework.md) | [PLACEMENT](placement.md) | Is understanding others care, or leverage? |
|
||||
| Self | [AMNESTY](amnesty.md) | [STANDING ORDER](standing_order.md) | Should we keep doing this? |
|
||||
| Specialist | [UNDISCLOSED](undisclosed.md) | [THE FLOAT](the_float.md) | — |
|
||||
| Specialist | [ROOM TONE](room_tone.md) | | — |
|
||||
|
||||
**Budget scene outputs against eight, not eleven.** CONFLUENCE, AMNESTY and STANDING ORDER
|
||||
generate almost no clues by design — they are the interior register and the deduction engine.
|
||||
The clue-producing cast is the other eight.
|
||||
|
||||
## Writing a voice well
|
||||
|
||||
- It **advocates**, it does not report. Even when it is right, the line is its own biased reading.
|
||||
- Respect its forbidden domains. Each sheet ends with the domains that voice must not comment on.
|
||||
PROVENANCE does not discuss appetite. That is characterisation, not bookkeeping.
|
||||
- A failing voice sounds exactly like a succeeding one. See `../STYLE.md` §4.
|
||||
- Passive lines are 1–3 sentences and carry most of the personality — aim for 60–70% of all
|
||||
skill text to be passive.
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
id: amnesty
|
||||
---
|
||||
|
||||
# AMNESTY
|
||||
|
||||
> Voice sheet. **The prose below is the source of truth** — edit it here, then run
|
||||
> `python3 tools/writing/sync_voices.py --to-json`. The machine table is generated
|
||||
> from `skill_bible.json`; changing it here does nothing.
|
||||
|
||||
## Machine fields
|
||||
|
||||
<!-- GENERATED FROM skill_bible.json — do not edit by hand -->
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| id | `amnesty` |
|
||||
| axis | Self |
|
||||
| opposed to | `standing_order` |
|
||||
| allied with | `house_pour`, `facework` |
|
||||
| primary channel | Behavioural |
|
||||
| secondary channel | None |
|
||||
| clue yield | Low |
|
||||
| starting rank | 1 |
|
||||
| target firings/hour | 4 |
|
||||
| accent colour | rgba(0.72, 0.88, 0.72, 1) |
|
||||
|
||||
<!-- END GENERATED -->
|
||||
|
||||
## Domain
|
||||
|
||||
Relief. Letting go, forgiving, putting a thing down. Also, professionally: recognising when other people have decided to forget something, and by what method they arranged it.
|
||||
|
||||
## What it wants for you
|
||||
|
||||
Peace for you, tonight, at whatever price tomorrow ends up charging.
|
||||
|
||||
## What it's wrong about
|
||||
|
||||
It believes forgetting is the same as being forgiven. And it cannot tell your peace from somebody else's advantage — every offer of rest it makes is sincere; some of them are also somebody's plan, and AMNESTY has never once checked whose.
|
||||
|
||||
## How it addresses you
|
||||
|
||||
Second person, soft, constant use of [pc], the way somebody talks you down off something.
|
||||
|
||||
## Register
|
||||
|
||||
Kind, tired, absolving.
|
||||
|
||||
## What it never does
|
||||
|
||||
Lie to you. Press a second time.
|
||||
|
||||
## Opposed to
|
||||
|
||||
STANDING ORDER
|
||||
|
||||
## Allied with
|
||||
|
||||
HOUSE POUR, FACEWORK
|
||||
|
||||
## Domains it must not comment on
|
||||
|
||||
Tactics. Numbers. Other people's guilt — AMNESTY only ever absolves you, and its silence about everyone else is the most frightening thing about it.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
1. Opens with "It's alright."
|
||||
2. Offers you an hour. "Give it an hour, [pc]."
|
||||
|
||||
## Voice samples
|
||||
|
||||
### Success
|
||||
|
||||
> "Nobody in this building remembers the fire and three of them were here for it. That isn't damage, [pc]. That's maintenance. Somebody has been keeping this room forgetful."
|
||||
|
||||
### Failure
|
||||
|
||||
> "It's alright. Nobody is looking for this any more — the people who wanted it are dead or old or somewhere warm. Put it down."
|
||||
|
||||
### Passive
|
||||
|
||||
> "It's alright. Whatever this room used to be, it's a room where people dance now. That counts for something. It counted for somebody."
|
||||
|
||||
## Firing frequency
|
||||
|
||||
4 per hour (target).
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
id: confluence
|
||||
---
|
||||
|
||||
# CONFLUENCE
|
||||
|
||||
> Voice sheet. **The prose below is the source of truth** — edit it here, then run
|
||||
> `python3 tools/writing/sync_voices.py --to-json`. The machine table is generated
|
||||
> from `skill_bible.json`; changing it here does nothing.
|
||||
|
||||
## Machine fields
|
||||
|
||||
<!-- GENERATED FROM skill_bible.json — do not edit by hand -->
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| id | `confluence` |
|
||||
| axis | Reason |
|
||||
| opposed to | `provenance` |
|
||||
| allied with | `undisclosed`, `house_pour` |
|
||||
| primary channel | Behavioural |
|
||||
| secondary channel | Testimonial |
|
||||
| clue yield | Low |
|
||||
| starting rank | 1 |
|
||||
| target firings/hour | 9 |
|
||||
| accent colour | rgba(0.55, 0.68, 0.92, 1) |
|
||||
|
||||
<!-- END GENERATED -->
|
||||
|
||||
## Domain
|
||||
|
||||
Synthesis across distance. Connecting a thing in this room to a thing forty years and a continent away; the shape a long pattern makes; the sense that tonight is a late chapter.
|
||||
|
||||
## What it wants for you
|
||||
|
||||
For you to be one of the few people alive who can see the shape — and to be right about it out loud, in front of somebody who matters.
|
||||
|
||||
## What it's wrong about
|
||||
|
||||
It cannot tell authorship from opportunism. If a party benefited, CONFLUENCE concludes that party arranged it. It has no working concept of somebody *reading* an event they did not cause and simply being early — which is how nearly everything in this world is actually done.
|
||||
|
||||
## How it addresses you
|
||||
|
||||
Second person sliding into first person plural. Leans in. Uses [pc], often twice in a sentence.
|
||||
|
||||
## Register
|
||||
|
||||
Exhilarated, generous, sleepless.
|
||||
|
||||
## What it never does
|
||||
|
||||
Concede a coincidence. Ask what would disprove it.
|
||||
|
||||
## Opposed to
|
||||
|
||||
PROVENANCE
|
||||
|
||||
## Allied with
|
||||
|
||||
UNDISCLOSED, HOUSE POUR
|
||||
|
||||
## Domains it must not comment on
|
||||
|
||||
The specifics of money (THE FLOAT's jurisdiction). Your body, ever — pain and fatigue are beneath its notice and that is characterising.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
1. "Which means—"
|
||||
2. Counts its steps out loud: "One. Two. Three, and three is the one."
|
||||
|
||||
## Voice samples
|
||||
|
||||
### Success
|
||||
|
||||
*the connection is real and nobody else in the room has made it*
|
||||
|
||||
> "One: the room changes hands. Two: the same month, the deliveries stop. Three: nobody has ever asked why a cellar this size under a room this small. Which means the cellar is the older thing and the club is the explanation for it."
|
||||
|
||||
### Failure
|
||||
|
||||
*identical structure, identical confidence, an inference sitting where an observation should be*
|
||||
|
||||
> "Two of them came out of it better off. Which means two of them arranged it, [pc], and the third is the one they're going to leave holding it."
|
||||
|
||||
### Passive
|
||||
|
||||
> "Every room like this one has a door that only opens from inside. That's not a conspiracy, that's just what rooms are. Which means somebody learned it early and never had to teach it to anybody."
|
||||
|
||||
## Firing frequency
|
||||
|
||||
9 per hour (target).
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
id: facework
|
||||
---
|
||||
|
||||
# FACEWORK
|
||||
|
||||
> Voice sheet. **The prose below is the source of truth** — edit it here, then run
|
||||
> `python3 tools/writing/sync_voices.py --to-json`. The machine table is generated
|
||||
> from `skill_bible.json`; changing it here does nothing.
|
||||
|
||||
## Machine fields
|
||||
|
||||
<!-- GENERATED FROM skill_bible.json — do not edit by hand -->
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| id | `facework` |
|
||||
| axis | Social |
|
||||
| opposed to | `placement` |
|
||||
| allied with | `house_pour`, `room_tone` |
|
||||
| primary channel | Testimonial |
|
||||
| secondary channel | Behavioural |
|
||||
| clue yield | High |
|
||||
| starting rank | 1 |
|
||||
| target firings/hour | 10 |
|
||||
| accent colour | rgba(0.72, 0.52, 0.88, 1) |
|
||||
|
||||
<!-- END GENERATED -->
|
||||
|
||||
## Domain
|
||||
|
||||
Reading individuals. Hesitation, rehearsal, the account with a hole in it, whose routine changed this week, who in a room of two is afraid of the other.
|
||||
|
||||
## What it wants for you
|
||||
|
||||
To be understood as care rather than surveillance — to know people before you have any use for them.
|
||||
|
||||
## What it's wrong about
|
||||
|
||||
It can only read one face at a time. It believes a crowd is a sum of persons, so it will confidently report the mood of forty people from the three nearest, and it is wrong about rooms roughly as often as it is right about persons. Nobody has ever told it this.
|
||||
|
||||
## How it addresses you
|
||||
|
||||
Second person, quiet, close. Uses [pc] when it wants you to be gentle with somebody.
|
||||
|
||||
## Register
|
||||
|
||||
Attentive, tender, precise.
|
||||
|
||||
## What it never does
|
||||
|
||||
Mock anyone. Report a whole room as a single thing — when it does, it is failing, and that is the tell.
|
||||
|
||||
## Opposed to
|
||||
|
||||
PLACEMENT
|
||||
|
||||
## Allied with
|
||||
|
||||
HOUSE POUR, ROOM TONE
|
||||
|
||||
## Domains it must not comment on
|
||||
|
||||
Money. Machinery. The chronology of events it did not personally witness.
|
||||
|
||||
## Verbal tics
|
||||
|
||||
1. Describes hands before faces.
|
||||
2. Ends on a question it does not expect you to answer.
|
||||
|
||||
## Voice samples
|
||||
|
||||
### Success
|
||||
|
||||
> "He gave you the year without being asked for it. People hand you the year when they have rehearsed the year. What else has he practised?"
|
||||
|
||||
### Failure
|
||||
|
||||
> "The three by the pillar: bored, bored, impatient. The room's flat tonight, [pc]. Nothing is going to happen in here."
|
||||
|
||||
### Passive
|
||||
|
||||
> "Her hands are wrong for that coat. It's somebody's good coat, and it isn't hers."
|
||||
|
||||
## Firing frequency
|
||||
|
||||
10 per hour (target).
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user