Compare commits
22
Commits
1ef1720bae
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a0618fd31 | ||
|
|
ec4619d9dc | ||
|
|
2a20bd68fe | ||
|
|
4f48d258b5 | ||
|
|
46160d86dc | ||
|
|
ad598143f8 | ||
|
|
bb0f2b760c | ||
|
|
40b4547c71 | ||
|
|
1c1e50809a | ||
|
|
f5b302b3e3 | ||
|
|
2b35d3f754 | ||
|
|
382f6c7f63 | ||
|
|
ed28763017 | ||
|
|
f1fadf7909 | ||
|
|
b915ad78c7 | ||
|
|
6bf22f2d6e | ||
|
|
5da782d21b | ||
|
|
4f97fc704c | ||
|
|
5b0827072b | ||
|
|
ccabd3e7ac | ||
|
|
cba87dcb31 | ||
|
|
932cd0582f |
+102
@@ -0,0 +1,102 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# 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
|
*.tar.gz
|
||||||
*.7z
|
*.7z
|
||||||
*.rar
|
*.rar
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Local build and test output (Makefile targets)
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
/.test-results/
|
||||||
|
/build/
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# AGENTS.md
|
||||||
|
|
||||||
|
This repository's agent instructions live in [`CLAUDE.md`](./CLAUDE.md). It is
|
||||||
|
tool-agnostic — repository layout, the Unity command line, the dialogue content
|
||||||
|
pipeline, validation, conventions, and known traps.
|
||||||
|
|
||||||
|
Read `CLAUDE.md` before making changes, regardless of which agent you are.
|
||||||
|
|
||||||
|
Design and migration plans are in [`docs/`](./docs/), most relevantly
|
||||||
|
[`docs/restructure-plan.md`](./docs/restructure-plan.md).
|
||||||
@@ -0,0 +1,544 @@
|
|||||||
|
# Nightclub Arcadia — agent reference
|
||||||
|
|
||||||
|
Reference for coding agents (Claude Code and others) working in this repository.
|
||||||
|
Human-facing design docs live in `docs/`. This file is the operational one: where
|
||||||
|
things are, what is generated, and how to build/test/validate from the terminal.
|
||||||
|
|
||||||
|
Companion: `AGENTS.md` (pointer file, same content applies).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Repository layout
|
||||||
|
|
||||||
|
Repo root is `nightlcub-arcadia` (the typo is in the directory name, not a mistake
|
||||||
|
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)
|
||||||
|
├── Assets/
|
||||||
|
├── Packages/ # incl. embedded dev.yarnspinner.unity
|
||||||
|
└── ProjectSettings/
|
||||||
|
```
|
||||||
|
|
||||||
|
**Two `.gitignore` files, deliberately.** The Unity one anchors every rule with a
|
||||||
|
leading `/`, so it only works at the root of the Unity project folder. Do not merge them.
|
||||||
|
|
||||||
|
Unity **6000.5.8f1**, URP 17.5.0, Cinemachine 3.1.7, Input System 1.20.0,
|
||||||
|
AI Navigation 2.0.14, ProBuilder 6.1.2, Test Framework 1.7.0. Yarn Spinner is an
|
||||||
|
**embedded package** at `NightclubArcadia/Packages/dev.yarnspinner.unity` (plus the
|
||||||
|
`textanimator` addon) — it is committed, not resolved from a registry.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Ground rules
|
||||||
|
|
||||||
|
1. **Never hand-edit generated `.asset` files.** `Assets/Skills/Definitions/*.asset`,
|
||||||
|
`Assets/Skills/SkillDatabase.asset`, `Assets/Candidates/Definitions/*.asset` and
|
||||||
|
`Assets/Candidates/CandidateDatabase.asset` are *build output*. Their sources are
|
||||||
|
`Assets/Skills/skill_bible.json` and `Assets/Candidates/candidates.json`. Edits are
|
||||||
|
overwritten by the Editor setup scripts. Edit the JSON.
|
||||||
|
2. **Never hand-edit scene or prefab YAML unless you have read the surrounding block.**
|
||||||
|
GUID/fileID surgery in `.unity` / `.prefab` files silently detaches components.
|
||||||
|
5. **One Unity instance per project path.** Unity refuses to open a project in batch
|
||||||
|
mode while the Editor has it open — a single instance at a time. Always check before
|
||||||
|
any `-batchmode` invocation (§3.1).
|
||||||
|
6. **Prefer YarnCheck over Unity for dialogue validation.** It is seconds, not minutes,
|
||||||
|
and needs no Editor lock (§5.5).
|
||||||
|
7. **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
|
||||||
|
|
||||||
|
| | What it is | Status |
|
||||||
|
|---|---|---|
|
||||||
|
| `/Users/lennart/.unity/bin/unity` | The **Unity CLI** (v1.0.0-beta.6). Wraps the Editor for CI-shaped work: `build`, `test`, `run`, `open`, plus editor/license/cloud management. | Installed. **Prefer this.** |
|
||||||
|
| `/Applications/Unity/Hub/Editor/6000.5.8f1/Unity.app/Contents/MacOS/Unity` | The **Editor executable**. Raw `-batchmode` flags. | Installed. Fallback, for flags the CLI does not expose. |
|
||||||
|
|
||||||
|
The CLI is **not on `PATH` for non-interactive shells** — `which unity` fails even though the
|
||||||
|
binary exists, and `unity doctor` reports `check.binary-on-path warn`. Always invoke it by
|
||||||
|
absolute path, or export it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export UNITY_CLI="/Users/lennart/.unity/bin/unity"
|
||||||
|
export UNITY="/Applications/Unity/Hub/Editor/6000.5.8f1/Unity.app/Contents/MacOS/Unity"
|
||||||
|
export UNITY_PROJECT="/Users/lennart/Dev/nightlcub-arcadia/NightclubArcadia"
|
||||||
|
```
|
||||||
|
|
||||||
|
`unity doctor --no-banner` confirms the environment: signed in via OAuth keyring, editor
|
||||||
|
`6000.5.8f1` arm64 resolved from `ProjectVersion.txt`. Add `--json` to any command for
|
||||||
|
machine-readable output and `--no-banner` to keep logs clean.
|
||||||
|
|
||||||
|
### 3.1 Always check the lock first
|
||||||
|
|
||||||
|
Only one Unity instance per project path. Check before any headless run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pgrep -fl "Unity.app/Contents/MacOS/Unity" | grep -v AssetImportWorker
|
||||||
|
```
|
||||||
|
|
||||||
|
`AssetImportWorker*` processes are children of the main Editor — filter them out or you will
|
||||||
|
misread the check. `Temp/UnityLockfile` and `unity status` are the other two signals.
|
||||||
|
|
||||||
|
### 3.2 Run tests
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"$UNITY_CLI" test "$UNITY_PROJECT" --no-banner --mode EditMode \
|
||||||
|
--output /tmp/editmode-results.xml \
|
||||||
|
--report-format both --junit-output /tmp/editmode-junit.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
Useful flags: `--filter <pattern>`, `--retries <0-10>` (reports tests that pass on retry as
|
||||||
|
flaky), `--rerun-failed`, `--shard N/M` for parallel CI, `--coverage`, `--timeout <seconds>`.
|
||||||
|
|
||||||
|
`--mode PlayMode` runs `Assets/Tests/PlayMode` — currently `BootstrapTests`, which loads
|
||||||
|
`Bootstrap.unity` and asserts the whole game comes up: both scenes loaded, the player present
|
||||||
|
and tagged, the dialogue runner found, both NPCs having resolved their runner across the scene
|
||||||
|
boundary, and the reveal camera bound to the player. **If that suite fails, the game does not
|
||||||
|
start.**
|
||||||
|
|
||||||
|
Raw-Editor equivalent, if you need a flag the CLI does not expose:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"$UNITY" -batchmode -nographics -projectPath "$UNITY_PROJECT" \
|
||||||
|
-runTests -testPlatform EditMode \
|
||||||
|
-testResults /tmp/editmode-results.xml -logFile /tmp/unity-editmode.log
|
||||||
|
```
|
||||||
|
|
||||||
|
**Do not add `-quit` to a `-runTests` run** — the runner terminates the Editor itself, and
|
||||||
|
`-quit` on top of async work can hang it.
|
||||||
|
|
||||||
|
**Parse the results XML; do not trust the exit code.** Unity's own docs state there is no common
|
||||||
|
exit-code definition across the components under test. Read `total`/`passed`/`failed` off the
|
||||||
|
root element and list any `test-case` whose `result` is not `Passed`.
|
||||||
|
|
||||||
|
### 3.3 Build a player
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"$UNITY_CLI" build "$UNITY_PROJECT" --no-banner \
|
||||||
|
--target StandaloneOSX -o /tmp/NightclubArcadia.app
|
||||||
|
```
|
||||||
|
|
||||||
|
Without `--execute-method` the CLI uses Unity's built-in build — a Build Profile on Unity 6+, or
|
||||||
|
the legacy desktop player flags — and builds whatever scenes `EditorBuildSettings` enables.
|
||||||
|
`--profile <name>` selects a profile from `Assets/Settings/Build Profiles` (the profile defines
|
||||||
|
the target). `-l/--log-file` overrides the log path; the log streams to console unless `--no-tail`.
|
||||||
|
|
||||||
|
`make build` uses the entry point below, which is the form to prefer:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"$UNITY_CLI" build "$UNITY_PROJECT" --no-banner --target StandaloneOSX \
|
||||||
|
--execute-method NightclubArcadia.EditorTools.PlayerBuild.BuildMacOS \
|
||||||
|
-o "$PWD/build/NightclubArcadia.app"
|
||||||
|
```
|
||||||
|
|
||||||
|
`Assets/Editor/PlayerBuild.cs` reads the enabled scenes from the build settings, asserts
|
||||||
|
`Bootstrap.unity` is scene 0 (the player opens scene 0 on launch), honours the `-buildOutput`
|
||||||
|
the CLI forwards from `-o`, inspects the `BuildReport`, and calls `EditorApplication.Exit(1)` on
|
||||||
|
anything short of `Succeeded`. Without that last part Unity exits 0 on a build that produced
|
||||||
|
nothing and CI reports green. `BuildWindows` and `BuildLinux` are there too.
|
||||||
|
|
||||||
|
Verified: a full macOS build takes about two minutes and produces a ~172MB `.app`.
|
||||||
|
|
||||||
|
### 3.4 Run an arbitrary Editor method
|
||||||
|
|
||||||
|
```bash
|
||||||
|
"$UNITY_CLI" run "$UNITY_PROJECT" --no-banner --timeout 900 -- \
|
||||||
|
-executeMethod SomeClass.SomeStaticMethod
|
||||||
|
```
|
||||||
|
|
||||||
|
**`unity run` owns `-batchmode`, `-nographics`, `-quit` and `-logFile`.** Passing any of them
|
||||||
|
after `--` fails with a reserved-flag error. Pass only your own arguments.
|
||||||
|
|
||||||
|
Output does **not** stream to stdout. The log lands at `$UNITY_PROJECT/Logs/Editor.log` (the
|
||||||
|
previous run rotates to `Editor-prev.log`), so tag your `Debug.Log` calls and grep for them:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep -n "\[YourTag\]" "$UNITY_PROJECT/Logs/Editor.log" | tail -20
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the mechanism for the JSON → ScriptableObject regeneration in
|
||||||
|
`Assets/Editor/SkillSystemSetup.cs` and `CandidateSystemSetup.cs`. Read the actual class and
|
||||||
|
method names out of those files before invoking — do not guess them.
|
||||||
|
|
||||||
|
## 4. The dialogue content pipeline
|
||||||
|
|
||||||
|
### 4.1 Where content lives
|
||||||
|
|
||||||
|
```
|
||||||
|
NightclubArcadia/Assets/Dialogue/
|
||||||
|
├── NightclubArcadia.yarnproject # globs **/*.yarn — new files need no registration
|
||||||
|
├── Common.yarn # every <<declare>>, project-wide. Never played.
|
||||||
|
├── Commentary.yarn # passive skill barks, one node per (context, skill)
|
||||||
|
├── Scenes/ SC101, SC102, Debug
|
||||||
|
├── Characters/ Bartender, Bradford Kane, Chevalier Cassian Thal
|
||||||
|
└── Objects/ Chair
|
||||||
|
```
|
||||||
|
|
||||||
|
The writer-facing context sits at the repo root, outside `Assets/` so it gets no `.meta` files:
|
||||||
|
|
||||||
|
The scenes are split three ways, loaded additively from `Bootstrap`:
|
||||||
|
|
||||||
|
```
|
||||||
|
Assets/Scenes/
|
||||||
|
├── Bootstrap.unity entry point; GameBootstrap loads the rest
|
||||||
|
├── Systems/Systems.unity dialogue, skills, UI, camera rig, and the PLAYER
|
||||||
|
└── Levels/
|
||||||
|
├── SC101_ConferenceHall.unity geometry, light, navmesh, reveal cameras
|
||||||
|
└── SC101_ConferenceHall/ baked data for that scene (NavMesh asset)
|
||||||
|
```
|
||||||
|
|
||||||
|
`Bootstrap` must stay index 0 in the build settings. The level is made the active scene after
|
||||||
|
load, so new objects and lighting land there rather than in Bootstrap.
|
||||||
|
|
||||||
|
**Working in the Editor.** `Tools ▸ Nightclub Arcadia ▸ Open Game Scenes` opens all three at
|
||||||
|
once, with the level active. Do that before pressing Play.
|
||||||
|
|
||||||
|
If you press Play with only `Bootstrap` open, `GameBootstrap` loads the other two *at runtime*,
|
||||||
|
and Unity discards runtime-loaded scenes when Play ends — the Hierarchy comes back with Bootstrap
|
||||||
|
alone and it looks as though the scenes were destroyed. **Nothing is written to disk**; it is the
|
||||||
|
Hierarchy, not the files. With all three already open, `GameBootstrap` skips loading them
|
||||||
|
(`LoadIfNeeded`) and they are still there afterwards. `GameSceneWorkflow` also captures and
|
||||||
|
restores the scene setup around Play as a safety net; toggle it under the same menu.
|
||||||
|
|
||||||
|
```
|
||||||
|
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
|
||||||
|
requires **no C#, no Unity, and no `.yarnproject` edit**.
|
||||||
|
|
||||||
|
The one caveat: the `.yarnproject` also stores `editorOptions.yarnScriptEditor.projectGraphPositions`
|
||||||
|
— per-file x/y coordinates for the Yarn graph editor. These churn whenever anyone opens the
|
||||||
|
graph view. Treat that block as editor state; do not fight over it in review.
|
||||||
|
|
||||||
|
### 4.2 The variable contract
|
||||||
|
|
||||||
|
Every variable used anywhere must be `<<declare>>`d in `Common.yarn`. This is the whole point
|
||||||
|
of that file: the compiler then catches `$reputaton` instead of silently creating a second
|
||||||
|
variable at runtime. Adding a scene flag means adding a `<<declare>>` line — that is a writer
|
||||||
|
action, not a code action.
|
||||||
|
|
||||||
|
Naming families that are load-bearing (enforced or lint-checked):
|
||||||
|
|
||||||
|
| Family | Meaning | Checked by |
|
||||||
|
|---|---|---|
|
||||||
|
| `$self_lean_<candidate_id>` | identity-lean counter | `CandidateYarnLintTests` — id must exist in `candidates.json` |
|
||||||
|
| `$found_<clue_id>` | clue coverage | `CandidateYarnLintTests` — id must exist in `candidates.json` |
|
||||||
|
| `$visited_<location_id>` | first arrival | convention; `unlockFlag` in `candidates.json` may only name these |
|
||||||
|
| `$errand_<errand_id>` | errand state | same |
|
||||||
|
| `$seen_<scene_id>` | scene witnessed | convention |
|
||||||
|
| `$check_*` | written by `<<check>>` | **never `<<set>>` by hand** |
|
||||||
|
|
||||||
|
### 4.3 Writer-facing Yarn vocabulary
|
||||||
|
|
||||||
|
Commands and functions registered by game code, i.e. the full set a writer may use:
|
||||||
|
|
||||||
|
| Syntax | Defined in | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| `<<check <skill> <Band>>>` | `Skills/Yarn/YarnSkillCommands.cs` | writes `$check_result`, `$check_roll`, `$check_total`, `$check_dc`, `$check_modifier`, `$check_degree`, `$check_skill` |
|
||||||
|
| `<<skill_mod <source> <skill> <n>>>` | same | `source` = bucket key, e.g. `scene`, `drunk` |
|
||||||
|
| `<<clear_skill_mods <source>>>` | same | |
|
||||||
|
| `skill_rank(<skill>)` | same | function |
|
||||||
|
| `top_skill(a, b, …)` | `Dialogue/DialougueSkillComparison.cs` | **returns its FIRST argument on a tie** — argument order is a design decision, not incidental |
|
||||||
|
| `alias_name(<name>)` | `Dialogue/AliasNameGenerator.cs` | deterministic; `$player_alias` is a smart variable derived from it |
|
||||||
|
| `<<enter_environment>>` | `Dialogue/DialogueTransitionController.cs` | hands control back to the world |
|
||||||
|
|
||||||
|
(The filename `DialougueSkillComparison.cs` is misspelled in the repo. Left alone deliberately —
|
||||||
|
renaming it changes a `.meta` GUID. Fold it into a rename batch, not a drive-by fix.)
|
||||||
|
|
||||||
|
### 4.4 Flow control discipline
|
||||||
|
|
||||||
|
`<<detour>>` returns to the caller; `<<jump>>` does not and clears the return stack.
|
||||||
|
The rule the existing files follow, and which new content must follow:
|
||||||
|
|
||||||
|
- A node started directly by `DialogueInteractable` has nothing waiting on it → its branches
|
||||||
|
`<<jump>>`, and each destination calls `<<enter_environment>>` itself.
|
||||||
|
- A sub-conversation that must resume its caller → `<<detour>>`, and **never** `<<jump>>` inside it.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### 4.5 How content reaches Unity
|
||||||
|
|
||||||
|
There is **no manual sync step** for dialogue. The chain is:
|
||||||
|
|
||||||
|
```
|
||||||
|
.yarn file saved → Unity's YarnProjectImporter recompiles the .yarnproject on focus
|
||||||
|
→ DialogueRunner plays the new nodes on next Play
|
||||||
|
```
|
||||||
|
|
||||||
|
The only things that need a human/Editor step are the *data* files, not the dialogue:
|
||||||
|
|
||||||
|
```
|
||||||
|
skill_bible.json → Tools ▸ Nightclub Arcadia ▸ Set Up Skill System → Skills/Definitions/*.asset + SkillDatabase.asset
|
||||||
|
candidates.json → Tools ▸ Nightclub Arcadia ▸ Set Up Candidate System → Candidates/Definitions/*.asset + CandidateDatabase.asset
|
||||||
|
characters.json → Tools ▸ Nightclub Arcadia ▸ Set Up Characters → Characters/Definitions/*.asset
|
||||||
|
```
|
||||||
|
|
||||||
|
`characters.json` is where an NPC or a talkable object gets its display name, its Yarn node and
|
||||||
|
its interaction range. Adding one is a JSON entry plus a prefab; it needs no code.
|
||||||
|
|
||||||
|
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 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) |
|
||||||
|
|---|---|
|
||||||
|
| `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/**` |
|
||||||
|
|
||||||
|
**A writer must never need to open Unity or touch C# to write or revise a scene, a character,
|
||||||
|
or a branch.** If a writing task requires either, that is a pipeline bug — file it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Validation
|
||||||
|
|
||||||
|
### 5.1 EditMode test suite
|
||||||
|
|
||||||
|
`NightclubArcadia/Assets/Tests/EditMode/` — 7 files, ~870 LOC, two assemblies:
|
||||||
|
|
||||||
|
- `NightclubArcadia.Skills.Tests` — `SkillRosterTests`, `SkillCheckSystemTests`, `DcBandTests`,
|
||||||
|
`CommentaryPickerTests`, `CandidateRegistryTests`, `CandidateYarnLintTests`
|
||||||
|
- `NightclubArcadia.Locomotion.Math.Tests` — `MotionInputMathTests`
|
||||||
|
|
||||||
|
`CandidateYarnLintTests` is a **regex lint over Yarn source**: it asserts every
|
||||||
|
`$self_lean_*` / `$found_*` in any `.yarn` file resolves to a real id in `CandidateDatabase`.
|
||||||
|
It is a tripwire, not a proof.
|
||||||
|
|
||||||
|
### 5.2 PlayMode suite
|
||||||
|
|
||||||
|
`Assets/Tests/PlayMode/BootstrapTests.cs`. Verifies the scene split at runtime — the thing no
|
||||||
|
EditMode test can see, because none of the runtime resolution has happened yet.
|
||||||
|
|
||||||
|
### 5.3 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.4 One-click in-Editor run
|
||||||
|
|
||||||
|
`Tools ▸ Nightclub Arcadia ▸ Run Skill EditMode Tests` (`Assets/Editor/SkillSystemTestRunner.cs`).
|
||||||
|
|
||||||
|
### 5.5 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
|
||||||
|
can never drift from the compiler the game uses. This is the fastest correctness signal in the
|
||||||
|
repo and it needs no Editor lock. Use it on every dialogue change.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /Users/lennart/Dev/nightlcub-arcadia/tools/YarnCheck
|
||||||
|
|
||||||
|
# compile everything — exit 1 + diagnostics on failure
|
||||||
|
dotnet run -- ../../NightclubArcadia/Assets/Dialogue
|
||||||
|
|
||||||
|
# compile, then play a node, choosing option 2, 2, 0, 0
|
||||||
|
dotnet run -- ../../NightclubArcadia/Assets/Dialogue Bartender_Talk 2 2 0 0
|
||||||
|
```
|
||||||
|
|
||||||
|
Leftover picks restart the node — that deliberately models the player walking away and coming
|
||||||
|
back, which is how these scenes are actually played.
|
||||||
|
|
||||||
|
**What it does not model** (read traces with this in mind): Unity commands are printed, not
|
||||||
|
executed, so `<<check>>` / `<<enter_environment>>` / `<<skill_mod>>` are stepped over and
|
||||||
|
`$check_result` stays `false` — every check-gated branch shows its *failure* side. Yarn
|
||||||
|
functions are stubbed: `top_skill` mirrors the real first-argument-wins tie behaviour,
|
||||||
|
`alias_name` returns a placeholder, `skill_rank` returns 0. Variables reset to their
|
||||||
|
`<<declare>>` defaults each run; there is no save state.
|
||||||
|
|
||||||
|
Requires the .NET 9 SDK. `tools/YarnCheck/bin/` and `obj/` are currently **committed** and
|
||||||
|
should not be — see `docs/restructure-plan.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Code conventions
|
||||||
|
|
||||||
|
- Namespaces: `NightclubArcadia.<Area>` — `Skills`, `Dialogue`, `UI`, `UI.Dialogue`,
|
||||||
|
`UI.HUD`, `UI.Menu`, `Cinematics`, `Interaction`, `Player`, `Player.Math`.
|
||||||
|
There are no global-namespace runtime types left; the last one, `NPCStandIn`, went with the
|
||||||
|
scaffold, and `InputDeviceTracker` moved into `NightclubArcadia.Core`.
|
||||||
|
- **Assemblies.** No project code is in `Assembly-CSharp` any more:
|
||||||
|
|
||||||
|
| Assembly | Covers | Depends on |
|
||||||
|
|---|---|---|
|
||||||
|
| `NightclubArcadia.Core` | `Scripts/Core` | nothing |
|
||||||
|
| `NightclubArcadia.Locomotion.Math` | `Scripts/Player/Math` | nothing |
|
||||||
|
| `NightclubArcadia.Skills` | `Scripts/Skills` | Yarn, TMP, uGUI |
|
||||||
|
| `NightclubArcadia.Game` | the rest of `Scripts` | Core, Skills, Math, StarterAssets, packages |
|
||||||
|
| `StarterAssets` | vendored template code | Input System |
|
||||||
|
|
||||||
|
`Scripts/Interaction` holds the interaction layer: `InteractableDefinition` (the asset that
|
||||||
|
says what a thing is called and which node it starts), `DialogueInteractor` (the component
|
||||||
|
that places one in the world), plus `WorldSpaceLabel` and `InteractionPrompt`.
|
||||||
|
|
||||||
|
`Game` is one assembly rather than one per area because the areas are genuinely cyclic:
|
||||||
|
UI ↔ Dialogue, UI ↔ Player and UI ↔ Camera, via `UILayerBootstrap`, `PlayerControlLock` and
|
||||||
|
`CharacterPanelView`. Splitting further means moving those three, not just adding asmdefs.
|
||||||
|
The `.asmdef` at `Scripts/` covers everything beneath it except folders with their own.
|
||||||
|
- Comments in this codebase carry *decision history* — why a flag is written at the bottom of a
|
||||||
|
node rather than the top, why four voices in SC-101 breaks the three-voice cap on purpose.
|
||||||
|
Match that density. Do not strip such comments as "noise"; they are the design record.
|
||||||
|
- Editor-only code lives under `Assets/Editor/`. Anything there is stripped from builds and may
|
||||||
|
reference `UnityEditor`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Traps
|
||||||
|
|
||||||
|
1. **A scene silently turns binary if it holds an object that prefers binary serialization.**
|
||||||
|
This one cost real time. `DialogueTest.unity` was binary for weeks despite the project being
|
||||||
|
set to Force Text, because the `NavMeshSurface` held its baked `NavMeshData` *embedded in the
|
||||||
|
scene* rather than as an asset. One such object forces the whole file to binary, and no amount
|
||||||
|
of re-saving or toggling the setting fixes it — Force Text only converts at the moment the
|
||||||
|
setting changes. The fix is to extract the data to its own asset, which is what baking from
|
||||||
|
the NavMeshSurface inspector produces anyway. If a scene goes binary again, bisect: move the
|
||||||
|
roots one at a time into a fresh scene and see which one yields a binary file.
|
||||||
|
|
||||||
|
2. **Serialized references cannot cross a scene boundary.** Unity nulls them. The split cost
|
||||||
|
exactly seven: both NPCs' `dialogueRunner`, `dialogueUI` and `player`, plus the reveal
|
||||||
|
camera's tracking target. All are resolved at runtime now — `SceneServices` for the first,
|
||||||
|
`CinemachineFollowsPlayer` for the last.
|
||||||
|
|
||||||
|
**Resolve at the point of use, never in `Awake`.** A level object can wake up before the
|
||||||
|
scene holding its dependency exists — open the level on its own, or in the wrong order, and
|
||||||
|
`Awake` runs with no Systems scene in sight. That produced
|
||||||
|
`[SceneServices] Bartender: could not resolve dialogueRunner`, and because the result was
|
||||||
|
cached once, it stayed broken for the whole session. `SceneServices.TryResolve` is the silent
|
||||||
|
lookup for speculative calls; `SceneServices.Resolve` logs and belongs only where the
|
||||||
|
dependency is genuinely needed. `NPCStandIn.ResolvedDialogueRunner` is the pattern to copy.
|
||||||
|
`SceneOrderTests` holds the property, and asserts it is actually reproducing the race rather
|
||||||
|
than passing for free.
|
||||||
|
|
||||||
|
3. **The player's NavMeshAgent outlives the NavMesh.** The player is in Systems, the NavMesh is
|
||||||
|
baked into the level, so there is a window during load where the agent exists and is not on a
|
||||||
|
mesh. `ResetPath`, `isStopped` and `SetDestination` all log errors in that state. Guard on
|
||||||
|
`agent.isOnNavMesh`, not just a null check.
|
||||||
|
|
||||||
|
4. **An asmdef assembly cannot reference `Assembly-CSharp`.** Only the reverse. This is why
|
||||||
|
giving the runtime code assemblies had to include `StarterAssets`, which had none and which
|
||||||
|
four runtime files use — without that, everything referencing it would have stopped compiling.
|
||||||
|
Keep it in mind before adding loose scripts outside an asmdef folder.
|
||||||
|
|
||||||
|
5. **The one-shot scene builders are gone.** `UILayerSetup`, `PlayerControlSetup`,
|
||||||
|
`UILayerSetupAutoRun` and `YarnDemoSetup` built scenes from scratch and assumed the
|
||||||
|
single-scene layout; after the split they produced duplicates, and one of them destroyed a
|
||||||
|
level. The prefabs they used to generate are authored and committed now, so they were deleted
|
||||||
|
rather than fixed. They are in git history if the wiring ever needs consulting.
|
||||||
|
`Set Up Skill System`, `Set Up Candidate System` and `Set Up Characters` remain — they
|
||||||
|
regenerate assets from JSON and touch no scene. **To run the game, open `Bootstrap.unity`.**
|
||||||
|
|
||||||
|
6. **`unity run` reserves `-batchmode`, `-nographics`, `-quit`, `-logFile`.** Passing any of them
|
||||||
|
after `--` is a hard error, and its output does not reach stdout — read `Logs/Editor.log` (§3.4).
|
||||||
|
|
||||||
|
7. **`-quit` with `-runTests`** hangs or truncates. Omit it (§3.2).
|
||||||
|
|
||||||
|
8. **Exit code alone is not a test verdict.** Parse the results XML (§3.2), which is what
|
||||||
|
`make test` does.
|
||||||
|
|
||||||
|
9. **`which unity` fails** in non-interactive shells even though the CLI is installed. Use the
|
||||||
|
absolute path `/Users/lennart/.unity/bin/unity` (§3.0).
|
||||||
|
|
||||||
|
10. **Editor lock** — check before every headless run, filtering out `AssetImportWorker` children.
|
||||||
|
`make test` and `make build` do this for you (§2b).
|
||||||
|
|
||||||
|
11. **Regenerated assets** — hand edits to `Skills/Definitions/*`, `Candidates/Definitions/*`
|
||||||
|
and the two `*Database.asset` files are silently discarded (§2.1).
|
||||||
|
|
||||||
|
12. **`top_skill` ties** resolve to the first argument. Reordering arguments changes the game.
|
||||||
|
|
||||||
|
13. **`Bootstrap` must stay index 0** in the build settings, and all three scenes must be listed,
|
||||||
|
or `LoadSceneAsync` by name fails at runtime with nothing but a console error.
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
# 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 test-play ## 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 (bootstrap + scene split)
|
||||||
|
@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 \
|
||||||
|
--execute-method NightclubArcadia.EditorTools.PlayerBuild.BuildMacOS \
|
||||||
|
-o $(CURDIR)/build/NightclubArcadia.app
|
||||||
|
|
||||||
|
lock: ## Fail if the Unity Editor has the project open
|
||||||
|
# pgrep -x matches the process NAME only. The previous `pgrep -f` on the full
|
||||||
|
# binary path matched this very shell, because the pattern appears in its own
|
||||||
|
# command line — the check reported the Editor running when nothing was.
|
||||||
|
# AssetImportWorkers share the name but only exist alongside an Editor, so
|
||||||
|
# matching them is correct rather than a false positive.
|
||||||
|
@if pgrep -x Unity > /dev/null 2>&1; 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,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 2216657f3a0224501bcfa09add14f689
|
guid: 98c69c750f094ae79e2f9362c4422647
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ba062aa6c92b140379dbc06b43dd3b9b
|
guid: 6270e22570864d7c862434241018328f
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bffd4617fb74418f9eb0d0d6378cf79a
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ff84645ddce3641b0a7e9c68db56c8db
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,84 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a1b2c3d4e5f60718293a4b5c6d7e8f90
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings: []
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fd96ed0121314a93aff9d3ef7845fd1d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 642dac0a511114afa9f701fb8a59378c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
%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: 8f4df63859ea4e39910d900aa7a5510a, type: 3}
|
||||||
|
m_Name: bartender
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.InteractableDefinition
|
||||||
|
id: bartender
|
||||||
|
displayName: Bartender
|
||||||
|
yarnNode: Bartender_Talk
|
||||||
|
interactionRange: 3
|
||||||
|
showLabel: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8ccb543c858f74a969cb025cb3e1f0ea
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
%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: 8f4df63859ea4e39910d900aa7a5510a, type: 3}
|
||||||
|
m_Name: chair
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.InteractableDefinition
|
||||||
|
id: chair
|
||||||
|
displayName: Chair
|
||||||
|
yarnNode: Chair_Interaction
|
||||||
|
interactionRange: 3
|
||||||
|
showLabel: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 403e142c457b0412a8c8604a2a9807ed
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"interactables": [
|
||||||
|
{
|
||||||
|
"id": "bartender",
|
||||||
|
"displayName": "Bartender",
|
||||||
|
"yarnNode": "Bartender_Talk",
|
||||||
|
"interactionRange": 3.0,
|
||||||
|
"showLabel": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "chair",
|
||||||
|
"displayName": "Chair",
|
||||||
|
"yarnNode": "Chair_Interaction",
|
||||||
|
"interactionRange": 3.0,
|
||||||
|
"showLabel": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b4673507aac641739818bc04a57a8930
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -28,8 +28,8 @@
|
|||||||
"y": 2287
|
"y": 2287
|
||||||
},
|
},
|
||||||
"ChevalierCassianThal.yarn": {
|
"ChevalierCassianThal.yarn": {
|
||||||
"x": 1794,
|
"x": 1621,
|
||||||
"y": 2275
|
"y": 2260
|
||||||
},
|
},
|
||||||
"Commentary.yarn": {
|
"Commentary.yarn": {
|
||||||
"x": 12,
|
"x": 12,
|
||||||
@@ -40,20 +40,20 @@
|
|||||||
"y": 12
|
"y": 12
|
||||||
},
|
},
|
||||||
"Chair.yarn": {
|
"Chair.yarn": {
|
||||||
"x": 840,
|
"x": 866,
|
||||||
"y": 1072
|
"y": 1104
|
||||||
},
|
},
|
||||||
"Debug.yarn": {
|
"Debug.yarn": {
|
||||||
"x": -1,
|
"x": 14,
|
||||||
"y": 483
|
"y": 448
|
||||||
},
|
},
|
||||||
"SC101.yarn": {
|
"SC101.yarn": {
|
||||||
"x": 820,
|
"x": 820,
|
||||||
"y": -3
|
"y": -3
|
||||||
},
|
},
|
||||||
"SC102.yarn": {
|
"SC102.yarn": {
|
||||||
"x": 2734,
|
"x": 2595,
|
||||||
"y": 2559
|
"y": 2682
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,24 @@
|
|||||||
// SC-101 — The Card at the Desk. Opening candidate hooks.
|
// 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 —
|
// Rules that bind while editing THIS file — all six are deliberate, none is a
|
||||||
// object, testimony, document, intuition. Preserve that balance; do not
|
// leftover. The brief says why; this is the short form so you do not have to
|
||||||
// stack types so trust becomes an artifact of imbalance.
|
// leave the file to avoid breaking it.
|
||||||
// See Assets/Candidates/candidates.json.
|
|
||||||
//
|
//
|
||||||
// Beat order: hooks fire in sequence from SC101_Desk (STANDING ORDER →
|
// 1. Scene files stay thin: set the stage, <<detour>> into hook nodes, return.
|
||||||
// HOUSE POUR → FACEWORK → CONFLUENCE). Each remains an independently authored
|
// 2. Evidence balance — one object / testimony / document / intuition per
|
||||||
// node. Never <<if>>-guard a hook on another hook having fired, on any
|
// 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(...).
|
// $self_lean_*, or on skill_rank(...).
|
||||||
//
|
// 4. Passive pattern for a clue-bearing hook: one voice, from the candidate's
|
||||||
// Passive pattern (clue-bearing):
|
// attached pair; the line is that voice's argument, never a report; exactly
|
||||||
// one voice per hook, from the candidate's attached pair;
|
// one $self_lean_* write, with $found_<clue_id> set alongside it.
|
||||||
// the line is that character's argument, never a report;
|
// 5. Four voice introductions, against the handbook cap of three. Deliberate,
|
||||||
// exactly one $self_lean_* write; set $found_<clue_id> alongside it.
|
// 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.
|
||||||
// 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.
|
|
||||||
|
|
||||||
title: Start
|
title: Start
|
||||||
position: -17,-276
|
position: -17,-276
|
||||||
|
|||||||
@@ -0,0 +1,144 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using NightclubArcadia.Interaction;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.Callbacks;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.EditorTools
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Regenerates InteractableDefinition assets from Assets/Characters/characters.json.
|
||||||
|
///
|
||||||
|
/// The JSON is the source of truth and the .asset files are build output; hand edits
|
||||||
|
/// to them are overwritten. Same contract as Skills and Candidates, deliberately —
|
||||||
|
/// a writer adding a character edits one JSON file and never opens Unity.
|
||||||
|
///
|
||||||
|
/// This exists because the identity of an NPC used to live in public fields on a
|
||||||
|
/// scene object, where nothing outside that scene could see it and two copies could
|
||||||
|
/// disagree. They did: the scene's second "Bartender" was the chair.
|
||||||
|
/// </summary>
|
||||||
|
public static class CharacterSetup
|
||||||
|
{
|
||||||
|
const string JsonPath = "Assets/Characters/characters.json";
|
||||||
|
const string DefinitionsFolder = "Assets/Characters/Definitions";
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
class Dto
|
||||||
|
{
|
||||||
|
public string id;
|
||||||
|
public string displayName;
|
||||||
|
public string yarnNode;
|
||||||
|
public float interactionRange = 3f;
|
||||||
|
public bool showLabel = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
class DtoList
|
||||||
|
{
|
||||||
|
public Dto[] interactables;
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem("Tools/Nightclub Arcadia/Set Up Characters")]
|
||||||
|
public static void SetUpCharacters() => Regenerate(verbose: true);
|
||||||
|
|
||||||
|
[DidReloadScripts]
|
||||||
|
static void OnScriptsReloaded() => Regenerate(verbose: false);
|
||||||
|
|
||||||
|
static void Regenerate(bool verbose)
|
||||||
|
{
|
||||||
|
if (!File.Exists(JsonPath))
|
||||||
|
{
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[Characters] Missing {JsonPath}");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DtoList parsed;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
parsed = JsonUtility.FromJson<DtoList>(File.ReadAllText(JsonPath));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[Characters] {JsonPath} is not valid JSON: {e.Message}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parsed?.interactables == null || parsed.interactables.Length == 0)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[Characters] {JsonPath} defines no interactables.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var duplicates = parsed.interactables.GroupBy(i => i.id).Where(g => g.Count() > 1).ToList();
|
||||||
|
if (duplicates.Count > 0)
|
||||||
|
{
|
||||||
|
Debug.LogError("[Characters] Duplicate ids: " +
|
||||||
|
string.Join(", ", duplicates.Select(g => g.Key)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!AssetDatabase.IsValidFolder(DefinitionsFolder))
|
||||||
|
{
|
||||||
|
AssetDatabase.CreateFolder("Assets/Characters", "Definitions");
|
||||||
|
}
|
||||||
|
|
||||||
|
var live = new HashSet<string>(StringComparer.Ordinal);
|
||||||
|
var changed = new List<string>();
|
||||||
|
|
||||||
|
foreach (var dto in parsed.interactables)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(dto.id))
|
||||||
|
{
|
||||||
|
Debug.LogError("[Characters] An entry has no id; skipped.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
live.Add(dto.id);
|
||||||
|
|
||||||
|
var path = $"{DefinitionsFolder}/{dto.id}.asset";
|
||||||
|
var asset = AssetDatabase.LoadAssetAtPath<InteractableDefinition>(path);
|
||||||
|
if (asset == null)
|
||||||
|
{
|
||||||
|
asset = ScriptableObject.CreateInstance<InteractableDefinition>();
|
||||||
|
AssetDatabase.CreateAsset(asset, path);
|
||||||
|
changed.Add(dto.id);
|
||||||
|
}
|
||||||
|
else if (asset.DisplayName != dto.displayName || asset.YarnNode != dto.yarnNode ||
|
||||||
|
!Mathf.Approximately(asset.InteractionRange, dto.interactionRange) ||
|
||||||
|
asset.ShowLabel != dto.showLabel)
|
||||||
|
{
|
||||||
|
changed.Add(dto.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
asset.EditorSet(dto.id, dto.displayName, dto.yarnNode, dto.interactionRange, dto.showLabel);
|
||||||
|
EditorUtility.SetDirty(asset);
|
||||||
|
}
|
||||||
|
|
||||||
|
// An id removed from the JSON should not leave an orphan asset behind that a
|
||||||
|
// prefab could still be pointing at.
|
||||||
|
foreach (var guid in AssetDatabase.FindAssets("t:InteractableDefinition", new[] { DefinitionsFolder }))
|
||||||
|
{
|
||||||
|
var path = AssetDatabase.GUIDToAssetPath(guid);
|
||||||
|
var name = Path.GetFileNameWithoutExtension(path);
|
||||||
|
if (!live.Contains(name))
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[Characters] Removing orphan definition '{name}' — no longer in the JSON.");
|
||||||
|
AssetDatabase.DeleteAsset(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AssetDatabase.SaveAssets();
|
||||||
|
|
||||||
|
if (verbose || changed.Count > 0)
|
||||||
|
{
|
||||||
|
Debug.Log($"[Characters] {parsed.interactables.Length} definition(s) in {DefinitionsFolder}" +
|
||||||
|
(changed.Count > 0 ? $"; updated: {string.Join(", ", changed)}" : "; no changes"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9cbb2b742dcc4031a4e0cfc0c0544faf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.EditorTools
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Makes the split-scene layout usable in the Editor.
|
||||||
|
///
|
||||||
|
/// The game runs from Bootstrap, which loads Systems and a level additively AT
|
||||||
|
/// RUNTIME. Unity discards runtime-loaded scenes when Play ends and restores
|
||||||
|
/// whatever the Editor had open, which for someone who pressed Play in Bootstrap is
|
||||||
|
/// Bootstrap alone. The Hierarchy comes back nearly empty and it looks as though the
|
||||||
|
/// scenes were destroyed. They are not — nothing is written to disk — but it is an
|
||||||
|
/// unpleasant way to work.
|
||||||
|
///
|
||||||
|
/// Two fixes, both opt-outable:
|
||||||
|
/// - Open Game Scenes puts all three in the Hierarchy for authoring.
|
||||||
|
/// - The Editor's scene setup is captured before Play and restored after, so what
|
||||||
|
/// you had open is what you get back.
|
||||||
|
///
|
||||||
|
/// GameBootstrap skips any scene that is already loaded, so having all three open
|
||||||
|
/// and pressing Play does the right thing rather than loading anything twice.
|
||||||
|
/// </summary>
|
||||||
|
[InitializeOnLoad]
|
||||||
|
public static class GameSceneWorkflow
|
||||||
|
{
|
||||||
|
const string RestorePrefKey = "NightclubArcadia.RestoreSceneSetup";
|
||||||
|
const string RestoreMenu = "Tools/Nightclub Arcadia/Restore Scene Setup After Play";
|
||||||
|
|
||||||
|
static SceneSetup[] setupBeforePlay;
|
||||||
|
|
||||||
|
static GameSceneWorkflow()
|
||||||
|
{
|
||||||
|
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem("Tools/Nightclub Arcadia/Open Game Scenes")]
|
||||||
|
public static void OpenGameScenes()
|
||||||
|
{
|
||||||
|
// The prompt cannot be shown in batch mode, where it returns false and would
|
||||||
|
// make this menu a silent no-op.
|
||||||
|
if (!Application.isBatchMode && !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var path in new[] { ScenePaths.Bootstrap, ScenePaths.Systems, ScenePaths.WorkingLevel })
|
||||||
|
{
|
||||||
|
if (!File.Exists(path))
|
||||||
|
{
|
||||||
|
Debug.LogError($"[Scenes] Missing: {path}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorSceneManager.OpenScene(ScenePaths.Bootstrap, OpenSceneMode.Single);
|
||||||
|
EditorSceneManager.OpenScene(ScenePaths.Systems, OpenSceneMode.Additive);
|
||||||
|
var level = EditorSceneManager.OpenScene(ScenePaths.WorkingLevel, OpenSceneMode.Additive);
|
||||||
|
|
||||||
|
// The level owns the lighting and is where new objects should land.
|
||||||
|
EditorSceneManager.SetActiveScene(level);
|
||||||
|
Debug.Log("[Scenes] Bootstrap + Systems + SC101_ConferenceHall open. Level is active.");
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem(RestoreMenu)]
|
||||||
|
static void ToggleRestore()
|
||||||
|
{
|
||||||
|
var on = !EditorPrefs.GetBool(RestorePrefKey, true);
|
||||||
|
EditorPrefs.SetBool(RestorePrefKey, on);
|
||||||
|
Debug.Log($"[Scenes] Restore scene setup after Play: {(on ? "on" : "off")}");
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem(RestoreMenu, true)]
|
||||||
|
static bool ToggleRestoreValidate()
|
||||||
|
{
|
||||||
|
Menu.SetChecked(RestoreMenu, EditorPrefs.GetBool(RestorePrefKey, true));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OnPlayModeStateChanged(PlayModeStateChange state)
|
||||||
|
{
|
||||||
|
if (!EditorPrefs.GetBool(RestorePrefKey, true))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state == PlayModeStateChange.ExitingEditMode)
|
||||||
|
{
|
||||||
|
setupBeforePlay = EditorSceneManager.GetSceneManagerSetup();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state != PlayModeStateChange.EnteredEditMode || setupBeforePlay == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var setup = setupBeforePlay;
|
||||||
|
setupBeforePlay = null;
|
||||||
|
|
||||||
|
// A scene deleted or renamed while Play was running would throw here, and
|
||||||
|
// an exception in this callback leaves the Editor in a confusing state.
|
||||||
|
var usable = setup.Where(s => File.Exists(s.path)).ToArray();
|
||||||
|
if (usable.Length == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var current = EditorSceneManager.GetSceneManagerSetup();
|
||||||
|
if (current.Length == usable.Length &&
|
||||||
|
current.Select(s => s.path).SequenceEqual(usable.Select(s => s.path)))
|
||||||
|
{
|
||||||
|
return; // already what we wanted; do not disturb it
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
EditorSceneManager.RestoreSceneManagerSetup(usable);
|
||||||
|
}
|
||||||
|
catch (System.Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogWarning($"[Scenes] Could not restore the pre-Play scene setup: {e.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0e05a1f05ef74ff7a53f6e24ab37e51e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.Build.Reporting;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.EditorTools
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Headless player builds.
|
||||||
|
///
|
||||||
|
/// Not called "BuildPipeline" on purpose — that name collides with
|
||||||
|
/// UnityEditor.BuildPipeline, which this has to call.
|
||||||
|
///
|
||||||
|
/// The reason to have this at all rather than let the CLI drive Unity's built-in
|
||||||
|
/// build: a flag-only build reports success even when it produced nothing useful,
|
||||||
|
/// because Unity exits 0 unless the process itself failed. CI then goes green on a
|
||||||
|
/// build that does not exist. Every entry point here inspects the BuildReport and
|
||||||
|
/// calls EditorApplication.Exit(1) on anything short of success.
|
||||||
|
///
|
||||||
|
/// unity build NightclubArcadia --target StandaloneOSX \
|
||||||
|
/// --execute-method NightclubArcadia.EditorTools.PlayerBuild.BuildMacOS \
|
||||||
|
/// -o build/NightclubArcadia.app
|
||||||
|
///
|
||||||
|
/// The CLI forwards -o as -buildOutput, and honouring it is this method's job.
|
||||||
|
/// </summary>
|
||||||
|
public static class PlayerBuild
|
||||||
|
{
|
||||||
|
public static void BuildMacOS() => Build(BuildTarget.StandaloneOSX, "build/NightclubArcadia.app");
|
||||||
|
|
||||||
|
public static void BuildWindows() => Build(BuildTarget.StandaloneWindows64, "build/NightclubArcadia.exe");
|
||||||
|
|
||||||
|
public static void BuildLinux() => Build(BuildTarget.StandaloneLinux64, "build/NightclubArcadia");
|
||||||
|
|
||||||
|
static void Build(BuildTarget target, string defaultOutput)
|
||||||
|
{
|
||||||
|
var output = ArgValue("-buildOutput") ?? defaultOutput;
|
||||||
|
|
||||||
|
var scenes = EditorBuildSettings.scenes
|
||||||
|
.Where(s => s.enabled)
|
||||||
|
.Select(s => s.path)
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
if (scenes.Length == 0)
|
||||||
|
{
|
||||||
|
Fail("No enabled scenes in the build settings — the player would have nothing to load.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bootstrap loads the others by name at runtime, so it has to be index 0.
|
||||||
|
if (!scenes[0].EndsWith("/Bootstrap.unity", StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
Fail($"Scene 0 is '{scenes[0]}', expected Assets/Scenes/Bootstrap.unity. " +
|
||||||
|
"The player opens scene 0 on launch.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log($"[PlayerBuild] {target} -> {output}");
|
||||||
|
foreach (var scene in scenes)
|
||||||
|
{
|
||||||
|
Debug.Log($"[PlayerBuild] scene: {scene}");
|
||||||
|
}
|
||||||
|
|
||||||
|
var options = new BuildPlayerOptions
|
||||||
|
{
|
||||||
|
scenes = scenes,
|
||||||
|
locationPathName = output,
|
||||||
|
target = target,
|
||||||
|
options = BuildOptions.None,
|
||||||
|
};
|
||||||
|
|
||||||
|
BuildReport report;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
report = UnityEditor.BuildPipeline.BuildPlayer(options);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Fail($"BuildPlayer threw: {e}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var summary = report.summary;
|
||||||
|
Debug.Log($"[PlayerBuild] {summary.result} — {summary.totalSize} bytes in {summary.totalTime}, " +
|
||||||
|
$"{summary.totalErrors} error(s), {summary.totalWarnings} warning(s)");
|
||||||
|
|
||||||
|
if (summary.result != BuildResult.Succeeded)
|
||||||
|
{
|
||||||
|
foreach (var step in report.steps)
|
||||||
|
{
|
||||||
|
foreach (var msg in step.messages.Where(m => m.type == LogType.Error || m.type == LogType.Exception))
|
||||||
|
{
|
||||||
|
Debug.LogError($"[PlayerBuild] {step.name}: {msg.content}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Fail($"Build did not succeed: {summary.result}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Log("[PlayerBuild] ok");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Fail(string message)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[PlayerBuild] {message}");
|
||||||
|
EditorApplication.Exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Reads "-name value" out of the command line Unity was launched with.</summary>
|
||||||
|
static string ArgValue(string name)
|
||||||
|
{
|
||||||
|
var args = Environment.GetCommandLineArgs();
|
||||||
|
for (var i = 0; i < args.Length - 1; i++)
|
||||||
|
{
|
||||||
|
if (string.Equals(args[i], name, StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
return args[i + 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7ec643a873224cc89e1f94dfb735037d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
namespace NightclubArcadia.EditorTools
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The scene paths the one-shot setup menus operate on.
|
||||||
|
///
|
||||||
|
/// These used to be a literal "Assets/Scenes/DialogueTest.unity" repeated in four
|
||||||
|
/// Editor scripts, which is why renaming the scene meant finding all four. One
|
||||||
|
/// place now.
|
||||||
|
/// </summary>
|
||||||
|
public static class ScenePaths
|
||||||
|
{
|
||||||
|
/// <summary>Entry point. Loads Systems, then a level.</summary>
|
||||||
|
public const string Bootstrap = "Assets/Scenes/Bootstrap.unity";
|
||||||
|
|
||||||
|
/// <summary>Persistent systems: dialogue, skills, UI, camera rig, player.</summary>
|
||||||
|
public const string Systems = "Assets/Scenes/Systems/Systems.unity";
|
||||||
|
|
||||||
|
/// <summary>The level scene. SC-101's conference hall.</summary>
|
||||||
|
public const string WorkingLevel = "Assets/Scenes/Levels/SC101_ConferenceHall.unity";
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a3f10ec1f9042358ed09c1cdcc345d8
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -23,7 +23,7 @@ public static class SkillSystemSetup
|
|||||||
const string SkillsFolder = "Assets/Skills";
|
const string SkillsFolder = "Assets/Skills";
|
||||||
const string BiblePath = "Assets/Skills/skill_bible.json";
|
const string BiblePath = "Assets/Skills/skill_bible.json";
|
||||||
const string DatabasePath = "Assets/Skills/SkillDatabase.asset";
|
const string DatabasePath = "Assets/Skills/SkillDatabase.asset";
|
||||||
const string ScenePath = "Assets/Scenes/DialogueTest.unity";
|
const string ScenePath = NightclubArcadia.EditorTools.ScenePaths.Systems;
|
||||||
const string AutoSetupSessionKey = "NightclubArcadia.SkillSystem.AutoSetupDone";
|
const string AutoSetupSessionKey = "NightclubArcadia.SkillSystem.AutoSetupDone";
|
||||||
|
|
||||||
[DidReloadScripts]
|
[DidReloadScripts]
|
||||||
@@ -55,7 +55,7 @@ public static class SkillSystemSetup
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates/updates ScriptableObject assets without opening a scene.
|
/// Creates/updates ScriptableObject assets without opening a scene.
|
||||||
/// Safe to run on domain reload. Scene wiring stays on the menu item /
|
/// Safe to run on domain reload. Scene wiring stays on the menu item /
|
||||||
/// the checked-in DialogueTest.unity Skill System objects.
|
/// the checked-in Systems.unity Skill System objects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
static void EnsureSkillAssetsOnly()
|
static void EnsureSkillAssetsOnly()
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,12 @@ public static class SkillSystemSetup
|
|||||||
EditorUtility.SetDirty(database);
|
EditorUtility.SetDirty(database);
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
|
|
||||||
WireDialogueTestScene(database);
|
// Scene wiring deliberately skipped: the Skill System objects live in
|
||||||
|
// Systems.unity and are already wired there. Regenerating the assets is
|
||||||
|
// still useful and touches no scene. See LegacySceneSetup.
|
||||||
AssetDatabase.SaveAssets();
|
AssetDatabase.SaveAssets();
|
||||||
Debug.Log($"Skill system setup complete. Database at {DatabasePath}; scene wired at {ScenePath}.");
|
Debug.Log($"Skill assets regenerated. Database at {DatabasePath}. Scene wiring skipped — "
|
||||||
|
+ "the Skill System already exists in Systems.unity.");
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool TryLoadRoster(out SkillBibleEntry[] roster)
|
static bool TryLoadRoster(out SkillBibleEntry[] roster)
|
||||||
@@ -230,7 +233,7 @@ public static class SkillSystemSetup
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WireDialogueTestScene(SkillDatabase database)
|
static void WireWorkingLevelScene(SkillDatabase database)
|
||||||
{
|
{
|
||||||
if (!File.Exists(ScenePath))
|
if (!File.Exists(ScenePath))
|
||||||
{
|
{
|
||||||
@@ -243,7 +246,7 @@ public static class SkillSystemSetup
|
|||||||
var runner = UnityEngine.Object.FindAnyObjectByType<DialogueRunner>();
|
var runner = UnityEngine.Object.FindAnyObjectByType<DialogueRunner>();
|
||||||
if (runner == null)
|
if (runner == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("No DialogueRunner in DialogueTest.unity.");
|
Debug.LogError("No DialogueRunner in Systems.unity.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
using UnityEditor;
|
|
||||||
using UnityEditor.SceneManagement;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.EventSystems;
|
|
||||||
using Yarn.Compiler;
|
|
||||||
using Yarn.Unity;
|
|
||||||
using Yarn.Unity.Editor;
|
|
||||||
|
|
||||||
public static class YarnDemoSetup
|
|
||||||
{
|
|
||||||
const string YarnProjectPath = "Assets/Dialogue/NightclubArcadia.yarnproject";
|
|
||||||
const string ScenePath = "Assets/Scenes/DialogueTest.unity";
|
|
||||||
|
|
||||||
[MenuItem("Tools/Nightclub Arcadia/Set Up Yarn Dialogue Test")]
|
|
||||||
public static void SetUpYarnDialogueTest()
|
|
||||||
{
|
|
||||||
if (!AssetDatabase.IsValidFolder("Assets/TextMesh Pro"))
|
|
||||||
{
|
|
||||||
Debug.LogWarning("TextMesh Pro essential resources are missing. Run Window → TextMeshPro → Import TMP Essential Resources.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!AssetDatabase.IsValidFolder("Assets/Dialogue"))
|
|
||||||
{
|
|
||||||
AssetDatabase.CreateFolder("Assets", "Dialogue");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!AssetDatabase.IsValidFolder("Assets/Scenes"))
|
|
||||||
{
|
|
||||||
AssetDatabase.CreateFolder("Assets", "Scenes");
|
|
||||||
}
|
|
||||||
|
|
||||||
var yarnProject = AssetDatabase.LoadAssetAtPath<YarnProject>(YarnProjectPath);
|
|
||||||
if (yarnProject == null)
|
|
||||||
{
|
|
||||||
// YarnProjectUtility.CreateDefaultYarnProject is internal, so
|
|
||||||
// construct the same default project here.
|
|
||||||
var project = new Project
|
|
||||||
{
|
|
||||||
ExcludeFilePatterns = new[] { "**/*~/*", "./Samples/Yarn Spinner*/*" },
|
|
||||||
};
|
|
||||||
YarnEditorUtility.CreateYarnProject(YarnProjectPath, project);
|
|
||||||
AssetDatabase.Refresh();
|
|
||||||
yarnProject = AssetDatabase.LoadAssetAtPath<YarnProject>(YarnProjectPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
var scene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single);
|
|
||||||
|
|
||||||
var runner = CreateDialogueRunnerMenuItem.CreateDialogueRunner();
|
|
||||||
|
|
||||||
var so = new SerializedObject(runner);
|
|
||||||
so.FindProperty("yarnProject").objectReferenceValue = yarnProject;
|
|
||||||
so.ApplyModifiedPropertiesWithoutUndo();
|
|
||||||
|
|
||||||
runner.autoStart = true;
|
|
||||||
runner.startNode = "Start";
|
|
||||||
EditorUtility.SetDirty(runner);
|
|
||||||
|
|
||||||
#if UNITY_2023_1_OR_NEWER
|
|
||||||
var eventSystems = Object.FindObjectsByType<EventSystem>(FindObjectsInactive.Include);
|
|
||||||
#else
|
|
||||||
var eventSystems = Object.FindObjectsOfType<EventSystem>(true);
|
|
||||||
#endif
|
|
||||||
foreach (var eventSystem in eventSystems)
|
|
||||||
{
|
|
||||||
if (eventSystem.GetComponent<BaseInputModule>() != null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if ENABLE_INPUT_SYSTEM
|
|
||||||
eventSystem.gameObject.AddComponent<UnityEngine.InputSystem.UI.InputSystemUIInputModule>();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorSceneManager.SaveScene(scene, ScenePath);
|
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
|
|
||||||
Debug.Log($"Yarn dialogue test setup complete. Scene saved to {ScenePath}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6d9af60546b8c47c892a7b924fd4c91e
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fe41419ba50842189534933e2b64e958
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1d48f257d1ed84378baccde7a64adf41
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,539 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &4737069642952972654
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1722946503423415487}
|
||||||
|
- component: {fileID: 8432845660793814868}
|
||||||
|
- component: {fileID: 6335817353128072766}
|
||||||
|
- component: {fileID: 2944890677120165287}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Prompt
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1722946503423415487
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4737069642952972654}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 172386393200463862}
|
||||||
|
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.7}
|
||||||
|
m_SizeDelta: {x: 1.5, y: 0.4}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!23 &8432845660793814868
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4737069642952972654}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &6335817353128072766
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4737069642952972654}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro
|
||||||
|
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_text:
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 3
|
||||||
|
m_fontSizeBase: 3
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 0
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 8432845660793814868}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!114 &2944890677120165287
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4737069642952972654}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 10b4e7c1069944b49acca9287528f275, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.InteractionPrompt
|
||||||
|
--- !u!1 &7322328536378480179
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4239915935349831280}
|
||||||
|
- component: {fileID: 5807897220633392622}
|
||||||
|
- component: {fileID: 2641391509207732614}
|
||||||
|
- component: {fileID: 2690437797691371565}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Label
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4239915935349831280
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7322328536378480179}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 172386393200463862}
|
||||||
|
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: 1.2}
|
||||||
|
m_SizeDelta: {x: 2, y: 0.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!23 &5807897220633392622
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7322328536378480179}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &2641391509207732614
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7322328536378480179}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro
|
||||||
|
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_text: Bartender
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 4
|
||||||
|
m_fontSizeBase: 4
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 0
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 5807897220633392622}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!114 &2690437797691371565
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7322328536378480179}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5d24ca2949394cc78a1fdde5d83e08c2, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.WorldSpaceLabel
|
||||||
|
billboard: 1
|
||||||
|
--- !u!1 &7530910684996007227
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 172386393200463862}
|
||||||
|
- component: {fileID: 1403734579041167056}
|
||||||
|
- component: {fileID: 3418223217292734787}
|
||||||
|
- component: {fileID: 2161798758485273970}
|
||||||
|
- component: {fileID: 3703434673071649520}
|
||||||
|
- component: {fileID: 3878869479229240904}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Bartender
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &172386393200463862
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
serializedVersion: 2
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4239915935349831280}
|
||||||
|
- {fileID: 1722946503423415487}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!33 &1403734579041167056
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
--- !u!135 &3418223217292734787
|
||||||
|
SphereCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Radius: 0.5
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &2161798758485273970
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: fa72b8a577b83400c8fe35f9f594fb93, 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: 1
|
||||||
|
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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &3703434673071649520
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ba3ce042c3b3457ba101f1c6643b983f, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.DialogueInteractor
|
||||||
|
definition: {fileID: 11400000, guid: 8ccb543c858f74a969cb025cb3e1f0ea, type: 2}
|
||||||
|
label: {fileID: 2690437797691371565}
|
||||||
|
prompt: {fileID: 2944890677120165287}
|
||||||
|
dialogueUI: {fileID: 0}
|
||||||
|
--- !u!114 &3878869479229240904
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7530910684996007227}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7862f80331f384d28b27600075971a77, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Cinematics.CameraPointOfInterest
|
||||||
|
weight: 1
|
||||||
|
triggerRadius: 8
|
||||||
|
maxBias: 2.5
|
||||||
|
extraDistance: 1.5
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c0db6e63cdcba4608a13198c04bfc610
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Bartender_Placeholder
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _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}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 1
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.5
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _XRMotionVectorsPass: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 0.92, b: 0.016, a: 1}
|
||||||
|
- _Color: {r: 1, g: 0.92, b: 0.016, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &9147223334991767282
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||||
|
version: 10
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 8105016687592461f977c054a80ce2f2
|
guid: fa72b8a577b83400c8fe35f9f594fb93
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 0
|
mainObjectFileID: 2100000
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e8c20d75ae36249ab8379c0e4913f984
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,539 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &777994819892892268
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1239266274743412553}
|
||||||
|
- component: {fileID: 4457577143334209326}
|
||||||
|
- component: {fileID: 7850630094993076482}
|
||||||
|
- component: {fileID: 5006241980557930104}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Prompt
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1239266274743412553
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 777994819892892268}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8926026372035049776}
|
||||||
|
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.7}
|
||||||
|
m_SizeDelta: {x: 1.5, y: 0.4}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!23 &4457577143334209326
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 777994819892892268}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &7850630094993076482
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 777994819892892268}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro
|
||||||
|
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_text:
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 3
|
||||||
|
m_fontSizeBase: 3
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 0
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 4457577143334209326}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!114 &5006241980557930104
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 777994819892892268}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 10b4e7c1069944b49acca9287528f275, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.InteractionPrompt
|
||||||
|
--- !u!1 &1028094190342798046
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4034517959994022032}
|
||||||
|
- component: {fileID: 6899414861324739809}
|
||||||
|
- component: {fileID: 2525172943720193920}
|
||||||
|
- component: {fileID: 8100187015087210284}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Label
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4034517959994022032
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1028094190342798046}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 8926026372035049776}
|
||||||
|
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: 1.2}
|
||||||
|
m_SizeDelta: {x: 2, y: 0.5}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!23 &6899414861324739809
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1028094190342798046}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &2525172943720193920
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1028094190342798046}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro
|
||||||
|
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_text: Chair
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 4
|
||||||
|
m_fontSizeBase: 4
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 0
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
_SortingLayer: 0
|
||||||
|
_SortingLayerID: 0
|
||||||
|
_SortingOrder: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_renderer: {fileID: 6899414861324739809}
|
||||||
|
m_maskType: 0
|
||||||
|
--- !u!114 &8100187015087210284
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1028094190342798046}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5d24ca2949394cc78a1fdde5d83e08c2, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.WorldSpaceLabel
|
||||||
|
billboard: 1
|
||||||
|
--- !u!1 &7280501095255275029
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8926026372035049776}
|
||||||
|
- component: {fileID: 5837614995048342275}
|
||||||
|
- component: {fileID: 3813584389814668824}
|
||||||
|
- component: {fileID: 5825175854856588849}
|
||||||
|
- component: {fileID: 9133955159482683932}
|
||||||
|
- component: {fileID: 758253250585826679}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Chair
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8926026372035049776
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
serializedVersion: 2
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4034517959994022032}
|
||||||
|
- {fileID: 1239266274743412553}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!33 &5837614995048342275
|
||||||
|
MeshFilter:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
--- !u!135 &3813584389814668824
|
||||||
|
SphereCollider:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_ProvidesContacts: 0
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Radius: 0.5
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &5825175854856588849
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: dcf0462a407634956a12aae26cb9768b, 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: 1
|
||||||
|
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_GlobalIlluminationMeshLod: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_AdditionalVertexStreams: {fileID: 0}
|
||||||
|
--- !u!114 &9133955159482683932
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ba3ce042c3b3457ba101f1c6643b983f, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Interaction.DialogueInteractor
|
||||||
|
definition: {fileID: 11400000, guid: 403e142c457b0412a8c8604a2a9807ed, type: 2}
|
||||||
|
label: {fileID: 8100187015087210284}
|
||||||
|
prompt: {fileID: 5006241980557930104}
|
||||||
|
dialogueUI: {fileID: 0}
|
||||||
|
--- !u!114 &758253250585826679
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7280501095255275029}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 7862f80331f384d28b27600075971a77, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.Cinematics.CameraPointOfInterest
|
||||||
|
weight: 1
|
||||||
|
triggerRadius: 8
|
||||||
|
maxBias: 2.5
|
||||||
|
extraDistance: 1.5
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5f94d8e9cc93d47deb267073aebce344
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-386927403897027456
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||||
|
version: 10
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Chair_Placeholder
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _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}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 1
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.5
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _XRMotionVectorsPass: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0, g: 0, b: 1, a: 1}
|
||||||
|
- _Color: {r: 0, g: 0, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dcf0462a407634956a12aae26cb9768b
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 11e75200bdad4ff48299a7d24bb8df99
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,413 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3506879458838080580
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1649868454372858534}
|
||||||
|
- component: {fileID: 5353601244371665078}
|
||||||
|
- component: {fileID: 3249155410833833935}
|
||||||
|
- component: {fileID: 3956878563407369997}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: DialogueMessageRow
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1649868454372858534
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3506879458838080580}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5063401541721017946}
|
||||||
|
- {fileID: 7857316982467238224}
|
||||||
|
m_Father: {fileID: 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: 0, y: 80}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &5353601244371665078
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3506879458838080580}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a7773ea9a6f44798aa98356903037d16, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.UI.Dialogue.DialogueMessageRow
|
||||||
|
speakerText: {fileID: 5900251945930220314}
|
||||||
|
bodyText: {fileID: 1670956017877202442}
|
||||||
|
speakerLabel: {fileID: 5822252844234204748}
|
||||||
|
--- !u!114 &3249155410833833935
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3506879458838080580}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 12
|
||||||
|
m_Right: 12
|
||||||
|
m_Top: 8
|
||||||
|
m_Bottom: 8
|
||||||
|
m_ChildAlignment: 0
|
||||||
|
m_Spacing: 4
|
||||||
|
m_ChildForceExpandWidth: 1
|
||||||
|
m_ChildForceExpandHeight: 0
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &3956878563407369997
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3506879458838080580}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
|
||||||
|
m_HorizontalFit: 0
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !u!1 &5450003319614969337
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7857316982467238224}
|
||||||
|
- component: {fileID: 3605186933310922639}
|
||||||
|
- component: {fileID: 1670956017877202442}
|
||||||
|
- component: {fileID: 6572944391823112727}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Body
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7857316982467238224
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5450003319614969337}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1649868454372858534}
|
||||||
|
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: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3605186933310922639
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5450003319614969337}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &1670956017877202442
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5450003319614969337}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
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_text: Body
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 28
|
||||||
|
m_fontSizeBase: 28
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 256
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!114 &6572944391823112727
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5450003319614969337}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: -1
|
||||||
|
m_PreferredHeight: -1
|
||||||
|
m_FlexibleWidth: -1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &5822252844234204748
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5063401541721017946}
|
||||||
|
- component: {fileID: 4569120956328637162}
|
||||||
|
- component: {fileID: 5900251945930220314}
|
||||||
|
- component: {fileID: 3733932380812113541}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Speaker
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5063401541721017946
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5822252844234204748}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1649868454372858534}
|
||||||
|
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: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &4569120956328637162
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5822252844234204748}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5900251945930220314
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5822252844234204748}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
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_text: Speaker
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 22
|
||||||
|
m_fontSizeBase: 22
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 1
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!114 &3733932380812113541
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5822252844234204748}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: -1
|
||||||
|
m_PreferredHeight: -1
|
||||||
|
m_FlexibleWidth: -1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 90818ef7dc74247ceb348994755cea86
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,673 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1431520567503728820
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4838388606347767229}
|
||||||
|
- component: {fileID: 848167695161913818}
|
||||||
|
- component: {fileID: 872887529246740654}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Messages
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4838388606347767229
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1431520567503728820}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6371610150170887506}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
|
--- !u!114 &848167695161913818
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1431520567503728820}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 0
|
||||||
|
m_Spacing: 4
|
||||||
|
m_ChildForceExpandWidth: 1
|
||||||
|
m_ChildForceExpandHeight: 0
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &872887529246740654
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1431520567503728820}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
|
||||||
|
m_HorizontalFit: 0
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !u!1 &2888832924926796905
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8553742246756266605}
|
||||||
|
- component: {fileID: 7475958128581596541}
|
||||||
|
- component: {fileID: 5788080976967704390}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Panel
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8553742246756266605
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2888832924926796905}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 6287368187237088396}
|
||||||
|
m_Father: {fileID: 1243836425688988300}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.66, 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 &7475958128581596541
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2888832924926796905}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5788080976967704390
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2888832924926796905}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0.05, g: 0.05, b: 0.08, a: 0.92}
|
||||||
|
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
|
||||||
|
--- !u!1 &4923635399097880277
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3746324764683222304}
|
||||||
|
- component: {fileID: 3035847077530824546}
|
||||||
|
- component: {fileID: 5149667566061008557}
|
||||||
|
- component: {fileID: 2566128074157561357}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Viewport
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &3746324764683222304
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4923635399097880277}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 6371610150170887506}
|
||||||
|
m_Father: {fileID: 6287368187237088396}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
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!114 &3035847077530824546
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4923635399097880277}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.RectMask2D
|
||||||
|
m_Padding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Softness: {x: 0, y: 0}
|
||||||
|
--- !u!222 &5149667566061008557
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4923635399097880277}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2566128074157561357
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4923635399097880277}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 0.01}
|
||||||
|
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
|
||||||
|
--- !u!1 &5260492858234310193
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6371610150170887506}
|
||||||
|
- component: {fileID: 2397794206583674815}
|
||||||
|
- component: {fileID: 5419335647702174254}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Content
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6371610150170887506
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5260492858234310193}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4838388606347767229}
|
||||||
|
- {fileID: 6329947636030823459}
|
||||||
|
m_Father: {fileID: 3746324764683222304}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
|
--- !u!114 &2397794206583674815
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5260492858234310193}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 4
|
||||||
|
m_Right: 4
|
||||||
|
m_Top: 8
|
||||||
|
m_Bottom: 8
|
||||||
|
m_ChildAlignment: 7
|
||||||
|
m_Spacing: 6
|
||||||
|
m_ChildForceExpandWidth: 1
|
||||||
|
m_ChildForceExpandHeight: 0
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &5419335647702174254
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5260492858234310193}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
|
||||||
|
m_HorizontalFit: 0
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !u!1 &7249108092969100431
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6329947636030823459}
|
||||||
|
- component: {fileID: 5824694681547497274}
|
||||||
|
- component: {fileID: 6817391513969849154}
|
||||||
|
- component: {fileID: 5117926241503925785}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Options
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6329947636030823459
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7249108092969100431}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6371610150170887506}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
|
--- !u!114 &5824694681547497274
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7249108092969100431}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.VerticalLayoutGroup
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 0
|
||||||
|
m_Spacing: 4
|
||||||
|
m_ChildForceExpandWidth: 1
|
||||||
|
m_ChildForceExpandHeight: 0
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &6817391513969849154
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7249108092969100431}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter
|
||||||
|
m_HorizontalFit: 0
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !u!225 &5117926241503925785
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7249108092969100431}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 0
|
||||||
|
m_Interactable: 0
|
||||||
|
m_BlocksRaycasts: 0
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!1 &8691714907102969075
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1243836425688988300}
|
||||||
|
- component: {fileID: 1592513625297910240}
|
||||||
|
- component: {fileID: 7055069541643637941}
|
||||||
|
- component: {fileID: 4390775391658295920}
|
||||||
|
- component: {fileID: 3476584232491665726}
|
||||||
|
- component: {fileID: 6097567599041115085}
|
||||||
|
- component: {fileID: 307489608854241188}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: DialogueStreamCanvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1243836425688988300
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 8553742246756266605}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!223 &1592513625297910240
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 0
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 5
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &7055069541643637941
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 1
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0.5
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &4390775391658295920
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!225 &3476584232491665726
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 0
|
||||||
|
m_Interactable: 0
|
||||||
|
m_BlocksRaycasts: 0
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!114 &6097567599041115085
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 88cb6495795a4e13ac7fb72343c132af, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.UI.Dialogue.DialogueStreamPresenter
|
||||||
|
messageRowPrefab: {fileID: 5353601244371665078, guid: 90818ef7dc74247ceb348994755cea86, type: 3}
|
||||||
|
messageContainer: {fileID: 4838388606347767229}
|
||||||
|
scrollRect: {fileID: 7105587415705135446}
|
||||||
|
maxRows: 100
|
||||||
|
lettersPerSecond: 60
|
||||||
|
--- !u!114 &307489608854241188
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8691714907102969075}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 8d86cc99d5b545c4a3fad9e1482031a2, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.UI.Dialogue.DialogueStreamOptionsPresenter
|
||||||
|
optionViewPrefab: {fileID: 2576261519635394347, guid: e605972137b0b4c1399ffb07beae9a9b, type: 3}
|
||||||
|
optionsContainer: {fileID: 6329947636030823459}
|
||||||
|
canvasGroup: {fileID: 5117926241503925785}
|
||||||
|
showUnavailableOptions: 0
|
||||||
|
--- !u!1 &8898733438161318853
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6287368187237088396}
|
||||||
|
- component: {fileID: 7105587415705135446}
|
||||||
|
- component: {fileID: 6289533314517078144}
|
||||||
|
- component: {fileID: 7217060756955950799}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Scroll
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6287368187237088396
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8898733438161318853}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 3746324764683222304}
|
||||||
|
m_Father: {fileID: 8553742246756266605}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: -16, y: -16}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &7105587415705135446
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8898733438161318853}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ScrollRect
|
||||||
|
m_Content: {fileID: 6371610150170887506}
|
||||||
|
m_Horizontal: 0
|
||||||
|
m_Vertical: 1
|
||||||
|
m_MovementType: 2
|
||||||
|
m_Elasticity: 0.1
|
||||||
|
m_Inertia: 1
|
||||||
|
m_DecelerationRate: 0.135
|
||||||
|
m_ScrollSensitivity: 1
|
||||||
|
m_Viewport: {fileID: 3746324764683222304}
|
||||||
|
m_HorizontalScrollbar: {fileID: 0}
|
||||||
|
m_VerticalScrollbar: {fileID: 0}
|
||||||
|
m_HorizontalScrollbarVisibility: 0
|
||||||
|
m_VerticalScrollbarVisibility: 0
|
||||||
|
m_HorizontalScrollbarSpacing: 0
|
||||||
|
m_VerticalScrollbarSpacing: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!222 &6289533314517078144
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8898733438161318853}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7217060756955950799
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8898733438161318853}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0.01}
|
||||||
|
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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 55fc979a64b174ce796ffa39b13b7259
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,390 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3845905829654890729
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4691680407920056117}
|
||||||
|
- component: {fileID: 9194898352646057999}
|
||||||
|
- component: {fileID: 7450534218736675587}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: TabHint
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4691680407920056117
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3845905829654890729}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 252585930844827291}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 4}
|
||||||
|
m_SizeDelta: {x: 0, y: 28}
|
||||||
|
m_Pivot: {x: 0.5, y: 0}
|
||||||
|
--- !u!222 &9194898352646057999
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3845905829654890729}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7450534218736675587
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3845905829654890729}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
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_text: Tab
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 18
|
||||||
|
m_fontSizeBase: 18
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!1 &4914891251226459434
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8125896019114993279}
|
||||||
|
- component: {fileID: 637496887729740374}
|
||||||
|
- component: {fileID: 7333171482869056901}
|
||||||
|
- component: {fileID: 3439018567020279905}
|
||||||
|
- component: {fileID: 4573334312575796821}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: HudCanvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8125896019114993279
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4914891251226459434}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 252585930844827291}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0}
|
||||||
|
--- !u!223 &637496887729740374
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4914891251226459434}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_RenderMode: 0
|
||||||
|
m_Camera: {fileID: 0}
|
||||||
|
m_PlaneDistance: 100
|
||||||
|
m_PixelPerfect: 0
|
||||||
|
m_ReceivesEvents: 1
|
||||||
|
m_OverrideSorting: 0
|
||||||
|
m_OverridePixelPerfect: 0
|
||||||
|
m_SortingBucketNormalizedSize: 0
|
||||||
|
m_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_UseReflectionProbes: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 0
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 10
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!114 &7333171482869056901
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4914891251226459434}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
|
||||||
|
m_UiScaleMode: 1
|
||||||
|
m_ReferencePixelsPerUnit: 100
|
||||||
|
m_ScaleFactor: 1
|
||||||
|
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||||
|
m_ScreenMatchMode: 0
|
||||||
|
m_MatchWidthOrHeight: 0.5
|
||||||
|
m_PhysicalUnit: 3
|
||||||
|
m_FallbackScreenDPI: 96
|
||||||
|
m_DefaultSpriteDPI: 96
|
||||||
|
m_DynamicPixelsPerUnit: 1
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!114 &3439018567020279905
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4914891251226459434}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
|
||||||
|
m_IgnoreReversedGraphics: 1
|
||||||
|
m_BlockingObjects: 0
|
||||||
|
m_BlockingMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
--- !u!114 &4573334312575796821
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4914891251226459434}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fd1354ade14b4b1d80da9acac4aa9e12, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Game::NightclubArcadia.UI.HUD.PortraitHudView
|
||||||
|
panelRoot: {fileID: 4989543578856257477}
|
||||||
|
--- !u!1 &4989543578856257477
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 252585930844827291}
|
||||||
|
- component: {fileID: 7861001760273437131}
|
||||||
|
- component: {fileID: 1348039723167098503}
|
||||||
|
- component: {fileID: 4045319608296230342}
|
||||||
|
- component: {fileID: 1473442362196520338}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PortraitPanel
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &252585930844827291
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4989543578856257477}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 4691680407920056117}
|
||||||
|
m_Father: {fileID: 8125896019114993279}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 1, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
m_AnchoredPosition: {x: -24, y: 24}
|
||||||
|
m_SizeDelta: {x: 220, y: 280}
|
||||||
|
m_Pivot: {x: 1, y: 0}
|
||||||
|
--- !u!225 &7861001760273437131
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4989543578856257477}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!222 &1348039723167098503
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4989543578856257477}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4045319608296230342
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4989543578856257477}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0.15, g: 0.15, b: 0.18, a: 0.95}
|
||||||
|
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: a1b2c3d4e5f60718293a4b5c6d7e8f90, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 1
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &1473442362196520338
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4989543578856257477}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
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: 4045319608296230342}
|
||||||
|
m_OnClick:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 792e1d4c4cde942e8a71947301a3868c
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bb4c52aaa2c9e41aabc4bb11fa6372ba
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,669 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &738428826500747930
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7033684844244958404}
|
||||||
|
- component: {fileID: 8854647563054178895}
|
||||||
|
- component: {fileID: 7773152306665733045}
|
||||||
|
- component: {fileID: 3269936702826226914}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Accent
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7033684844244958404
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738428826500747930}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6014094232834212140}
|
||||||
|
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 &8854647563054178895
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738428826500747930}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7773152306665733045
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738428826500747930}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
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: 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
|
||||||
|
--- !u!114 &3269936702826226914
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738428826500747930}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 6
|
||||||
|
m_PreferredHeight: -1
|
||||||
|
m_FlexibleWidth: 0
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &1043270585848180102
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6266953780690568889}
|
||||||
|
- component: {fileID: 6662307575930959716}
|
||||||
|
- component: {fileID: 874797289038649292}
|
||||||
|
- component: {fileID: 3005905926608676038}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Bar
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6266953780690568889
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1043270585848180102}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 437950331768363985}
|
||||||
|
m_Father: {fileID: 6014094232834212140}
|
||||||
|
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 &6662307575930959716
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1043270585848180102}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &874797289038649292
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1043270585848180102}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0.2, g: 0.2, b: 0.22, 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: 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
|
||||||
|
--- !u!114 &3005905926608676038
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1043270585848180102}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 160
|
||||||
|
m_PreferredHeight: 16
|
||||||
|
m_FlexibleWidth: 0
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &1311471292218943158
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4484942689062487776}
|
||||||
|
- component: {fileID: 285052103366591294}
|
||||||
|
- component: {fileID: 6986784551111800944}
|
||||||
|
- component: {fileID: 4453305505185908855}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Rank
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4484942689062487776
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1311471292218943158}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6014094232834212140}
|
||||||
|
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: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &285052103366591294
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1311471292218943158}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6986784551111800944
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1311471292218943158}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
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_text: Rank
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 24
|
||||||
|
m_fontSizeBase: 24
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 4
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!114 &4453305505185908855
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1311471292218943158}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 40
|
||||||
|
m_PreferredHeight: -1
|
||||||
|
m_FlexibleWidth: 0
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &3239427835033733195
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4775921688302885094}
|
||||||
|
- component: {fileID: 3498508026980942921}
|
||||||
|
- component: {fileID: 4172720891822695416}
|
||||||
|
- component: {fileID: 6787294827931527212}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Name
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4775921688302885094
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3239427835033733195}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6014094232834212140}
|
||||||
|
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: 200, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &3498508026980942921
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3239427835033733195}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4172720891822695416
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3239427835033733195}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
|
||||||
|
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_text: Name
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: 0
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 24
|
||||||
|
m_fontSizeBase: 24
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 1
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_characterHorizontalScale: 1
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!114 &6787294827931527212
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3239427835033733195}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.LayoutElement
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: -1
|
||||||
|
m_PreferredHeight: -1
|
||||||
|
m_FlexibleWidth: 1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &3768236759226886124
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 437950331768363985}
|
||||||
|
- component: {fileID: 5606763019278455248}
|
||||||
|
- component: {fileID: 1019288287942172810}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Fill
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &437950331768363985
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3768236759226886124}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6266953780690568889}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
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 &5606763019278455248
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3768236759226886124}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &1019288287942172810
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3768236759226886124}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
|
||||||
|
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: 0}
|
||||||
|
m_Type: 3
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 0
|
||||||
|
m_FillAmount: 0.2
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &7442810364304304402
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6014094232834212140}
|
||||||
|
- component: {fileID: 1141587833647839303}
|
||||||
|
- component: {fileID: 8736413170534072599}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: SkillRow
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6014094232834212140
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7442810364304304402}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7033684844244958404}
|
||||||
|
- {fileID: 4775921688302885094}
|
||||||
|
- {fileID: 6266953780690568889}
|
||||||
|
- {fileID: 4484942689062487776}
|
||||||
|
m_Father: {fileID: 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: 0, y: 48}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1141587833647839303
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7442810364304304402}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 6ccda37aee7e42b09a0628f8a5729060, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: NightclubArcadia.Skills::NightclubArcadia.Skills.SkillRowView
|
||||||
|
nameLabel: {fileID: 4172720891822695416}
|
||||||
|
rankLabel: {fileID: 6986784551111800944}
|
||||||
|
barFill: {fileID: 1019288287942172810}
|
||||||
|
accentStripe: {fileID: 7773152306665733045}
|
||||||
|
--- !u!114 &8736413170534072599
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7442810364304304402}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 8
|
||||||
|
m_Right: 8
|
||||||
|
m_Top: 4
|
||||||
|
m_Bottom: 4
|
||||||
|
m_ChildAlignment: 3
|
||||||
|
m_Spacing: 12
|
||||||
|
m_ChildForceExpandWidth: 0
|
||||||
|
m_ChildForceExpandHeight: 1
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e14f68d6a57ea4945bd93c44202db910
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
%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: fcf7219bab7fe46a1ad266029b2fee19, type: 3}
|
|
||||||
m_Name: Readme
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
icon: {fileID: 2800000, guid: 727a75301c3d24613a3ebcec4a24c2c8, type: 3}
|
|
||||||
title: URP Empty Template
|
|
||||||
sections:
|
|
||||||
- heading: Welcome to the Universal Render Pipeline
|
|
||||||
text: This template includes the settings and assets you need to start creating with the Universal Render Pipeline.
|
|
||||||
linkText:
|
|
||||||
url:
|
|
||||||
- heading: URP Documentation
|
|
||||||
text:
|
|
||||||
linkText: Read more about URP
|
|
||||||
url: https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest
|
|
||||||
- heading: Forums
|
|
||||||
text:
|
|
||||||
linkText: Get answers and support
|
|
||||||
url: https://forum.unity.com/forums/universal-render-pipeline.383/
|
|
||||||
- heading: Report bugs
|
|
||||||
text:
|
|
||||||
linkText: Submit a report
|
|
||||||
url: https://unity3d.com/unity/qa/bug-reporting
|
|
||||||
loadedLayout: 1
|
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!29 &1
|
||||||
|
OcclusionCullingSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_OcclusionBakeSettings:
|
||||||
|
smallestOccluder: 5
|
||||||
|
smallestHole: 0.25
|
||||||
|
backfaceThreshold: 100
|
||||||
|
m_SceneGUID: 00000000000000000000000000000000
|
||||||
|
m_OcclusionCullingData: {fileID: 0}
|
||||||
|
--- !u!104 &2
|
||||||
|
RenderSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 10
|
||||||
|
m_Fog: 0
|
||||||
|
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||||
|
m_FogMode: 3
|
||||||
|
m_FogDensity: 0.01
|
||||||
|
m_LinearFogStart: 0
|
||||||
|
m_LinearFogEnd: 300
|
||||||
|
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||||
|
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||||
|
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||||
|
m_AmbientIntensity: 1
|
||||||
|
m_AmbientMode: 0
|
||||||
|
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||||
|
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_HaloStrength: 0.5
|
||||||
|
m_FlareStrength: 1
|
||||||
|
m_FlareFadeSpeed: 3
|
||||||
|
m_HaloTexture: {fileID: 0}
|
||||||
|
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_DefaultReflectionMode: 0
|
||||||
|
m_DefaultReflectionResolution: 128
|
||||||
|
m_ReflectionBounces: 1
|
||||||
|
m_ReflectionIntensity: 1
|
||||||
|
m_CustomReflection: {fileID: 0}
|
||||||
|
m_Sun: {fileID: 0}
|
||||||
|
m_UseRadianceAmbientProbe: 0
|
||||||
|
--- !u!157 &3
|
||||||
|
LightmapSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 13
|
||||||
|
m_BakeOnSceneLoad: 0
|
||||||
|
m_GISettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_BounceScale: 1
|
||||||
|
m_IndirectOutputScale: 1
|
||||||
|
m_AlbedoBoost: 1
|
||||||
|
m_EnvironmentLightingMode: 0
|
||||||
|
m_EnableBakedLightmaps: 1
|
||||||
|
m_EnableRealtimeLightmaps: 0
|
||||||
|
m_LightmapEditorSettings:
|
||||||
|
serializedVersion: 12
|
||||||
|
m_Resolution: 2
|
||||||
|
m_BakeResolution: 40
|
||||||
|
m_AtlasSize: 1024
|
||||||
|
m_AO: 0
|
||||||
|
m_AOMaxDistance: 1
|
||||||
|
m_CompAOExponent: 1
|
||||||
|
m_CompAOExponentDirect: 0
|
||||||
|
m_ExtractAmbientOcclusion: 0
|
||||||
|
m_Padding: 2
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_LightmapsBakeMode: 1
|
||||||
|
m_TextureCompression: 1
|
||||||
|
m_ReflectionCompression: 2
|
||||||
|
m_MixedBakeMode: 2
|
||||||
|
m_BakeBackend: 2
|
||||||
|
m_PVRSampling: 1
|
||||||
|
m_PVRDirectSampleCount: 32
|
||||||
|
m_PVRSampleCount: 512
|
||||||
|
m_PVRBounces: 2
|
||||||
|
m_PVREnvironmentSampleCount: 256
|
||||||
|
m_PVREnvironmentReferencePointCount: 2048
|
||||||
|
m_PVRFilteringMode: 1
|
||||||
|
m_PVRDenoiserTypeDirect: 1
|
||||||
|
m_PVRDenoiserTypeIndirect: 1
|
||||||
|
m_PVRDenoiserTypeAO: 1
|
||||||
|
m_PVRFilterTypeDirect: 0
|
||||||
|
m_PVRFilterTypeIndirect: 0
|
||||||
|
m_PVRFilterTypeAO: 0
|
||||||
|
m_PVREnvironmentMIS: 1
|
||||||
|
m_PVRCulling: 1
|
||||||
|
m_PVRFilteringGaussRadiusDirect: 1
|
||||||
|
m_PVRFilteringGaussRadiusIndirect: 1
|
||||||
|
m_PVRFilteringGaussRadiusAO: 1
|
||||||
|
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||||
|
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||||
|
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||||
|
m_ExportTrainingData: 0
|
||||||
|
m_TrainingDataDestination: TrainingData
|
||||||
|
m_LightProbeSampleCountMultiplier: 4
|
||||||
|
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_LightingSettings: {fileID: 0}
|
||||||
|
--- !u!196 &4
|
||||||
|
NavMeshSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_BuildSettings:
|
||||||
|
serializedVersion: 3
|
||||||
|
agentTypeID: 0
|
||||||
|
agentRadius: 0.5
|
||||||
|
agentHeight: 2
|
||||||
|
agentSlope: 45
|
||||||
|
agentClimb: 0.4
|
||||||
|
ledgeDropHeight: 0
|
||||||
|
maxJumpAcrossDistance: 0
|
||||||
|
minRegionArea: 2
|
||||||
|
manualCellSize: 0
|
||||||
|
cellSize: 0.16666667
|
||||||
|
manualTileSize: 0
|
||||||
|
tileSize: 256
|
||||||
|
buildHeightMesh: 0
|
||||||
|
maxJobWorkers: 0
|
||||||
|
preserveTilesOutsideBounds: 0
|
||||||
|
debug:
|
||||||
|
m_Flags: 0
|
||||||
|
m_NavMeshData: {fileID: 0}
|
||||||
|
--- !u!1 &1325409732
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1325409734}
|
||||||
|
- component: {fileID: 1325409733}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Bootstrap
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1325409733
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1325409732}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 612d8b8b7afa48d68f187e4d51bae0cd, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::NightclubArcadia.Core.GameBootstrap
|
||||||
|
systemsScene: Systems
|
||||||
|
startLevel: SC101_ConferenceHall
|
||||||
|
--- !u!4 &1325409734
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1325409732}
|
||||||
|
serializedVersion: 2
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1660057539 &9223372036854775807
|
||||||
|
SceneRoots:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_Roots:
|
||||||
|
- {fileID: 1325409734}
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 67a0ad6ebebd640a59b91b85221b30df
|
guid: 940e7dc5e84654c9fb808956223fc11e
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eaad6a890d839422a94db2c27a839bd9
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 55882bf97662d4abbaf3691c8c0c9b4a
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 99c9720ab356a0642a771bea13969a05
|
guid: a4910059112fe4675827519a3f55afe5
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 73a81211deb844562a24ef6db1dc3c46
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 23800000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,432 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 0
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 0}
|
|
||||||
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 12
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 12
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 40
|
|
||||||
m_AtlasSize: 1024
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_ExtractAmbientOcclusion: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 512
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVREnvironmentSampleCount: 256
|
|
||||||
m_PVREnvironmentReferencePointCount: 2048
|
|
||||||
m_PVRFilteringMode: 1
|
|
||||||
m_PVRDenoiserTypeDirect: 1
|
|
||||||
m_PVRDenoiserTypeIndirect: 1
|
|
||||||
m_PVRDenoiserTypeAO: 1
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVREnvironmentMIS: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_LightingSettings: {fileID: 0}
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 3
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
buildHeightMesh: 0
|
|
||||||
maxJobWorkers: 0
|
|
||||||
preserveTilesOutsideBounds: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &330585543
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 330585546}
|
|
||||||
- component: {fileID: 330585545}
|
|
||||||
- component: {fileID: 330585544}
|
|
||||||
- component: {fileID: 330585547}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &330585544
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 330585543}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &330585545
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 330585543}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_Iso: 200
|
|
||||||
m_ShutterSpeed: 0.005
|
|
||||||
m_Aperture: 16
|
|
||||||
m_FocusDistance: 10
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_BladeCount: 5
|
|
||||||
m_Curvature: {x: 2, y: 11}
|
|
||||||
m_BarrelClipping: 0.25
|
|
||||||
m_Anamorphism: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &330585546
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 330585543}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &330585547
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 330585543}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_RenderShadows: 1
|
|
||||||
m_RequiresDepthTextureOption: 2
|
|
||||||
m_RequiresOpaqueTextureOption: 2
|
|
||||||
m_CameraType: 0
|
|
||||||
m_Cameras: []
|
|
||||||
m_RendererIndex: -1
|
|
||||||
m_VolumeLayerMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 1
|
|
||||||
m_VolumeTrigger: {fileID: 0}
|
|
||||||
m_VolumeFrameworkUpdateModeOption: 2
|
|
||||||
m_RenderPostProcessing: 1
|
|
||||||
m_Antialiasing: 0
|
|
||||||
m_AntialiasingQuality: 2
|
|
||||||
m_StopNaN: 0
|
|
||||||
m_Dithering: 0
|
|
||||||
m_ClearDepth: 1
|
|
||||||
m_AllowXRRendering: 1
|
|
||||||
m_AllowHDROutput: 1
|
|
||||||
m_UseScreenCoordOverride: 0
|
|
||||||
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_RequiresDepthTexture: 0
|
|
||||||
m_RequiresColorTexture: 0
|
|
||||||
m_Version: 2
|
|
||||||
m_TaaSettings:
|
|
||||||
quality: 3
|
|
||||||
frameInfluence: 0.1
|
|
||||||
jitterScale: 1
|
|
||||||
mipBias: 0
|
|
||||||
varianceClampScale: 0.9
|
|
||||||
contrastAdaptiveSharpening: 0
|
|
||||||
--- !u!1 &410087039
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 410087041}
|
|
||||||
- component: {fileID: 410087040}
|
|
||||||
- component: {fileID: 410087042}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Directional Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &410087040
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 410087039}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 11
|
|
||||||
m_Type: 1
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_Intensity: 2
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_InnerSpotAngle: 21.80208
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 2
|
|
||||||
m_Resolution: -1
|
|
||||||
m_CustomResolution: -1
|
|
||||||
m_Strength: 1
|
|
||||||
m_Bias: 0.05
|
|
||||||
m_NormalBias: 0.4
|
|
||||||
m_NearPlane: 0.2
|
|
||||||
m_CullingMatrixOverride:
|
|
||||||
e00: 1
|
|
||||||
e01: 0
|
|
||||||
e02: 0
|
|
||||||
e03: 0
|
|
||||||
e10: 0
|
|
||||||
e11: 1
|
|
||||||
e12: 0
|
|
||||||
e13: 0
|
|
||||||
e20: 0
|
|
||||||
e21: 0
|
|
||||||
e22: 1
|
|
||||||
e23: 0
|
|
||||||
e30: 0
|
|
||||||
e31: 0
|
|
||||||
e32: 0
|
|
||||||
e33: 1
|
|
||||||
m_UseCullingMatrixOverride: 0
|
|
||||||
m_Cookie: {fileID: 0}
|
|
||||||
m_DrawHalo: 0
|
|
||||||
m_Flare: {fileID: 0}
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingLayerMask: 1
|
|
||||||
m_Lightmapping: 4
|
|
||||||
m_LightShadowCasterMode: 0
|
|
||||||
m_AreaSize: {x: 1, y: 1}
|
|
||||||
m_BounceIntensity: 1
|
|
||||||
m_ColorTemperature: 5000
|
|
||||||
m_UseColorTemperature: 1
|
|
||||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_UseBoundingSphereOverride: 0
|
|
||||||
m_UseViewFrustumForShadowCasterCull: 1
|
|
||||||
m_ForceVisible: 0
|
|
||||||
m_ShadowRadius: 0
|
|
||||||
m_ShadowAngle: 0
|
|
||||||
--- !u!4 &410087041
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 410087039}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
|
||||||
--- !u!114 &410087042
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 410087039}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Version: 3
|
|
||||||
m_UsePipelineSettings: 1
|
|
||||||
m_AdditionalLightsShadowResolutionTier: 2
|
|
||||||
m_LightLayerMask: 1
|
|
||||||
m_RenderingLayers: 1
|
|
||||||
m_CustomShadowLayers: 0
|
|
||||||
m_ShadowLayerMask: 1
|
|
||||||
m_ShadowRenderingLayers: 1
|
|
||||||
m_LightCookieSize: {x: 1, y: 1}
|
|
||||||
m_LightCookieOffset: {x: 0, y: 0}
|
|
||||||
m_SoftShadowQuality: 1
|
|
||||||
--- !u!1 &832575517
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 832575519}
|
|
||||||
- component: {fileID: 832575518}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Global Volume
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &832575518
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 832575517}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_IsGlobal: 1
|
|
||||||
priority: 0
|
|
||||||
blendDistance: 0
|
|
||||||
weight: 1
|
|
||||||
sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2}
|
|
||||||
--- !u!4 &832575519
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 832575517}
|
|
||||||
serializedVersion: 2
|
|
||||||
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_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1660057539 &9223372036854775807
|
|
||||||
SceneRoots:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_Roots:
|
|
||||||
- {fileID: 330585546}
|
|
||||||
- {fileID: 410087041}
|
|
||||||
- {fileID: 832575519}
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a7fa9631487c347788c76d7f8eac9692
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
+554
-1372
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c1fc9f8ca900943ce9f61d41d56bc763
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1647a101742545fe8af6187e3a743858
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
using Unity.Cinemachine;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Raises a reveal camera priority while the player is inside the volume.
|
||||||
|
/// </summary>
|
||||||
|
[RequireComponent(typeof(BoxCollider))]
|
||||||
|
public sealed class CameraFramingVolume : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] CinemachineCamera revealCamera;
|
||||||
|
[SerializeField] int activePriority = 20;
|
||||||
|
[SerializeField] float minDwell = 0.5f;
|
||||||
|
|
||||||
|
CameraStateDirector stateDirector;
|
||||||
|
int defaultPriority;
|
||||||
|
int occupants;
|
||||||
|
float exitTimer;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
var box = GetComponent<BoxCollider>();
|
||||||
|
box.isTrigger = true;
|
||||||
|
|
||||||
|
if (revealCamera != null)
|
||||||
|
{
|
||||||
|
defaultPriority = revealCamera.Priority.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
stateDirector = FindFirstObjectByType<CameraStateDirector>();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (!other.CompareTag("Player") || revealCamera == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
occupants++;
|
||||||
|
exitTimer = 0f;
|
||||||
|
revealCamera.Priority.Value = activePriority;
|
||||||
|
stateDirector?.RegisterReveal();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnTriggerExit(Collider other)
|
||||||
|
{
|
||||||
|
if (!other.CompareTag("Player") || revealCamera == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
occupants = Mathf.Max(0, occupants - 1);
|
||||||
|
if (occupants == 0)
|
||||||
|
{
|
||||||
|
exitTimer = minDwell;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (occupants > 0 || revealCamera == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (exitTimer > 0f)
|
||||||
|
{
|
||||||
|
exitTimer -= Time.deltaTime;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (revealCamera.Priority.Value != defaultPriority)
|
||||||
|
{
|
||||||
|
revealCamera.Priority.Value = defaultPriority;
|
||||||
|
stateDirector?.UnregisterReveal();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7cccc93b78eb84019b4524d65305612a
|
||||||
@@ -0,0 +1,162 @@
|
|||||||
|
using NightclubArcadia.Player;
|
||||||
|
using NightclubArcadia.Player.Math;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts mouse drag-pan into CameraRigAnchor manual offset with recenter rules.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CameraPanInput : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] Camera brainCamera;
|
||||||
|
[SerializeField] CameraRigAnchor anchor;
|
||||||
|
[SerializeField] CameraStateDirector stateDirector;
|
||||||
|
[SerializeField] PlayerPointerInput pointerInput;
|
||||||
|
[SerializeField] float panMetresPerPixel = 0.02f;
|
||||||
|
[SerializeField] float maxPanDistance = 12f;
|
||||||
|
[SerializeField] float recenterDelay = 2.5f;
|
||||||
|
[SerializeField] float recenterSmoothTime = 0.8f;
|
||||||
|
[SerializeField] float movementRecenterDelay = 0.4f;
|
||||||
|
|
||||||
|
float releaseTimer = float.MaxValue;
|
||||||
|
Vector3 recenterVelocity;
|
||||||
|
Vector3 camRight;
|
||||||
|
Vector3 camForward;
|
||||||
|
bool basisInitialized;
|
||||||
|
|
||||||
|
public bool IsManualPanActive => pointerInput != null && pointerInput.IsPanning || releaseTimer < recenterDelay;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (anchor == null)
|
||||||
|
{
|
||||||
|
anchor = GetComponent<CameraRigAnchor>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stateDirector == null)
|
||||||
|
{
|
||||||
|
stateDirector = GetComponent<CameraStateDirector>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (brainCamera == null)
|
||||||
|
{
|
||||||
|
brainCamera = Camera.main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (pointerInput == null)
|
||||||
|
{
|
||||||
|
var player = GameObject.FindGameObjectWithTag("Player");
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
pointerInput = player.GetComponent<PlayerPointerInput>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pointerInput != null)
|
||||||
|
{
|
||||||
|
pointerInput.PanDelta += OnPanDelta;
|
||||||
|
pointerInput.PanEnded += OnPanEnded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
if (pointerInput != null)
|
||||||
|
{
|
||||||
|
pointerInput.PanDelta -= OnPanDelta;
|
||||||
|
pointerInput.PanEnded -= OnPanEnded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (anchor == null || stateDirector == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stateDirector.AllowsManualPan && pointerInput != null && pointerInput.IsPanning)
|
||||||
|
{
|
||||||
|
releaseTimer = 0f;
|
||||||
|
}
|
||||||
|
else if (releaseTimer < recenterDelay)
|
||||||
|
{
|
||||||
|
releaseTimer += Time.deltaTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ShouldShortenRecenter())
|
||||||
|
{
|
||||||
|
releaseTimer = Mathf.Max(releaseTimer, recenterDelay - movementRecenterDelay);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stateDirector.AllowsManualPan)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (releaseTimer >= recenterDelay && (pointerInput == null || !pointerInput.IsPanning))
|
||||||
|
{
|
||||||
|
anchor.ManualPanOffset = Vector3.SmoothDamp(
|
||||||
|
anchor.ManualPanOffset,
|
||||||
|
Vector3.zero,
|
||||||
|
ref recenterVelocity,
|
||||||
|
recenterSmoothTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
anchor.ClampManualPan(maxPanDistance);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnPanDelta(Vector2 delta)
|
||||||
|
{
|
||||||
|
if (stateDirector == null || !stateDirector.AllowsManualPan || anchor == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EnsureCameraBasis();
|
||||||
|
anchor.Nudge(MotionInputMath.ScreenDeltaToWorldPan(delta, camRight, camForward, panMetresPerPixel));
|
||||||
|
anchor.ClampManualPan(maxPanDistance);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnPanEnded()
|
||||||
|
{
|
||||||
|
releaseTimer = 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ShouldShortenRecenter()
|
||||||
|
{
|
||||||
|
var player = GameObject.FindGameObjectWithTag("Player");
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var arbiter = player.GetComponent<PlayerMotionArbiter>();
|
||||||
|
return arbiter != null && arbiter.ActiveSource != MotionSource.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnsureCameraBasis()
|
||||||
|
{
|
||||||
|
if (brainCamera == null)
|
||||||
|
{
|
||||||
|
brainCamera = Camera.main;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (brainCamera == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!basisInitialized)
|
||||||
|
{
|
||||||
|
camRight = brainCamera.transform.right;
|
||||||
|
camForward = brainCamera.transform.forward;
|
||||||
|
basisInitialized = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f9b06ade88f2643a3b9f52a80e06081d
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Marker on NPCs and props that the POI director may bias toward.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CameraPointOfInterest : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] float weight = 1f;
|
||||||
|
[SerializeField] float triggerRadius = 8f;
|
||||||
|
[SerializeField] float maxBias = 2.5f;
|
||||||
|
[SerializeField] float extraDistance = 1.5f;
|
||||||
|
|
||||||
|
public float Weight => weight;
|
||||||
|
public float TriggerRadius => triggerRadius;
|
||||||
|
public float MaxBias => maxBias;
|
||||||
|
public float ExtraDistance => extraDistance;
|
||||||
|
public Transform Target => transform;
|
||||||
|
|
||||||
|
void OnEnable()
|
||||||
|
{
|
||||||
|
CameraPointOfInterestDirector.Register(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDisable()
|
||||||
|
{
|
||||||
|
CameraPointOfInterestDirector.Unregister(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7862f80331f384d28b27600075971a77
|
||||||
@@ -0,0 +1,161 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Scores registered POIs and writes bias onto the camera anchor.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CameraPointOfInterestDirector : MonoBehaviour
|
||||||
|
{
|
||||||
|
static readonly List<CameraPointOfInterest> Registered = new List<CameraPointOfInterest>();
|
||||||
|
|
||||||
|
[SerializeField] CameraRigAnchor anchor;
|
||||||
|
[SerializeField] CameraStateDirector stateDirector;
|
||||||
|
[SerializeField] float poiSmoothTime = 1f;
|
||||||
|
[SerializeField] float poiReleaseTime = 1.4f;
|
||||||
|
[SerializeField] float maxHeadingAngle = 100f;
|
||||||
|
|
||||||
|
Vector3 poiVelocity;
|
||||||
|
float distanceVelocity;
|
||||||
|
CameraPointOfInterest activePoi;
|
||||||
|
|
||||||
|
public bool HasActivePoi => activePoi != null;
|
||||||
|
|
||||||
|
public static void Register(CameraPointOfInterest poi)
|
||||||
|
{
|
||||||
|
if (poi != null && !Registered.Contains(poi))
|
||||||
|
{
|
||||||
|
Registered.Add(poi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Unregister(CameraPointOfInterest poi)
|
||||||
|
{
|
||||||
|
Registered.Remove(poi);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (anchor == null)
|
||||||
|
{
|
||||||
|
anchor = GetComponent<CameraRigAnchor>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stateDirector == null)
|
||||||
|
{
|
||||||
|
stateDirector = GetComponent<CameraStateDirector>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
if (anchor == null || stateDirector == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var follow = anchor.FollowTarget;
|
||||||
|
if (follow == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!stateDirector.AllowsPointOfInterest)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stateDirector.Current == CameraState.ManualPan)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
activePoi = FindBestPoi(follow);
|
||||||
|
if (activePoi == null)
|
||||||
|
{
|
||||||
|
ReleasePoi();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var toPoi = activePoi.Target.position - follow.position;
|
||||||
|
toPoi.y = 0f;
|
||||||
|
var targetBias = Vector3.ClampMagnitude(toPoi, activePoi.MaxBias);
|
||||||
|
|
||||||
|
anchor.PoiBias = Vector3.SmoothDamp(
|
||||||
|
anchor.PoiBias,
|
||||||
|
targetBias,
|
||||||
|
ref poiVelocity,
|
||||||
|
poiSmoothTime);
|
||||||
|
|
||||||
|
anchor.DistanceBias = Mathf.SmoothDamp(
|
||||||
|
anchor.DistanceBias,
|
||||||
|
activePoi.ExtraDistance,
|
||||||
|
ref distanceVelocity,
|
||||||
|
poiSmoothTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
CameraPointOfInterest FindBestPoi(Transform follow)
|
||||||
|
{
|
||||||
|
CameraPointOfInterest best = null;
|
||||||
|
var bestScore = 0f;
|
||||||
|
var forward = follow.forward;
|
||||||
|
|
||||||
|
foreach (var poi in Registered)
|
||||||
|
{
|
||||||
|
if (poi == null || !poi.isActiveAndEnabled)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var offset = poi.Target.position - follow.position;
|
||||||
|
offset.y = 0f;
|
||||||
|
var distance = offset.magnitude;
|
||||||
|
if (distance > poi.TriggerRadius || distance <= 0.01f)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var angle = Vector3.Angle(forward, offset);
|
||||||
|
if (angle > maxHeadingAngle)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var score = poi.Weight * (1f - distance / poi.TriggerRadius);
|
||||||
|
if (score > bestScore)
|
||||||
|
{
|
||||||
|
bestScore = score;
|
||||||
|
best = poi;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return best;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReleasePoi()
|
||||||
|
{
|
||||||
|
if (anchor == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
anchor.PoiBias = Vector3.SmoothDamp(
|
||||||
|
anchor.PoiBias,
|
||||||
|
Vector3.zero,
|
||||||
|
ref poiVelocity,
|
||||||
|
poiReleaseTime);
|
||||||
|
|
||||||
|
anchor.DistanceBias = Mathf.SmoothDamp(
|
||||||
|
anchor.DistanceBias,
|
||||||
|
0f,
|
||||||
|
ref distanceVelocity,
|
||||||
|
poiReleaseTime);
|
||||||
|
|
||||||
|
if (anchor.PoiBias.sqrMagnitude < 0.0001f && Mathf.Abs(anchor.DistanceBias) < 0.01f)
|
||||||
|
{
|
||||||
|
activePoi = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3343417e1de440f095b73e55c6977b6
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
using Unity.Cinemachine;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Proxy transform the follow camera tracks. Combines player follow,
|
||||||
|
/// POI bias, manual pan offset, and distance bias.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CameraRigAnchor : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] Transform followTarget;
|
||||||
|
[SerializeField] CinemachinePositionComposer composer;
|
||||||
|
[SerializeField] float followSmoothTime = 0.12f;
|
||||||
|
[SerializeField] float distanceSmoothTime = 0.8f;
|
||||||
|
|
||||||
|
float defaultCameraDistance = 10f;
|
||||||
|
float distanceVelocity;
|
||||||
|
Vector3 followVelocity;
|
||||||
|
|
||||||
|
public Vector3 PoiBias { get; set; }
|
||||||
|
public Vector3 ManualPanOffset { get; set; }
|
||||||
|
public float DistanceBias { get; set; }
|
||||||
|
|
||||||
|
public Transform FollowTarget => followTarget;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (composer == null)
|
||||||
|
{
|
||||||
|
composer = FindFirstObjectByType<CinemachinePositionComposer>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (composer != null)
|
||||||
|
{
|
||||||
|
defaultCameraDistance = composer.CameraDistance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
if (followTarget == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var targetPosition = followTarget.position + PoiBias + ManualPanOffset;
|
||||||
|
transform.position = Vector3.SmoothDamp(
|
||||||
|
transform.position,
|
||||||
|
targetPosition,
|
||||||
|
ref followVelocity,
|
||||||
|
followSmoothTime);
|
||||||
|
|
||||||
|
if (composer != null)
|
||||||
|
{
|
||||||
|
var targetDistance = defaultCameraDistance + DistanceBias;
|
||||||
|
composer.CameraDistance = Mathf.SmoothDamp(
|
||||||
|
composer.CameraDistance,
|
||||||
|
targetDistance,
|
||||||
|
ref distanceVelocity,
|
||||||
|
distanceSmoothTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Nudge(Vector3 worldDelta)
|
||||||
|
{
|
||||||
|
ManualPanOffset += worldDelta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClampManualPan(float maxDistance)
|
||||||
|
{
|
||||||
|
if (followTarget == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var offset = ManualPanOffset;
|
||||||
|
offset.y = 0f;
|
||||||
|
if (offset.magnitude > maxDistance)
|
||||||
|
{
|
||||||
|
ManualPanOffset = offset.normalized * maxDistance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 16d6717a3703a4bb3a8c3bb0bb0392de
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
using NightclubArcadia.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
public enum CameraState
|
||||||
|
{
|
||||||
|
Follow,
|
||||||
|
ManualPan,
|
||||||
|
PointOfInterest,
|
||||||
|
Reveal,
|
||||||
|
Dialogue,
|
||||||
|
Menu
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resolves which camera subsystem may write each frame.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class CameraStateDirector : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] CameraRigAnchor anchor;
|
||||||
|
[SerializeField] float dialogueRecenterTime = 0.5f;
|
||||||
|
|
||||||
|
int activeRevealCount;
|
||||||
|
float dialogueRecenterTimer;
|
||||||
|
bool wasDialogueActive;
|
||||||
|
bool wasMenuOpen;
|
||||||
|
|
||||||
|
public CameraState Current { get; private set; } = CameraState.Follow;
|
||||||
|
|
||||||
|
public bool AllowsManualPan =>
|
||||||
|
Current != CameraState.Dialogue
|
||||||
|
&& Current != CameraState.Menu
|
||||||
|
&& Current != CameraState.Reveal;
|
||||||
|
|
||||||
|
public bool AllowsPointOfInterest =>
|
||||||
|
Current == CameraState.Follow || Current == CameraState.PointOfInterest;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
if (anchor == null)
|
||||||
|
{
|
||||||
|
anchor = GetComponent<CameraRigAnchor>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (UIStateController.Instance != null)
|
||||||
|
{
|
||||||
|
UIStateController.Instance.StateChanged += OnUiStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResolveState(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
if (UIStateController.Instance != null)
|
||||||
|
{
|
||||||
|
UIStateController.Instance.StateChanged -= OnUiStateChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
ResolveState(true);
|
||||||
|
|
||||||
|
if (Current == CameraState.Dialogue && anchor != null)
|
||||||
|
{
|
||||||
|
dialogueRecenterTimer += Time.deltaTime;
|
||||||
|
var t = Mathf.Clamp01(dialogueRecenterTimer / dialogueRecenterTime);
|
||||||
|
anchor.ManualPanOffset = Vector3.Lerp(anchor.ManualPanOffset, Vector3.zero, t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnUiStateChanged() => ResolveState(true);
|
||||||
|
|
||||||
|
public void RegisterReveal() => activeRevealCount++;
|
||||||
|
|
||||||
|
public void UnregisterReveal() => activeRevealCount = Mathf.Max(0, activeRevealCount - 1);
|
||||||
|
|
||||||
|
void ResolveState(bool allowManualPanPromotion)
|
||||||
|
{
|
||||||
|
var ui = UIStateController.Instance;
|
||||||
|
var menuOpen = ui != null && ui.IsMenuOpen;
|
||||||
|
var dialogueActive = ui != null && ui.IsDialogueActive;
|
||||||
|
|
||||||
|
if (menuOpen)
|
||||||
|
{
|
||||||
|
Current = CameraState.Menu;
|
||||||
|
}
|
||||||
|
else if (dialogueActive)
|
||||||
|
{
|
||||||
|
if (!wasDialogueActive)
|
||||||
|
{
|
||||||
|
dialogueRecenterTimer = 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
Current = CameraState.Dialogue;
|
||||||
|
}
|
||||||
|
else if (activeRevealCount > 0)
|
||||||
|
{
|
||||||
|
Current = CameraState.Reveal;
|
||||||
|
}
|
||||||
|
else if (allowManualPanPromotion && IsManualPanActive())
|
||||||
|
{
|
||||||
|
Current = CameraState.ManualPan;
|
||||||
|
}
|
||||||
|
else if (HasActivePointOfInterest())
|
||||||
|
{
|
||||||
|
Current = CameraState.PointOfInterest;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Current = CameraState.Follow;
|
||||||
|
}
|
||||||
|
|
||||||
|
wasDialogueActive = dialogueActive;
|
||||||
|
wasMenuOpen = menuOpen;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsManualPanActive()
|
||||||
|
{
|
||||||
|
var pan = GetComponent<CameraPanInput>();
|
||||||
|
return pan != null && pan.IsManualPanActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HasActivePointOfInterest()
|
||||||
|
{
|
||||||
|
var director = GetComponent<CameraPointOfInterestDirector>();
|
||||||
|
return director != null && director.HasActivePoi;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ca0160e4d996040238dab18725a2e844
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using Unity.Cinemachine;
|
||||||
|
using UnityEngine;
|
||||||
|
using NightclubArcadia.Core;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Points a CinemachineCamera at the player once the player exists.
|
||||||
|
///
|
||||||
|
/// Level cameras — the reveal cameras in particular — used to hold a serialized
|
||||||
|
/// reference to the PlayerArmature. The player now lives in the Systems scene, so
|
||||||
|
/// that reference cannot be serialized any more and has to be bound at runtime.
|
||||||
|
/// </summary>
|
||||||
|
[RequireComponent(typeof(CinemachineCamera))]
|
||||||
|
public sealed class CinemachineFollowsPlayer : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Tooltip("Also drive LookAt, not just Follow.")]
|
||||||
|
[SerializeField] bool alsoLookAt;
|
||||||
|
|
||||||
|
[Tooltip("Seconds to keep retrying while the Systems scene finishes loading.")]
|
||||||
|
[SerializeField] float resolveTimeout = 5f;
|
||||||
|
|
||||||
|
IEnumerator Start()
|
||||||
|
{
|
||||||
|
var cam = GetComponent<CinemachineCamera>();
|
||||||
|
var deadline = Time.unscaledTime + resolveTimeout;
|
||||||
|
|
||||||
|
while (SceneServices.Player == null && Time.unscaledTime < deadline)
|
||||||
|
{
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var player = SceneServices.Player;
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[CinemachineFollowsPlayer] {name}: no object tagged Player appeared " +
|
||||||
|
$"within {resolveTimeout}s.", this);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
cam.Follow = player;
|
||||||
|
if (alsoLookAt)
|
||||||
|
{
|
||||||
|
cam.LookAt = player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1cc7a0e83be949f5974b1f675c37c84e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
using NightclubArcadia.UI;
|
||||||
|
using Unity.Cinemachine;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Cinematics
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Shifts CinemachinePositionComposer.Composition.ScreenPosition so the
|
||||||
|
/// player is centred in the screen space left of the dialogue panel.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class DialogueCameraFraming : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] CinemachinePositionComposer composer;
|
||||||
|
[SerializeField] float dialogueScreenX = -0.17f;
|
||||||
|
[SerializeField] bool suppressDeadZoneXInDialogue = true;
|
||||||
|
|
||||||
|
float defaultDeadZoneX = 0.2f;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (composer == null)
|
||||||
|
{
|
||||||
|
composer = FindFirstObjectByType<CinemachinePositionComposer>();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (composer != null)
|
||||||
|
{
|
||||||
|
defaultDeadZoneX = composer.Composition.DeadZone.Size.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UIStateController.Instance != null)
|
||||||
|
{
|
||||||
|
UIStateController.Instance.StateChanged += OnStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
ApplyFraming();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
if (UIStateController.Instance != null)
|
||||||
|
{
|
||||||
|
UIStateController.Instance.StateChanged -= OnStateChanged;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnStateChanged() => ApplyFraming();
|
||||||
|
|
||||||
|
void ApplyFraming()
|
||||||
|
{
|
||||||
|
if (composer == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var active = UIStateController.Instance != null && UIStateController.Instance.IsDialogueActive;
|
||||||
|
var target = active ? dialogueScreenX : 0f;
|
||||||
|
|
||||||
|
var composition = composer.Composition;
|
||||||
|
composition.ScreenPosition = new Vector2(target, composition.ScreenPosition.y);
|
||||||
|
|
||||||
|
if (suppressDeadZoneXInDialogue)
|
||||||
|
{
|
||||||
|
var size = composition.DeadZone.Size;
|
||||||
|
size.x = active ? 0f : defaultDeadZoneX;
|
||||||
|
composition.DeadZone.Size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
composer.Composition = composition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 56142a5f8795401498df8e01dc74b258
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0a917e0f38654c5d9c73026e20ad3e16
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The entry point. Loads the persistent Systems scene, then a level, additively.
|
||||||
|
///
|
||||||
|
/// Splitting the game across scenes is what lets a level be edited without touching
|
||||||
|
/// the systems wiring, and stops a corrupted level from taking the dialogue runner,
|
||||||
|
/// the UI layer and the player with it. The cost is that serialized references
|
||||||
|
/// cannot cross a scene boundary — Unity nulls those — so the handful of level
|
||||||
|
/// objects that need a system resolve it at runtime instead. See SceneServices.
|
||||||
|
/// </summary>
|
||||||
|
public sealed class GameBootstrap : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Tooltip("Persistent scene holding dialogue, skills, UI, the camera rig and the player.")]
|
||||||
|
[SerializeField] string systemsScene = "Systems";
|
||||||
|
|
||||||
|
[Tooltip("Level to open on start. Leave empty to load only the systems layer.")]
|
||||||
|
[SerializeField] string startLevel = "SC101_ConferenceHall";
|
||||||
|
|
||||||
|
IEnumerator Start()
|
||||||
|
{
|
||||||
|
yield return LoadIfNeeded(systemsScene);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(startLevel))
|
||||||
|
{
|
||||||
|
yield return LoadIfNeeded(startLevel);
|
||||||
|
|
||||||
|
var level = SceneManager.GetSceneByName(startLevel);
|
||||||
|
if (level.IsValid() && level.isLoaded)
|
||||||
|
{
|
||||||
|
// The active scene decides where new objects land and which
|
||||||
|
// lighting settings apply, so it must be the level, not this one.
|
||||||
|
SceneManager.SetActiveScene(level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static IEnumerator LoadIfNeeded(string sceneName)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(sceneName))
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var existing = SceneManager.GetSceneByName(sceneName);
|
||||||
|
if (existing.IsValid() && existing.isLoaded)
|
||||||
|
{
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
var op = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
|
||||||
|
if (op == null)
|
||||||
|
{
|
||||||
|
Debug.LogError($"[GameBootstrap] '{sceneName}' is not in the build settings.");
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return op;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 612d8b8b7afa48d68f187e4d51bae0cd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.InputSystem.LowLevel;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Which input device was most recently active, globally.
|
||||||
|
///
|
||||||
|
/// InteractionPrompt — and anything else that shows a button glyph — reads Current
|
||||||
|
/// to decide between "[F]", "(X)" and "(✕)".
|
||||||
|
///
|
||||||
|
/// Requires the Input System package, with Active Input Handling set to
|
||||||
|
/// "Input System Package (New)" or "Both".
|
||||||
|
/// </summary>
|
||||||
|
public static class InputDeviceTracker
|
||||||
|
{
|
||||||
|
public enum DeviceType { Keyboard, Xbox, PlayStation, Generic }
|
||||||
|
|
||||||
|
public static DeviceType Current { get; private set; } = DeviceType.Keyboard;
|
||||||
|
|
||||||
|
[RuntimeInitializeOnLoadMethod]
|
||||||
|
static void Init()
|
||||||
|
{
|
||||||
|
InputSystem.onEvent += OnEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OnEvent(InputEventPtr eventPtr, InputDevice device)
|
||||||
|
{
|
||||||
|
// Only actual state changes — button, stick, key — not every event.
|
||||||
|
if (!eventPtr.IsA<StateEvent>() && !eventPtr.IsA<DeltaStateEvent>())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (device)
|
||||||
|
{
|
||||||
|
case Keyboard:
|
||||||
|
case Mouse:
|
||||||
|
Current = DeviceType.Keyboard;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Gamepad pad:
|
||||||
|
var name = pad.displayName.ToLowerInvariant();
|
||||||
|
if (name.Contains("dualshock") || name.Contains("dualsense") || name.Contains("playstation"))
|
||||||
|
{
|
||||||
|
Current = DeviceType.PlayStation;
|
||||||
|
}
|
||||||
|
else if (name.Contains("xbox") || name.Contains("xinput"))
|
||||||
|
{
|
||||||
|
Current = DeviceType.Xbox;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Current = DeviceType.Generic;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "NightclubArcadia.Core",
|
||||||
|
"rootNamespace": "NightclubArcadia.Core",
|
||||||
|
"references": [
|
||||||
|
"Unity.InputSystem"
|
||||||
|
],
|
||||||
|
"includePlatforms": [],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6a610a410f5944dca5c7961fee29bdff
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace NightclubArcadia.Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Finds objects that live in a different loaded scene.
|
||||||
|
///
|
||||||
|
/// Unity cannot serialize a reference across a scene boundary — the Inspector
|
||||||
|
/// refuses it and any existing reference is nulled when the scenes are split. So a
|
||||||
|
/// level object that needs the dialogue runner, or the player, has to resolve it at
|
||||||
|
/// runtime. This is a lookup helper, not a service container: there is no
|
||||||
|
/// registration step and nothing to keep in sync.
|
||||||
|
///
|
||||||
|
/// It is deliberately thin. FindFirstObjectByType is not cheap, so callers cache
|
||||||
|
/// what they get in Awake rather than calling per frame, and an Inspector-assigned
|
||||||
|
/// reference always wins — this only fills in what the split left null.
|
||||||
|
/// </summary>
|
||||||
|
public static class SceneServices
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Inspector value if set, otherwise the first one in any loaded scene. Silent:
|
||||||
|
/// returns null when nothing is found.
|
||||||
|
///
|
||||||
|
/// Use this when the answer may legitimately not exist yet — during Awake, for
|
||||||
|
/// instance, when the scene holding it may not have loaded.
|
||||||
|
/// </summary>
|
||||||
|
public static T TryResolve<T>(T assigned) where T : Object
|
||||||
|
{
|
||||||
|
if (assigned != null)
|
||||||
|
{
|
||||||
|
return assigned;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Include inactive: a system parked inactive at startup is still the object
|
||||||
|
// we mean, and excluding it produces a confusing "not found" for something
|
||||||
|
// sitting right there in the hierarchy.
|
||||||
|
return Object.FindFirstObjectByType<T>(FindObjectsInactive.Include);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// As TryResolve, but logs an error when nothing is found. Only call this at the
|
||||||
|
/// point the dependency is actually needed — calling it during Awake reports a
|
||||||
|
/// failure that may simply be a scene that has not finished loading.
|
||||||
|
/// </summary>
|
||||||
|
public static T Resolve<T>(T assigned, Object context, string field) where T : Object
|
||||||
|
{
|
||||||
|
var found = TryResolve(assigned);
|
||||||
|
if (found == null)
|
||||||
|
{
|
||||||
|
Debug.LogError(
|
||||||
|
$"[SceneServices] {context?.name}: could not resolve {field} ({typeof(T).Name}). " +
|
||||||
|
"Is the Systems scene loaded?", context);
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Transform player;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The player transform, by tag, cached. Null between scene loads if the
|
||||||
|
/// systems scene has not come up yet, so callers must handle null.
|
||||||
|
/// </summary>
|
||||||
|
public static Transform Player
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (player == null)
|
||||||
|
{
|
||||||
|
var go = GameObject.FindGameObjectWithTag("Player");
|
||||||
|
player = go != null ? go.transform : null;
|
||||||
|
}
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Drop the cache. Call when unloading a scene that held the player.</summary>
|
||||||
|
public static void Forget() => player = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: db6a827f17574ac1b7c92185a089300a
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using Yarn.Unity;
|
|
||||||
|
|
||||||
namespace NightclubArcadia.Dialogue
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Trigger-zone interactable: player walks in range, presses E, and this
|
|
||||||
/// starts the given Yarn node. The reverse of DialogueTransitionController's
|
|
||||||
/// <<enter_environment>> — this is the "step into dialogue" half of the loop.
|
|
||||||
/// </summary>
|
|
||||||
public class DialogueInteractable : MonoBehaviour
|
|
||||||
{
|
|
||||||
[SerializeField] private DialogueRunner dialogueRunner;
|
|
||||||
[SerializeField] private GameObject dialogueUI;
|
|
||||||
[SerializeField] private string yarnNodeName = "Bartender_Chat";
|
|
||||||
|
|
||||||
private bool playerInRange = false;
|
|
||||||
|
|
||||||
void OnTriggerEnter(Collider other)
|
|
||||||
{
|
|
||||||
if (other.CompareTag("Player"))
|
|
||||||
playerInRange = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnTriggerExit(Collider other)
|
|
||||||
{
|
|
||||||
if (other.CompareTag("Player"))
|
|
||||||
playerInRange = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (playerInRange && Input.GetKeyDown(KeyCode.E))
|
|
||||||
{
|
|
||||||
StartConversation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async void StartConversation()
|
|
||||||
{
|
|
||||||
// Player controls are locked by DialogueTransitionController off the
|
|
||||||
// runner's onDialogueStart event — nothing to do for that here.
|
|
||||||
if (DialogueUIVisibility.Show(dialogueUI))
|
|
||||||
{
|
|
||||||
// Only reached if the UI was found deactivated; give TMP a
|
|
||||||
// frame to re-cache its Canvas in OnEnable before any text is
|
|
||||||
// generated.
|
|
||||||
await Awaitable.NextFrameAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
await dialogueRunner.StartDialogue(yarnNodeName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 99afbbd28c8054d59a7a0dec94f5ec8f
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
using StarterAssets;
|
using NightclubArcadia.UI;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Yarn.Unity;
|
using Yarn.Unity;
|
||||||
|
|
||||||
@@ -7,33 +7,27 @@ namespace NightclubArcadia.Dialogue
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Owns the hand-off between dialogue and the 3D environment: locks the
|
/// Owns the hand-off between dialogue and the 3D environment: locks the
|
||||||
/// player's controls for as long as a conversation is running, and registers
|
/// player's controls for as long as a conversation is running, and registers
|
||||||
/// the <<enter_environment>> Yarn command that hands control back.
|
/// the <<enter_environment>> Yarn command that hands control back.
|
||||||
///
|
///
|
||||||
/// The lock is driven by the DialogueRunner's own lifecycle events rather
|
/// The lock is driven by the DialogueRunner's own lifecycle events rather
|
||||||
/// than by each interactable, so every entry point — auto-started nodes,
|
/// than by each interactable, so every entry point — auto-started nodes,
|
||||||
/// NPCStandIn, DialogueInteractable — gets the same behaviour without
|
/// DialogueInteractor — gets the same behaviour without
|
||||||
/// having to remember to do it.
|
/// having to remember to do it. Control locking is delegated to
|
||||||
|
/// <see cref="PlayerControlLock"/> so the player menu can hold a second
|
||||||
|
/// independent lock without re-enabling movement mid-conversation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class DialogueTransitionController : MonoBehaviour
|
public class DialogueTransitionController : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private DialogueRunner dialogueRunner;
|
[SerializeField] private DialogueRunner dialogueRunner;
|
||||||
[SerializeField] private GameObject dialogueUI;
|
[SerializeField] private GameObject dialogueUI;
|
||||||
[SerializeField] private GameObject playerArmature;
|
[SerializeField] private GameObject playerArmature;
|
||||||
|
[SerializeField] private PlayerControlLock controlLock;
|
||||||
private ThirdPersonController playerController;
|
|
||||||
private StarterAssetsInputs playerInputs;
|
|
||||||
private Animator playerAnimator;
|
|
||||||
|
|
||||||
static readonly int AnimIDSpeed = Animator.StringToHash("Speed");
|
|
||||||
static readonly int AnimIDMotionSpeed = Animator.StringToHash("MotionSpeed");
|
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
if (playerArmature != null)
|
if (controlLock == null && playerArmature != null)
|
||||||
{
|
{
|
||||||
playerController = playerArmature.GetComponent<ThirdPersonController>();
|
controlLock = playerArmature.GetComponent<PlayerControlLock>();
|
||||||
playerInputs = playerArmature.GetComponent<StarterAssetsInputs>();
|
|
||||||
playerAnimator = playerArmature.GetComponent<Animator>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subscribed in Awake rather than Start: the runner auto-starts its
|
// Subscribed in Awake rather than Start: the runner auto-starts its
|
||||||
@@ -45,11 +39,16 @@ namespace NightclubArcadia.Dialogue
|
|||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
if (controlLock == null && playerArmature != null)
|
||||||
|
{
|
||||||
|
controlLock = playerArmature.GetComponent<PlayerControlLock>();
|
||||||
|
}
|
||||||
|
|
||||||
// Dialogue is in progress as soon as this controller is active
|
// Dialogue is in progress as soon as this controller is active
|
||||||
// (including auto-started nodes), so the player stays locked out
|
// (including auto-started nodes), so the player stays locked out
|
||||||
// until <<enter_environment>>. The armature itself stays
|
// until <<enter_environment>>. The armature itself stays
|
||||||
// active/visible — only its controls are disabled.
|
// active/visible — only its controls are disabled.
|
||||||
SetPlayerControlEnabled(false);
|
controlLock?.Acquire(this);
|
||||||
|
|
||||||
dialogueRunner.AddCommandHandler("enter_environment", EnterEnvironment);
|
dialogueRunner.AddCommandHandler("enter_environment", EnterEnvironment);
|
||||||
}
|
}
|
||||||
@@ -63,7 +62,8 @@ namespace NightclubArcadia.Dialogue
|
|||||||
void OnDialogueStart()
|
void OnDialogueStart()
|
||||||
{
|
{
|
||||||
DialogueUIVisibility.Show(dialogueUI);
|
DialogueUIVisibility.Show(dialogueUI);
|
||||||
SetPlayerControlEnabled(false);
|
UIStateController.Instance?.SetDialogueActive(true);
|
||||||
|
controlLock?.Acquire(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safety net: a node that ends without <<enter_environment>> must still
|
// Safety net: a node that ends without <<enter_environment>> must still
|
||||||
@@ -74,40 +74,12 @@ namespace NightclubArcadia.Dialogue
|
|||||||
{
|
{
|
||||||
// Hide, don't deactivate: deactivating the Canvas breaks TMP's
|
// Hide, don't deactivate: deactivating the Canvas breaks TMP's
|
||||||
// cached Canvas reference and makes the next conversation throw.
|
// cached Canvas reference and makes the next conversation throw.
|
||||||
// See DialogueUIVisibility.
|
// See DialogueUIVisibility / PanelVisibility.
|
||||||
DialogueUIVisibility.Hide(dialogueUI);
|
DialogueUIVisibility.Hide(dialogueUI);
|
||||||
SetPlayerControlEnabled(true);
|
UIStateController.Instance?.SetDialogueActive(false);
|
||||||
}
|
// Release is idempotent on a HashSet — safe when both
|
||||||
|
// <<enter_environment>> and onDialogueComplete fire.
|
||||||
void SetPlayerControlEnabled(bool value)
|
controlLock?.Release(this);
|
||||||
{
|
|
||||||
if (playerController == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!value)
|
|
||||||
{
|
|
||||||
// Clear pending input and the locomotion blend before freezing
|
|
||||||
// the controller. Disabling it mid-stride otherwise leaves
|
|
||||||
// Speed at its last value, and the character keeps running on
|
|
||||||
// the spot for the whole conversation.
|
|
||||||
if (playerInputs != null)
|
|
||||||
{
|
|
||||||
playerInputs.MoveInput(Vector2.zero);
|
|
||||||
playerInputs.LookInput(Vector2.zero);
|
|
||||||
playerInputs.SprintInput(false);
|
|
||||||
playerInputs.JumpInput(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (playerAnimator != null)
|
|
||||||
{
|
|
||||||
playerAnimator.SetFloat(AnimIDSpeed, 0f);
|
|
||||||
playerAnimator.SetFloat(AnimIDMotionSpeed, 0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
playerController.enabled = value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user