Project structure, add docs update unity version

This commit is contained in:
2026-06-05 12:19:36 +03:00
parent fc24653f9a
commit 39294ec527
87 changed files with 5910 additions and 371 deletions
+5
View File
@@ -0,0 +1,5 @@
{
"recommendations": [
"visualstudiotoolsforunity.vstuc"
]
}
+10
View File
@@ -0,0 +1,10 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Unity",
"type": "vstuc",
"request": "attach"
}
]
}
+60
View File
@@ -0,0 +1,60 @@
{
"files.exclude": {
"**/.DS_Store": true,
"**/.git": true,
"**/.vs": true,
"**/.gitmodules": true,
"**/.vsconfig": true,
"**/*.booproj": true,
"**/*.pidb": true,
"**/*.suo": true,
"**/*.user": true,
"**/*.userprefs": true,
"**/*.unityproj": true,
"**/*.dll": true,
"**/*.exe": true,
"**/*.pdf": true,
"**/*.mid": true,
"**/*.midi": true,
"**/*.wav": true,
"**/*.gif": true,
"**/*.ico": true,
"**/*.jpg": true,
"**/*.jpeg": true,
"**/*.png": true,
"**/*.psd": true,
"**/*.tga": true,
"**/*.tif": true,
"**/*.tiff": true,
"**/*.3ds": true,
"**/*.3DS": true,
"**/*.fbx": true,
"**/*.FBX": true,
"**/*.lxo": true,
"**/*.LXO": true,
"**/*.ma": true,
"**/*.MA": true,
"**/*.obj": true,
"**/*.OBJ": true,
"**/*.asset": true,
"**/*.cubemap": true,
"**/*.flare": true,
"**/*.mat": true,
"**/*.meta": true,
"**/*.prefab": true,
"**/*.unity": true,
"build/": true,
"Build/": true,
"Library/": true,
"library/": true,
"obj/": true,
"Obj/": true,
"Logs/": true,
"logs/": true,
"ProjectSettings/": true,
"UserSettings/": true,
"temp/": true,
"Temp/": true
},
"dotnet.defaultSolution": "Gnome-s-Bounty.sln"
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 483f8bbb14d975a4c8be984c5f243c42
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+100
View File
@@ -0,0 +1,100 @@
# Gnomes Bounty - Architecture Documentation
## Project Structure
```
Assets/
├── Scripts/
│ ├── Controllers/
│ │ ├── PlayerController.cs
│ │ ├── TrollController.cs
│ │ └── GameManager.cs
│ ├── Managers/
│ │ ├── InputManager.cs
│ │ ├── AudioManager.cs
│ │ └── UIManager.cs
│ │ └── GameManager.cs
│ ├── Mechanics/
│ │ ├── AxeThrower.cs
│ │ ├── BreakableBlock.cs
│ │ └── TreasureCollector.cs
│ ├── UI/
│ │ ├── HUD.cs
│ │ ├── KeyUI.cs
│ │ └── ExitDoorUI.cs
│ └── Utilities/
│ ├── TrollSpawner.cs
│ └── LevelManager.cs
├── Prefabs/
│ ├── Player.prefab
│ ├── Troll.prefab
│ ├── Axe.prefab
│ ├── BreakableBlock.prefab
│ ├── Treasure.prefab
│ ├── Chest.prefab
│ ├── ExitDoor.prefab
│ └── TrollCave.prefab
├── Scenes/
│ ├── MainScene.unity
│ └── Level1.unity
├── Resources/
│ ├── Sprites/
│ │ ├── Player.png
│ │ ├── Troll.png
│ │ ├── Axe.png
│ │ ├── BreakableBlock.png
│ │ ├── Treasure.png
│ │ ├── Chest.png
│ │ └── ExitDoor.png
│ ├── Audio/
│ │ ├── Footsteps.mp3
│ │ ├── StunSound.wav
│ │ ├── BlockBreak.mp3
│ │ ├── KeyCollect.mp3
│ │ └── LevelComplete.mp3
├── Editor/
│ ├── CustomEditorScripts/
│ │ ├── PlayerControllerEditor.cs
│ │ └── TrollControllerEditor.cs
├── Documentation/
│ └── Architecture.md
└── README.md
```
## Key Components and Systems
### Player Controller
- **Responsibilities**: Handles player movement (left/right, climbing, jumping).
- **Interactions**: Interacts with the magical throwing axe.
### Troll Controller
- **Responsibilities**: Manages troll behavior (patrol, chase, stun recovery).
- **Spawning**: Spawns trolls from the troll cave.
### GameManager
- **Responsibilities**: Manages game state (level progression, score, lives).
### InputManager
- **Responsibilities**: Handles player input for movement and axe throwing.
### AudioManager
- **Responsibilities**: Plays sound effects and background music.
### UIManager
- **Responsibilities**: Manages the heads-up display (HUD) and UI elements like keys and exit doors.
### AxeThrower
- **Responsibilities**: Handles the mechanics of throwing the magical axe.
- **Stunning**: Stuns trolls and breaks blocks.
### BreakableBlock
- **Responsibilities**: Manages breakable blocks, including their destruction and sound effects.
### TreasureCollector
- **Responsibilities**: Tracks treasure collected by the player.
### TrollSpawner
- **Responsibilities**: Spawns trolls at timed intervals from the troll cave.
### LevelManager
- **Responsibilities**: Manages level transitions and loading.
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c39cff74c97ce47498f85a08cab353ea
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9f9f7111ce34c1646ace515338807786
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

+143
View File
@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 60e158eb73bad2342b5f39513079bbf2
TextureImporter:
internalIDToNameTable:
- first:
213: 4791806293662807987
second: Bkgrnd_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
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: 2
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:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Bkgrnd_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 1672
height: 940
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 3b7b04e9f6aef7240800000000000000
internalID: 4791806293662807987
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Bkgrnd_0: 4791806293662807987
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.1 MiB

@@ -3,7 +3,7 @@ guid: b7d38d9e837e72b4e95dc965092949d8
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -110,6 +110,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -119,6 +120,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 299 KiB

@@ -3,7 +3,7 @@ guid: 97c7a86fd5320654fbc8592b66a2a08e
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -123,6 +123,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -132,6 +133,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 316 KiB

@@ -3,7 +3,7 @@ guid: 1c823c51d16fa7648b666b5b5917c744
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -123,6 +123,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -132,6 +133,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

+845
View File
@@ -0,0 +1,845 @@
fileFormatVersion: 2
guid: fb6dbbc81180d204bb4ff36aae48fbc9
TextureImporter:
internalIDToNameTable:
- first:
213: -7337605234108622473
second: Hud_0
- first:
213: -3125244722504983289
second: Hud_1
- first:
213: 837009245953788970
second: Hud_2
- first:
213: -1340662855974404966
second: Hud_3
- first:
213: 6698074947916248846
second: Hud_4
- first:
213: 8506124243437744364
second: Hud_5
- first:
213: 208073894613925949
second: Hud_6
- first:
213: 7544834138881375305
second: Hud_7
- first:
213: -3948833424550202831
second: Hud_8
- first:
213: 7818119699687691340
second: Hud_9
- first:
213: 3228895505286729313
second: Hud_10
- first:
213: -7746743218144069005
second: Hud_11
- first:
213: 8331088274507185253
second: Hud_12
- first:
213: -4750634018157509770
second: Hud_13
- first:
213: 3823329428730489728
second: Hud_14
- first:
213: -6607950948264254499
second: Hud_15
- first:
213: -2335663166434610461
second: Hud_16
- first:
213: -5369310727525024397
second: Hud_17
- first:
213: -2779143242269305103
second: Hud_18
- first:
213: -3550696529758407981
second: Hud_19
- first:
213: 2813852691389607353
second: Hud_20
- first:
213: 8996577531266016985
second: Hud_21
- first:
213: -4487483813036839374
second: Hud_22
- first:
213: -4925837757267874463
second: Hud_23
- first:
213: 7015841677974672104
second: Hud_24
- first:
213: -9080209962925487366
second: Hud_25
- first:
213: 5423227791708710998
second: Hud_26
- first:
213: 5224089380700440918
second: Hud_27
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
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: 2
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:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Hud_0
rect:
serializedVersion: 2
x: 0
y: 946
width: 136
height: 78
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 77998e67ae69b2a90800000000000000
internalID: -7337605234108622473
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_1
rect:
serializedVersion: 2
x: 206
y: 947
width: 166
height: 54
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 70d1deeab76e0a4d0800000000000000
internalID: -3125244722504983289
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_2
rect:
serializedVersion: 2
x: 471
y: 945
width: 189
height: 75
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: a2c0bca7977ad9b00800000000000000
internalID: 837009245953788970
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_3
rect:
serializedVersion: 2
x: 703
y: 945
width: 248
height: 79
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: a9cb5125c32056de0800000000000000
internalID: -1340662855974404966
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_4
rect:
serializedVersion: 2
x: 989
y: 948
width: 203
height: 76
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: e07bd7d5da754fc50800000000000000
internalID: 6698074947916248846
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_5
rect:
serializedVersion: 2
x: 1203
y: 712
width: 286
height: 255
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: ce0f1799ee2db0670800000000000000
internalID: 8506124243437744364
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_6
rect:
serializedVersion: 2
x: 1239
y: 951
width: 170
height: 50
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: d30ce7fca1a33e200800000000000000
internalID: 208073894613925949
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_7
rect:
serializedVersion: 2
x: 0
y: 714
width: 185
height: 235
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 94cb341dca2a4b860800000000000000
internalID: 7544834138881375305
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_8
rect:
serializedVersion: 2
x: 188
y: 716
width: 263
height: 233
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 132fe741cece239c0800000000000000
internalID: -3948833424550202831
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_9
rect:
serializedVersion: 2
x: 471
y: 721
width: 189
height: 219
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: c445e57d17a8f7c60800000000000000
internalID: 7818119699687691340
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_10
rect:
serializedVersion: 2
x: 651
y: 879
width: 7
height: 7
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 16e8879ca575fcc20800000000000000
internalID: 3228895505286729313
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_11
rect:
serializedVersion: 2
x: 676
y: 705
width: 296
height: 237
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 37a3b5c461a0e7490800000000000000
internalID: -7746743218144069005
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_12
rect:
serializedVersion: 2
x: 971
y: 703
width: 227
height: 247
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 56c3c6a45a8fd9370800000000000000
internalID: 8331088274507185253
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_13
rect:
serializedVersion: 2
x: 174
y: 809
width: 6
height: 6
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 673c5d9c78b521eb0800000000000000
internalID: -4750634018157509770
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_14
rect:
serializedVersion: 2
x: 0
y: 263
width: 690
height: 453
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 08b27cacbd13f0530800000000000000
internalID: 3823329428730489728
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_15
rect:
serializedVersion: 2
x: 711
y: 273
width: 389
height: 429
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: dd3e08b7f97db44a0800000000000000
internalID: -6607950948264254499
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_16
rect:
serializedVersion: 2
x: 1111
y: 299
width: 419
height: 405
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 3e273b999be069fd0800000000000000
internalID: -2335663166434610461
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_17
rect:
serializedVersion: 2
x: 0
y: 0
width: 329
height: 266
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 37d3d2557506c75b0800000000000000
internalID: -5369310727525024397
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_18
rect:
serializedVersion: 2
x: 726
y: 121
width: 371
height: 152
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 1f65c9812ff7e69d0800000000000000
internalID: -2779143242269305103
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_19
rect:
serializedVersion: 2
x: 1117
y: 15
width: 396
height: 258
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 3d2b98e815469bec0800000000000000
internalID: -3550696529758407981
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_20
rect:
serializedVersion: 2
x: 1431
y: 266
width: 8
height: 7
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9bded884d10dc0720800000000000000
internalID: 2813852691389607353
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_21
rect:
serializedVersion: 2
x: 340
y: 121
width: 374
height: 144
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9d62f5949934adc70800000000000000
internalID: 8996577531266016985
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_22
rect:
serializedVersion: 2
x: 509
y: 258
width: 7
height: 7
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 23eaf9c6f3149b1c0800000000000000
internalID: -4487483813036839374
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_23
rect:
serializedVersion: 2
x: 82
y: 94
width: 7
height: 8
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 16d67d078a8e3abb0800000000000000
internalID: -4925837757267874463
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_24
rect:
serializedVersion: 2
x: 223
y: 31
width: 180
height: 90
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 8e29f08a5d64d5160800000000000000
internalID: 7015841677974672104
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_25
rect:
serializedVersion: 2
x: 413
y: 1
width: 276
height: 120
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: afa0dd1d52d9cf180800000000000000
internalID: -9080209962925487366
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_26
rect:
serializedVersion: 2
x: 703
y: 1
width: 268
height: 120
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 658e2dc61fc234b40800000000000000
internalID: 5423227791708710998
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Hud_27
rect:
serializedVersion: 2
x: 971
y: 1
width: 246
height: 121
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 6594a830d91bf7840800000000000000
internalID: 5224089380700440918
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Hud_0: -7337605234108622473
Hud_1: -3125244722504983289
Hud_10: 3228895505286729313
Hud_11: -7746743218144069005
Hud_12: 8331088274507185253
Hud_13: -4750634018157509770
Hud_14: 3823329428730489728
Hud_15: -6607950948264254499
Hud_16: -2335663166434610461
Hud_17: -5369310727525024397
Hud_18: -2779143242269305103
Hud_19: -3550696529758407981
Hud_2: 837009245953788970
Hud_20: 2813852691389607353
Hud_21: 8996577531266016985
Hud_22: -4487483813036839374
Hud_23: -4925837757267874463
Hud_24: 7015841677974672104
Hud_25: -9080209962925487366
Hud_26: 5423227791708710998
Hud_27: 5224089380700440918
Hud_3: -1340662855974404966
Hud_4: 6698074947916248846
Hud_5: 8506124243437744364
Hud_6: 208073894613925949
Hud_7: 7544834138881375305
Hud_8: -3948833424550202831
Hud_9: 7818119699687691340
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Before

Width:  |  Height:  |  Size: 893 KiB

After

Width:  |  Height:  |  Size: 893 KiB

@@ -3,7 +3,7 @@ guid: c16607b4a3288934e956c9e44bb4b401
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -123,6 +123,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -132,6 +133,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+143
View File
@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: d3f8df1b7fec0bb489da94dd34df83ad
TextureImporter:
internalIDToNameTable:
- first:
213: 7223950226953391895
second: Tiles_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
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: 2
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:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: Tiles_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 1672
height: 941
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 71fc8a01570a04460800000000000000
internalID: 7223950226953391895
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
Tiles_0: 7223950226953391895
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

@@ -3,7 +3,7 @@ guid: 20c67a455de7e3b4d9a1c3174a63121f
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -110,6 +110,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -119,6 +120,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

@@ -3,7 +3,7 @@ guid: 1c5e39eb98edb064197ed6515cbd49d8
TextureImporter: TextureImporter:
internalIDToNameTable: [] internalIDToNameTable: []
externalObjects: {} externalObjects: {}
serializedVersion: 12 serializedVersion: 13
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 0
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -106,7 +106,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Server buildTarget: Server
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
@@ -123,6 +123,7 @@ TextureImporter:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: 5e97eb03825dee720800000000000000 spriteID: 5e97eb03825dee720800000000000000
@@ -132,6 +133,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
+74
View File
@@ -0,0 +1,74 @@
# Gnomes Bounty — Cave Backgrounds Specification
**Style:** Cartoony, layered parallax
**Resolution:** 1920×1080 (scalable)
**Background:** Full opaque
**Version:** 1.0
---
# 1. Main Cave Background
## 1.1 Layer 1 — Foreground Shadows
- Dark silhouettes of rocks
- Soft edges
- Slight transparency
## 1.2 Layer 2 — Midground
- Stone walls
- Wooden beams
- Cracks and large shapes
- Low detail to avoid distraction
## 1.3 Layer 3 — Deep Background
- Very dark blue/gray
- Large blurred shapes
- Occasional glowing crystals
---
# 2. Special Backgrounds
## 2.1 Troll Cave Entrance
- Large dark hole
- Thick outline
- Glowing eyes inside
- Dust/particle effects
## 2.2 Rune Chamber
- Stone walls with glowing runes
- Blue or green light sources
- Symmetrical layout
## 2.3 Abandoned Mine
- Broken beams
- Rusty rails
- Old minecart silhouette
---
# 3. Color Palette
- Deep blues
- Muted grays
- Warm browns for wood
- Bright accents: crystals, runes
---
# 4. Parallax Recommendations
- Foreground: 120% speed
- Midground: 60% speed
- Background: 20% speed
---
# 5. Versioning
Backgrounds v1.0 include:
- Main cave
- Troll cave
- Rune chamber
- Abandoned mine
Future versions may add:
- Lava biome
- Ice biome
- Forest ruins
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e836fb84e2023ec4b8a319f8769e77ac
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+88
View File
@@ -0,0 +1,88 @@
# Gnomes Bounty — Decoration Elements Specification
**Style:** Cartoony, thick outlines
**Tile size:** 128×128 (where applicable)
**Version:** 1.0
---
# 1. Interactive Decor
## 1.1 Chest
- Wooden body
- Metal bands
- Lock
- Open/closed versions
- Gold coins inside
## 1.2 Key
- Large cartoon key
- Gold
- Sparkle effect
## 1.3 Torch
- Wooden handle
- Metal holder
- Flame animation (3 frames)
- Glow halo
---
# 2. Environmental Decor
## 2.1 Crystals
- Blue or green
- Soft glow
- 34 facets
- Thick outline
## 2.2 Stone Debris
- 35 rock pieces
- Random shapes
- Shadows under each
## 2.3 Roots
- Dark brown
- Curved organic shapes
- Slight shadow
## 2.4 Mine Rails
- Wooden beams
- Metal rails
- Slight perspective
## 2.5 Minecart
- Wooden body
- Metal wheels
- Simple shading
---
# 3. Atmospheric Decor
## 3.1 Cobwebs
- White/gray
- Thin lines
- Slight transparency
## 3.2 Bones (Humorous Troll Bones)
- Large cartoon bones
- Slight cracks
- Thick outline
## 3.3 Hanging Lantern
- Metal frame
- Warm yellow glow
- Simple chain
---
# 4. Versioning
Decor v1.0 includes:
- All core interactive objects
- Environmental props
- Atmospheric props
Future versions may add:
- Animated crystals
- Falling dust
- Water drips
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f589fb45599282540899c703980f6a9e
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+172
View File
@@ -0,0 +1,172 @@
# Gnomes Bounty — Game Concept Document
## 1. Overview
**Gnomes Bounty** is a 2D sideview puzzleplatformer with a cartoony visual style.
The player controls a clever gnome exploring ancient underground tunnels filled with treasure, traps, and slow but dangerous troll guardians.
The game focuses on tactical movement, environmental puzzles, and timing rather than combat.
The gnomes primary tool is a magical throwing axe that can stun enemies and break fragile blocks, but cannot kill.
Each level is a compact, selfcontained challenge where the player must collect treasure, find a key, and reach the exit before trolls overwhelm the area.
---
## 2. Core Fantasy
- You are a treasureseeking gnome delving into forgotten mines.
- Trolls inhabit these tunnels and emerge from their lairs over time.
- You rely on agility, cleverness, and a magical axe — not brute force.
- Every level is a race against time and growing danger.
---
## 3. Key Mechanics
### 3.1 Movement
- Run left/right
- Climb ladders
- Drop down from ledges
- Jump (optional depending on final design)
Movement is simple and responsive, supporting puzzlefocused gameplay.
---
### 3.2 Magical Throwing Axe
The gnome wields a **runic enchanted axe** with the following properties:
- Can be thrown in a straight line.
- Stuns trolls for a few seconds.
- Breaks fragile blocks.
- Disappears on impact (stone, wall, troll).
- Reappears only after a cooldown period.
- Cannot kill enemies — this is not a combat game.
The axe is a strategic tool, not a weapon.
---
### 3.3 Trolls
Trolls are the primary threat. They are:
- Slow
- Dumb
- Strong
- Persistent
- Easily distracted
- Vulnerable to stunning
#### Behavior
- Spawn from a troll cave with a delay.
- Maximum of 1 to 3 trolls per level.
- Patrol platforms and climb ladders.
- React to:
- Player in line of sight
- Loud noises (breaking blocks)
- Chase the player if they see him.
- Fall into pits and struggle to escape.
- After being stunned, recover and resume behavior.
Trolls create pressure, not combat.
---
### 3.4 Troll Cave (Spawner)
Each level contains one troll cave.
- First troll spawns after a short delay.
- Additional trolls spawn at timed intervals.
- Total trolls per level is limited.
- Visual and audio cues warn the player before a spawn:
- rumbling
- glowing eyes
- dust or smoke
This creates a soft time limit and dynamic tension.
---
### 3.5 Breakable Blocks
Some blocks can be destroyed with the axe.
Used for:
- Opening shortcuts
- Creating escape routes
- Dropping trolls into pits
- Accessing treasure
Breaking blocks makes noise, attracting trolls.
---
### 3.6 Treasure
Treasure is scattered around the level.
- Optional to collect, but increases score.
- Often placed in risky or trollpatrolled areas.
- Encourages exploration and clever routing.
---
### 3.7 Chests and Keys
Each level contains several chests.
- Only one chest contains the key to the exit.
- Others contain treasure.
- Trolls often guard chests.
- Opening a chest takes time, creating tension.
---
### 3.8 Exit Door
To complete a level, the player must:
1. Find the chest with the key
2. Reach the exit door
3. Avoid or outsmart trolls along the way
---
## 4. Level Structure
- Compact, singlescreen or small scrolling areas.
- Designed as puzzles, not long platforming sequences.
- Multiple paths and verticality.
- Troll cave placed strategically to create pressure.
- Ladders, platforms, pits, breakable blocks, and hazards.
Each level is a selfcontained challenge loop.
---
## 5. Tone & Art Style
- Bright, cartoony, expressive characters.
- Trolls look goofy but intimidating.
- Gnome is charming and determined.
- Environments are colorful but cavelike:
- wooden beams
- glowing crystals
- runic symbols
- old mine equipment
The tone is adventurous with a touch of humor.
---
## 6. Core Gameplay Loop
1. Enter level
2. Observe layout and troll cave
3. Collect treasure
4. Break blocks to open paths
5. Stun trolls when needed
6. Find the key
7. Reach the exit
8. Advance to next level
---
## 7. Design Pillars
- Tactical movement, not combat
- Simple controls, deep puzzles
- Predictable but dangerous enemies
- Magical tools with clear limitations
- Short, replayable levels
- Cartoony charm with real tension
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5b4d3bfe7890eaf4490d9e52d4677846
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+98
View File
@@ -0,0 +1,98 @@
# Gnomes Bounty — HUD Specification
**Style:** Cartoony, thick outlines, simple shapes
**Resolution target:** 1080p and scalable
**Background:** Transparent for icons
**HUD version:** 1.0
---
# 1. HUD Icons
## 1.1 Axe Icon
- Shape: stylized magical axe
- Outline: thick, dark brown
- Colors: steel gray blade, wooden handle
- Rune glow: soft blue
- States:
- Ready (bright, saturated)
- Cooldown (grayed out, circular timer overlay)
## 1.2 Key Icon
- Large cartoon key
- Gold color with bright highlight
- Thick outline
- Slight sparkle effect
## 1.3 Chest Icon
- Wooden chest with metal bands
- Closed version
- Open version (optional)
- Gold coins peeking out
## 1.4 Coin Icon
- Round gold coin
- Thick outline
- Simple embossed rune
## 1.5 Life Icon
- Gnome face portrait
- Big beard, helmet
- Neutral expression
- Optional: damaged version for low HP
---
# 2. HUD Panels
## 2.1 Main HUD Panel
- Wooden plank background
- Rope or metal brackets on edges
- Slight shadow behind panel
## 2.2 Pause Panel
- Darkened background overlay
- Wooden frame
- Large readable buttons
## 2.3 Inventory Panel (optional)
- Grid layout
- Wooden frame
- Thick borders
---
# 3. Buttons
## 3.1 Style
- Rounded rectangular shape
- Thick outline
- Bright colors (green, blue, orange)
- Large readable text
## 3.2 Buttons List
- Play
- Pause
- Resume
- Exit
- Retry
---
# 4. Animation Notes
- Axe cooldown: circular wipe animation
- Coin pickup: bounce + sparkle
- Key pickup: rotation + glow
- Life loss: shake + fade
---
# 5. Versioning
HUD v1.0 includes:
- All core icons
- Panels
- Buttons
Future versions may add:
- Minimap
- Quest markers
- Animated UI frames
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2ecc2ed0498fb23498112d3ca56e49a4
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+175
View File
@@ -0,0 +1,175 @@
# Gnomes Bounty — Tileset Specification
**Tile size:** 128×128 px
**Style:** Cartoony, thick outlines, soft shading, simple shapes
**Background:** Transparent
**Tileset version:** 1.0
**Total tiles:** 21
---
# 1. Stone Tiles
## 1.1 Stone Block (Regular)
- 128×128
- Slightly rounded corners
- Thick dark-brown outline
- Color: bluish-gray with soft vertical gradient
- 23 large cracks
- Soft shadow at bottom
## 1.2 Stone Block (Breakable)
- Same base as regular block
- Larger cracks
- Lighter color
- Subtle blue rune glow
- Slight dust texture
## 1.3 Stone Block — Left Edge
- Left side chipped
- Strong shadow on right side
- Outline thicker on the broken edge
## 1.4 Stone Block — Right Edge
- Mirror of left edge
- Shadow on left side
## 1.5 Stone Block — Top Edge
- Flat top
- Slight highlight
- Shadow underneath
## 1.6 Stone Block — Bottom Edge
- Heavy shadow
- Rough lower edge
## 1.7 Stone Block — Corner
- Rounded corner
- Diagonal shadow
- Slight chipped effect
## 1.8 Thin Stone Platform
- Height: ~40 px
- Uneven bottom edge
- Strong shadow underneath
- Slight cracks
---
# 2. Wooden Elements
## 2.1 Vertical Beam
- Thick, slightly curved
- Warm brown color
- 12 large scratches
- Dark outline
## 2.2 Horizontal Beam
- Same texture as vertical
- Light highlight in center
## 2.3 Diagonal Beam
- 45° angle
- Same wood texture
## 2.4 Mine Entrance Frame
- Two vertical beams + top beam
- Metal bolts (simple circles)
- Slight shadow inside
## 2.5 Wooden Floor Planks
- 34 planks
- Gaps between planks
- Slight curvature
---
# 3. Ladders
## 3.1 Ladder (Single Tile)
- Two side beams
- 34 steps
- Thick outline
- Slight unevenness
## 3.2 Ladder (Double Height)
- Two stacked tiles
- Seamless connection
## 3.3 Broken Ladder
- One missing step
- Cracks on beams
- Jagged edges
---
# 4. Decorative Tiles
## 4.1 Crystal
- Blue or green
- 34 facets
- Soft glow
- Thick outline
## 4.2 Torch
- Wooden handle
- Yellow-orange flame
- Flame animation: 3 frames (wobble)
- Small glow halo
## 4.3 Mine Rails
- Two wooden beams
- Metal rails on top
- Slight perspective tilt
## 4.4 Stone Debris
- 35 rock pieces
- Random shapes
- Shadows under each piece
## 4.5 Roots
- Dark brown
- Curved organic shapes
- Thick outline
- Slight shadow
---
# 5. Tileset Layout Recommendation
**Grid:**
- 5 columns × 5 rows (25 slots, 21 used)
- Each tile 128×128
- Transparent background
**Suggested order:**
18: Stone tiles
913: Wooden elements
1416: Ladders
1721: Decorative tiles
---
# 6. Style Notes
- Outlines must match character style (same thickness).
- Colors should be saturated but not neon.
- Shadows soft, no realistic lighting.
- Shapes slightly exaggerated and rounded.
- Avoid small details — readability first.
---
# 7. Versioning
**Tileset v1.0 includes:**
- All core stone tiles
- All wooden structural tiles
- All ladder variations
- All basic decor
Future versions may add:
- Animated tiles
- Special rune blocks
- Hazard tiles
- Biome variations
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 173a2fbac8e74b9408b42a03e5bd1f4f
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+1 -1
View File
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
version: 9 version: 10
--- !u!21 &2100000 --- !u!21 &2100000
Material: Material:
serializedVersion: 8 serializedVersion: 8
+9
View File
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e7f679112961a0f7f11fdb3f983aed77
folderAsset: yes
timeCreated: 1448926447
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b42aa8acaabecbf943da2892de5e6aeb
folderAsset: yes
timeCreated: 1448926516
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5a698cd41cfed4d2dbc52c7b125fc67b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,36 @@
fileFormatVersion: 2
guid: a1a3cd348b3c4bbc82b68b73893f222a
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.dll
- gvh
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
validateReferences: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,35 @@
fileFormatVersion: 2
guid: 459f2b4255ec498caed1c0aeb1bf03a0
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.dll
- gvh
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,35 @@
fileFormatVersion: 2
guid: bf27b3f704244da0af729a6737adb7f1
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.dll
- gvh
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,35 @@
fileFormatVersion: 2
guid: e2831157d94e4d15998dcb6ad1418057
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.dll
- gvh
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 15066d50e81445ed9e318d0c2beede4e
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md
- gvh
timeCreated: 1584567712
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,35 @@
fileFormatVersion: 2
guid: 61c24b9980ea49ae90c8b62fb489de77
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll
- gvh
- gvhp_targets-editor
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,245 @@
Copyright (C) 2014 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
====================================================================================================
This package uses MiniJSON
Copyright (c) 2013 Calvin Rien
Based on the JSON parser by Patrick van Bergen
http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
Simplified it so that it doesn't throw exceptions
and can be used in Unity iPhone with maximum code stripping.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a0a74f7579114ab58b46e496d4b2ba97
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE
- gvh
timeCreated: 1584567712
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,903 @@
# External Dependency Manager for Unity
[![openupm](https://img.shields.io/npm/v/com.google.external-dependency-manager?label=openupm&registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.google.external-dependency-manager/)
[![openupm](https://img.shields.io/badge/dynamic/json?color=brightgreen&label=downloads&query=%24.downloads&suffix=%2Fmonth&url=https%3A%2F%2Fpackage.openupm.com%2Fdownloads%2Fpoint%2Flast-month%2Fcom.google.external-dependency-manager)](https://openupm.com/packages/com.google.external-dependency-manager/)
## Overview
The External Dependency Manager for Unity (EDM4U) (formerly Play Services
Resolver/Jar Resolver) is intended to be used by any Unity package or user that
requires:
* Android specific libraries (e.g
[AARs](https://developer.android.com/studio/projects/android-library.html))
* iOS [CocoaPods](https://cocoapods.org/)
* Version management of transitive dependencies
* Management of Package Manager (PM) Registries
If you want to add and use iOS/Android dependencies directly in your project,
then you should to install EDM4U in your project.
If you are a package user and the plugin you are using depends on EDM4U, *and*
the package does not include EDM4U as a package dependency already, then you
should to install EDM4U in your project.
If you are a UPM package maintainer and your package requires EDM4U, then you
should add EDM4U as a
[package dependency](https://docs.unity3d.com/2019.3/Documentation/Manual/upm-dependencies.html)
in your package manifest (`package.json`):
```json
{
"dependencies": {
"com.google.external-dependency-manager": "1.2.178"
}
}
```
You should still install EDM4U to test out the package during development.
If you are a legacy `.unitypackage` package maintainer and your package requires
EDM4U, please ask the user to install EDM4U separately. You should install EDM4U
to test out the package during development.
Updated releases are available on
[GitHub](https://github.com/googlesamples/unity-jar-resolver)
## Requirements
The *Android Resolver* and *iOS Resolver* components of the plugin only work
with Unity version 4.6.8 or higher.
The *Version Handler* component only works with Unity 5.x or higher as it
depends upon the `PluginImporter` UnityEditor API.
The *Package Manager Resolver* component only works with Unity 2018.4 or above,
when [scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html) support
was added to the Package Manager.
## Getting Started
Check out [troubleshooting](troubleshooting-faq.md) if you need help.
### Install via OpenUPM
EDM4U is available on
[OpenUPM](https://openupm.com/packages/com.google.external-dependency-manager/):
```shell
openupm add com.google.external-dependency-manager
```
### Install via git URL
1. Open Package Manager
2. Click on the + icon on the top left corner of the "Package Manager" screen
3. Click on "Install package from git url..."
4. Paste: https://github.com/googlesamples/unity-jar-resolver.git?path=upm
### Install via Google APIs for Unity
EDM4U is available both in UPM and legacy `.unitypackage` formats on
[Google APIs for Unity](https://developers.google.com/unity/archive#external_dependency_manager_for_unity).
You may install the UPM version (.tgz) as a
[local UPM package](https://docs.unity3d.com/Manual/upm-ui-local.html).
You can also install EDM4U in your project as a `.unitypackage`. This is not
recommended due to potential conflicts.
### Conflict Resolution
For historical reasons, a package maintainer may choose to embed EDM4U in their
package for ease of installation. This will create a conflict when you try to
install EDM4U with the steps above, or with another package with embedded EDM4U.
If your project imported a `.unitypackage` that has a copy of EDM4U embedded in
it, you may safely delete it from your Assets folder. If your project depends on
another UPM package with EDM4U, please reach out to the package maintainer and
ask them to replace it with a dependency to this package. In the meantime, you
can workaround the issue by copying the package to your Packages folder (to
create an
[embedded package](https://docs.unity3d.com/Manual/upm-concepts.html#Embedded))
and perform the steps yourself to avoid a dependency conflict.
### Config file
To start adding dependencies to your project, copy and rename the
[SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
file into your plugin and add the dependencies your project requires.
The XML file needs to be under an `Editor` directory and match the name
`*Dependencies.xml`. For example, `MyPlugin/Editor/MyPluginDependencies.xml`.
## Usages
### Android Resolver
The Android Resolver copies specified dependencies from local or remote Maven
repositories into the Unity project when a user selects Android as the build
target in the Unity editor.
For example, to add the Google Play Games library
(`com.google.android.gms:play-services-games` package) at version `9.8.0` to the
set of a plugin's Android dependencies:
```xml
<dependencies>
<androidPackages>
<androidPackage spec="com.google.android.gms:play-services-games:9.8.0">
<androidSdkPackageIds>
<androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
</androidSdkPackageIds>
</androidPackage>
</androidPackages>
</dependencies>
```
The version specification (last component) supports:
* Specific versions e.g `9.8.0`
* Partial matches e.g `9.8.+` would match 9.8.0, 9.8.1 etc. choosing the most
recent version
* Latest version using `LATEST` or `+`. We do *not* recommend using this
unless you're 100% sure the library you depend upon will not break your
Unity plugin in future
The above example specifies the dependency as a component of the Android SDK
manager such that the Android SDK manager will be executed to install the
package if it's not found. If your Android dependency is located on Maven
central it's possible to specify the package simply using the `androidPackage`
element:
```xml
<dependencies>
<androidPackages>
<androidPackage spec="com.google.api-client:google-api-client-android:1.22.0" />
</androidPackages>
</dependencies>
```
#### Auto-resolution
By default the Android Resolver automatically monitors the dependencies you have
specified and the `Plugins/Android` folder of your Unity project. The resolution
process runs when the specified dependencies are not present in your project.
The *auto-resolution* process can be disabled via the `Assets > External
Dependency Manager > Android Resolver > Settings` menu.
Manual resolution can be performed using the following menu options:
* `Assets > External Dependency Manager > Android Resolver > Resolve`
* `Assets > External Dependency Manager > Android Resolver > Force Resolve`
#### Deleting libraries
Resolved packages are tracked via asset labels by the Android Resolver. They can
easily be deleted using the `Assets > External Dependency Manager > Android
Resolver > Delete Resolved Libraries` menu item.
#### Android Manifest Variable Processing
Some AAR files (for example play-services-measurement) contain variables that
are processed by the Android Gradle plugin. Unfortunately, Unity does not
perform the same processing when using Unity's Internal Build System, so the
Android Resolver plugin handles known cases of this variable substitution by
exploding the AAR into a folder and replacing `${applicationId}` with the
`bundleID`.
Disabling AAR explosion and therefore Android manifest processing can be done
via the `Assets > External Dependency Manager > Android Resolver > Settings`
menu. You may want to disable explosion of AARs if you're exporting a project to
be built with Gradle/Android Studio.
#### ABI Stripping
Some AAR files contain native libraries (.so files) for each ABI supported by
Android. Unfortunately, when targeting a single ABI (e.g x86), Unity does not
strip native libraries for unused ABIs. To strip unused ABIs, the Android
Resolver plugin explodes an AAR into a folder and removes unused ABIs to reduce
the built APK size. Furthermore, if native libraries are not stripped from an
APK (e.g you have a mix of Unity's x86 library and some armeabi-v7a libraries)
Android may attempt to load the wrong library for the current runtime ABI
completely breaking your plugin when targeting some architectures.
AAR explosion and therefore ABI stripping can be disabled via the `Assets >
External Dependency Manager > Android Resolver > Settings` menu. You may want to
disable explosion of AARs if you're exporting a project to be built with
Gradle/Android Studio.
#### Resolution Strategies
By default the Android Resolver will use Gradle to download dependencies prior
to integrating them into a Unity project. This works with Unity's internal build
system and Gradle/Android Studio project export.
It's possible to change the resolution strategy via the `Assets > External
Dependency Manager > Android Resolver > Settings` menu.
##### Download Artifacts with Gradle
Using the default resolution strategy, the Android resolver executes the
following operations:
- Remove the result of previous Android resolutions. E.g Delete all files and
directories labeled with "gpsr" under `Plugins/Android` from the project.
- Collect the set of Android dependencies (libraries) specified by a project's
`*Dependencies.xml` files.
- Run `download_artifacts.gradle` with Gradle to resolve conflicts and, if
successful, download the set of resolved Android libraries (AARs, JARs).
- Process each AAR/JAR so that it can be used with the currently selected
Unity build system (e.g Internal vs. Gradle, Export vs. No Export). This
involves patching each reference to `applicationId` in the
`AndroidManifest.xml` with the project's bundle ID. This means resolution
must be run again if the bundle ID has changed.
- Move the processed AARs to `Plugins/Android` so they will be included when
Unity invokes the Android build.
##### Integrate into mainTemplate.gradle
Unity 5.6 introduced support for customizing the `build.gradle` used to build
Unity projects with Gradle. When the *Patch mainTemplate.gradle* setting is
enabled, rather than downloading artifacts before the build, Android resolution
results in the execution of the following operations:
- Remove the result of previous Android resolutions. E.g Delete all files and
directories labeled with "gpsr" under `Plugins/Android` from the project and
remove sections delimited with `// Android Resolver * Start` and `// Android
Resolver * End` lines.
- Collect the set of Android dependencies (libraries) specified by a project's
`*Dependencies.xml` files.
- Rename any `.srcaar` files in the build to `.aar` and exclude them from
being included directly by Unity in the Android build as
`mainTemplate.gradle` will be patched to include them instead from their
local maven repositories.
- Inject the required Gradle repositories into `mainTemplate.gradle` at the
line matching the pattern `.*apply plugin:
'com\.android\.(application|library)'.*` or the section starting at the line
`// Android Resolver Repos Start`. If you want to control the injection
point in the file, the section delimited by the lines `// Android Resolver
Repos Start` and `// Android Resolver Repos End` should be placed in the
global scope before the `dependencies` section.
- Inject the required Android dependencies (libraries) into
`mainTemplate.gradle` at the line matching the pattern `***DEPS***` or the
section starting at the line `// Android Resolver Dependencies Start`. If
you want to control the injection point in the file, the section delimited
by the lines `// Android Resolver Dependencies Start` and `// Android
Resolver Dependencies End` should be placed in the `dependencies` section.
- Inject the packaging options logic, which excludes architecture specific
libraries based upon the selected build target, into `mainTemplate.gradle`
at the line matching the pattern `android +{` or the section starting at the
line `// Android Resolver Exclusions Start`. If you want to control the
injection point in the file, the section delimited by the lines `// Android
Resolver Exclusions Start` and `// Android Resolver Exclusions End` should
be placed in the global scope before the `android` section.
#### Dependency Tracking
The Android Resolver creates the
`ProjectSettings/AndroidResolverDependencies.xml` to quickly determine the set
of resolved dependencies in a project. This is used by the auto-resolution
process to only run the expensive resolution process when necessary.
#### Displaying Dependencies
It's possible to display the set of dependencies the Android Resolver would
download and process in your project via the `Assets > External Dependency
Manager > Android Resolver > Display Libraries` menu item.
### iOS Resolver
The iOS resolver component of this plugin manages
[CocoaPods](https://cocoapods.org/). A CocoaPods `Podfile` is generated and the
`pod` tool is executed as a post build process step to add dependencies to the
Xcode project exported by Unity.
Dependencies for iOS are added by referring to CocoaPods.
For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled:
```xml
<dependencies>
<iosPods>
<iosPod name="Google-Mobile-Ads-SDK" version="~> 7.0" bitcodeEnabled="true"
minTargetSdk="6.0" addToAllTargets="false" />
</iosPods>
</dependencies>
```
#### Integration Strategies
The `CocoaPods` are either:
* Downloaded and injected into the Xcode project file directly, rather than
creating a separate xcworkspace. We call this `Xcode project` integration.
* If the Unity version supports opening a xcworkspace file, the `pod` tool is
used as intended to generate a xcworkspace which references the CocoaPods.
We call this `Xcode workspace` integration.
The resolution strategy can be changed via the `Assets > External Dependency
Manager > iOS Resolver > Settings` menu.
##### Appending text to generated Podfile
In order to modify the generated Podfile you can create a script like this:
```csharp
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;
public class PostProcessIOS : MonoBehaviour
{
// Must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and
// that it's added before "pod install" (50).
[PostProcessBuildAttribute(45)]
private static void PostProcessBuild_iOS(BuildTarget target, string buildPath)
{
if (target == BuildTarget.iOS)
{
using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
{
// E.g. add an app extension
sw.WriteLine("\ntarget 'NSExtension' do\n pod 'Firebase/Messaging', '6.6.0'\nend");
}
}
}
}
```
### Package Manager Resolver
Adding registries to the
[Package Manager](https://docs.unity3d.com/Manual/Packages.html) (PM) is a
manual process. The Package Manager Resolver (PMR) component of this plugin
makes it easy for plugin maintainers to distribute new PM registry servers and
easy for plugin users to manage PM registry servers.
#### Adding Registries
For example, to add a registry for plugins in the scope `com.coolstuff`:
```xml
<registries>
<registry name="Cool Stuff"
url="https://unityregistry.coolstuff.com"
termsOfService="https://coolstuff.com/unityregistry/terms"
privacyPolicy="https://coolstuff.com/unityregistry/privacy">
<scopes>
<scope>com.coolstuff</scope>
</scopes>
</registry>
</registries>
```
When PMR is loaded it will prompt the developer to add the registry to their
project if it isn't already present in the `Packages/manifest.json` file.
For more information, see Unity's documentation on
[scoped package registries](https://docs.unity3d.com/Manual/upm-scoped.html).
#### Managing Registries
It's possible to add and remove registries that are specified via PMR XML
configuration files via the following menu options:
* `Assets > External Dependency Manager > Package Manager Resolver > Add
Registries` will prompt the user with a window which allows them to add
registries discovered in the project to the Package Manager.
* `Assets > External Dependency Manager > Package Manager Resolver > Remove
Registries` will prompt the user with a window which allows them to remove
registries discovered in the project from the Package Manager.
* `Assets > External Dependency Manager > Package Manager Resolver > Modify
Registries` will prompt the user with a window which allows them to add or
remove registries discovered in the project.
#### Migration
PMR can migrate Version Handler packages installed in the `Assets` folder to PM
packages. This requires the plugins to implement the following:
* `.unitypackage` must include a Version Handler manifests that describes the
components of the plugin. If the plugin has no dependencies the manifest
would just include the files in the plugin.
* The PM package JSON provided by the registry must include a keyword (in the
`versions.VERSION.keyword` list) that maps the PM package to a Version
Handler package using the format `vh-name:VERSION_HANDLER_MANIFEST_NAME`
where `VERSION_HANDLER_MANIFEST_NAME` is the name of the manifest defined in
the `.unitypackage`. For more information see the description of the
`gvhp_manifestname` asset label in the [Version Handler](#version-handler)
section.
When using the `Assets > External Dependency Manager > Package Manager
Resolver > Migrate Packages` menu option, PMR then will:
* List all Version Handler manager packages in the project.
* Search all available packages in the PM registries and fetch keywords
associated with each package parsing the Version Handler manifest names for
each package.
* Map each installed Version Handler package to a PM package.
* Prompt the user to migrate the discovered packages.
* Perform package migration for all selected packages if the user clicks the
`Apply` button.
#### Configuration
PMR can be configured via the `Assets > External Dependency Manager > Package
Manager Resolver > Settings` menu option:
* `Add package registries` when enabled, when the plugin loads or registry
configuration files change, this will prompt the user to add registries that
are not present in the Package Manager.
* `Prompt to add package registries` will cause a developer to be prompted
with a window that will ask for confirmation before adding registries. When
this is disabled registries are added silently to the project.
* `Prompt to migrate packages` will cause a developer to be prompted with a
window that will ask for confirmation before migrating packages installed in
the `Assets` directory to PM packages.
* `Enable Analytics Reporting` when enabled, reports the use of the plugin to
the developers so they can make imrpovements.
* `Verbose logging` when enabled prints debug information to the console which
can be useful when filing bug reports.
### Version Handler
The Version Handler component of this plugin manages:
* Shared Unity plugin dependencies.
* Upgrading Unity plugins by cleaning up old files from previous versions.
* Uninstallation of plugins that are distributed with manifest files.
* Restoration of plugin assets to their original install locations if assets
are tagged with the `exportpath` label.
Since the Version Handler needs to modify Unity asset metadata (`.meta` files),
to enable/disable components, rename and delete asset files it does not work
with Package Manager installed packages. It's still possible to include EDM4U in
Package Manager packages, the Version Handler component simply won't do anything
to PM plugins in this case.
#### Using Version Handler Managed Plugins
If a plugin is imported at multiple different versions into a project, if the
Version Handler is enabled, it will automatically check all managed assets to
determine the set of assets that are out of date and assets that should be
removed. To disable automatic checking managed assets disable the `Enable
version management` option in the `Assets > External Dependency Manager >
Version Handler > Settings` menu.
If version management is disabled, it's possible to check managed assets
manually using the `Assets > External Dependency Manager > Version Handler >
Update` menu option.
##### Listing Managed Plugins
Plugins managed by the Version Handler, those that ship with manifest files, can
displayed using the `Assets > External Dependency Manager > Version Handler >
Display Managed Packages` menu option. The list of plugins are written to the
console window along with the set of files used by each plugin.
##### Uninstalling Managed Plugins
Plugins managed by the Version Handler, those that ship with manifest files, can
be removed using the `Assets > External Dependency Manager > Version Handler >
Uninstall Managed Packages` menu option. This operation will display a window
that allows a developer to select a set of plugins to remove which will remove
all files owned by each plugin excluding those that are in use by other
installed plugins.
Files managed by the Version Handler, those labeled with the `gvh` asset label,
can be checked to see whether anything needs to be upgraded, disabled or removed
using the `Assets > External Dependency Manager > Version Handler > Update` menu
option.
##### Restore Install Paths
Some developers move assets around in their project which can make it harder for
plugin maintainers to debug issues if this breaks Unity's
[special folders](https://docs.unity3d.com/Manual/SpecialFolders.html) rules. If
assets are labeled with their original install/export path (see
`gvhp_exportpath` below), Version Handler can restore assets to their original
locations when using the `Assets > External Dependency Manager > Version
Handler > Move Files To Install Locations` menu option.
##### Settings
Some behavior of the Version Handler can be configured via the `Assets >
External Dependency Manager > Version Handler > Settings` menu option.
* `Enable version management` controls whether the plugin should automatically
check asset versions and apply changes. If this is disabled the process
should be run manually when installing or upgrading managed plugins using
`Assets > External Dependency Manager > Version Handler > Update`.
* `Rename to canonical filenames` is a legacy option that will rename files to
remove version numbers and other labels from filenames.
* `Prompt for obsolete file deletion` enables the display of a window when
obsolete files are deleted allowing the developer to select which files to
delete and those to keep.
* `Allow disabling files via renaming` controls whether obsolete or disabled
files should be disabled by renaming them to `myfilename_DISABLED`. Renaming
to disable files is required in some scenarios where Unity doesn't support
removing files from the build via the PluginImporter.
* `Enable Analytics Reporting` enables/disables usage reporting to plugin
developers to improve the product.
* `Verbose logging` enables *very* noisy log output that is useful for
debugging while filing a bug report or building a new managed plugin.
* `Use project settings` saves settings for the plugin in the project rather
than system-wide.
#### Redistributing a Managed Plugin
The Version Handler employs a couple of methods for managing version selection,
upgrade and removal of plugins.
* Each plugin can ship with a manifest file that lists the files it includes.
This makes it possible for Version Handler to calculate the difference in
assets between the most recent release of a plugin and the previous release
installed in a project. If a files are removed the Version Handler will
prompt the user to clean up obsolete files.
* Plugins can ship using assets with unique names, unique GUIDs and version
number labels. Version numbers can be attached to assets using labels or
added to the filename (e.g `myfile.txt` would be `myfile_version-x.y.z.txt).
This allows the Version Handler to determine which set of files are the same
file at different versions, select the most recent version and prompt the
developer to clean up old versions.
Unity plugins can be managed by the Version Handler using the following steps:
1. Add the `gvh` asset label to each asset (file) you want Version Handler to
manage.
1. Add the `gvh_version-VERSION` label to each asset where `VERSION` is the
version of the plugin you're releasing (e.g 1.2.3).
1. Add the `gvhp_exportpath-PATH` label to each asset where `PATH` is the
export path of the file when the `.unitypackage` is created. This is used to
track files if they're moved around in a project by developers.
1. Optional: Add `gvh_targets-editor` label to each editor DLL in your plugin
and disable `editor` as a target platform for the DLL. The Version Handler
will enable the most recent version of this DLL when the plugin is imported.
1. Optional: If your plugin is included in other Unity plugins, you should add
the version number to each filename and change the GUID of each asset. This
allows multiple versions of your plugin to be imported into a Unity project,
with the Version Handler component activating only the most recent version.
1. Create a manifest text file named `MY_UNIQUE_PLUGIN_NAME_VERSION.txt` that
lists all the files in your plugin relative to the project root. Then add
the `gvh_manifest` label to the asset to indicate this file is a plugin
manifest.
1. Optional: Add a `gvhp_manifestname-NAME` label to your manifest file to
provide a human readable name for your package. If this isn't provided the
name of the manifest file will be used as the package name. NAME can match
the pattern `[0-9]+[a-zA-Z -]` where a leading integer will set the priority
of the name where `0` is the highest priority and preferably used as the
display name. The lowest value (i.e highest priority name) will be used as
the display name and all other specified names will be aliases of the
display name. Aliases can refer to previous names of the package allowing
renaming across published versions.
1. Redistribute EDM4U Unity plugin with your plugin. See the
[Plugin Redistribution](#plugin-redistribution) section for details.
If you follow these steps:
* When users import a newer version of your plugin, files referenced by the
older version's manifest are cleaned up.
* The latest version of the plugin will be selected when users import multiple
packages that include your plugin, assuming the steps in
[Plugin Redistribution](#plugin-redistribution) are followed.
## Background
Many Unity plugins have dependencies upon Android specific libraries, iOS
CocoaPods, and sometimes have transitive dependencies upon other Unity plugins.
This causes the following problems:
* Integrating platform specific (e.g Android and iOS) libraries within a Unity
project can be complex and a burden on a Unity plugin maintainer.
* The process of resolving conflicting dependencies on platform specific
libraries is pushed to the developer attempting to use a Unity plugin. The
developer trying to use your plugin is very likely to give up when faced
with Android or iOS specific build errors.
* The process of resolving conflicting Unity plugins (due to shared Unity
plugin components) is pushed to the developer attempting to use your Unity
plugin. In an effort to resolve conflicts, the developer will very likely
attempt to resolve problems by deleting random files in your plugin, report
bugs when that doesn't work and finally give up.
EDM4U provides solutions for each of these problems.
### Android Dependency Management
The *Android Resolver* component of this plugin will download and integrate
Android library dependencies and handle any conflicts between plugins that share
the same dependencies.
Without the Android Resolver, typically Unity plugins bundle their AAR and JAR
dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google Play
Games Android library would redistribute the library and its transitive
dependencies in the folder `SomePlugin/Android/`. When a user imports
`SomeOtherPlugin` that includes the same libraries (potentially at different
versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and
`SomeOtherPlugin` will see an error when building for Android that can be hard
to interpret.
Using the Android Resolver to manage Android library dependencies:
* Solves Android library conflicts between plugins.
* Handles all of the various processing steps required to use Android
libraries (AARs, JARs) in Unity 4.x and above projects. Almost all versions
of Unity have - at best - partial support for AARs.
* (Experimental) Supports minification of included Java components without
exporting a project.
### iOS Dependency Management
The *iOS Resolver* component of this plugin integrates with
[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries and
frameworks into the Xcode project Unity generates when building for iOS. Using
CocoaPods allows multiple plugins to utilize shared components without forcing
developers to fix either duplicate or incompatible versions of libraries
included through multiple Unity plugins in their project.
### Package Manager Registry Setup
The [Package Manager](https://docs.unity3d.com/Manual/Packages.html) (PM) makes
use of [NPM](https://www.npmjs.com/) registry servers for package hosting and
provides ways to discover, install, upgrade and uninstall packages. This makes
it easier for developers to manage plugins within their projects.
However, installing additional package registries requires a few manual steps
that can potentially be error prone. The *Package Manager Resolver* component of
this plugin integrates with [PM](https://docs.unity3d.com/Manual/Packages.html)
to provide a way to auto-install PM package registries when a `.unitypackage` is
installed which allows plugin maintainers to ship a `.unitypackage` that can
provide access to their own PM registry server to make it easier for developers
to manage their plugins.
### Unity Plugin Version Management
Finally, the *Version Handler* component of this plugin simplifies the process
of managing transitive dependencies of Unity plugins and each plugin's upgrade
process.
For example, without the Version Handler plugin, if:
* Unity plugin `SomePlugin` includes `EDM4U` plugin at version 1.1.
* Unity plugin `SomeOtherPlugin` includes `EDM4U` plugin at version 1.2.
The version of `EDM4U` included in the developer's project depends upon the
order the developer imports `SomePlugin` or `SomeOtherPlugin`.
This results in:
* `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin`
is imported.
* `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then `SomePlugin`
is imported.
The Version Handler solves the problem of managing transitive dependencies by:
* Specifying a set of packaging requirements that enable a plugin at different
versions to be imported into a Unity project.
* Providing activation logic that selects the latest version of a plugin
within a project.
When using the Version Handler to manage `EDM4U` included in `SomePlugin` and
`SomeOtherPlugin`, from the prior example, version 1.2 will always be the
version activated in a developer's Unity project.
Plugin creators are encouraged to adopt this library to ease integration for
their customers. For more information about integrating EDM4U into your own
plugin, see the [Plugin Redistribution](#plugin-redistribution) section of this
document.
## Analytics
The External Dependency Manager for Unity plugin by default logs usage to Google
Analytics. The purpose of the logging is to quantitatively measure the usage of
functionality, to gather reports on integration failures and to inform future
improvements to the developer experience of the External Dependency Manager
plugin. Note that the analytics collected are limited to the scope of the EDM4U
plugins usage.
For details of what is logged, please refer to the usage of
`EditorMeasurement.Report()` in the source code.
## Plugin Redistribution
If you are a package maintainer and your package depends on EDM4U, it is highly
recommended to use the UPM format and add EDM4U as a dependency. If you must
include it in your `.unitypackage`, redistributing `EDM4U` inside your own
plugin might ease the integration process for your users.
If you wish to redistribute `EDM4U` inside your plugin, you **must** follow
these steps when importing the `external-dependency-manager-*.unitypackage`, and
when exporting your own plugin package:
1. Import the `external-dependency-manager-*.unitypackage` into your plugin
project by
[running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html),
ensuring that you add the `-gvh_disable` option.
1. Export your plugin by
[running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html),
ensuring that you:
- Include the contents of the `Assets/PlayServicesResolver` and
`Assets/ExternalDependencyManager` directory.
- Add the `-gvh_disable` option.
You **must** specify the `-gvh_disable` option in order for the Version Handler
to work correctly!
For example, the following command will import the
`external-dependency-manager-1.2.46.0.unitypackage` into the project
`MyPluginProject` and export the entire Assets folder to
`MyPlugin.unitypackage`:
```shell
Unity -gvh_disable \
-batchmode \
-importPackage external-dependency-manager-1.2.46.0.unitypackage \
-projectPath MyPluginProject \
-exportPackage Assets MyPlugin.unitypackage \
-quit
```
### Background
The *Version Handler* component relies upon deferring the load of editor DLLs so
that it can run first and determine the latest version of a plugin component to
activate. The build of `EDM4U` plugin has Unity asset metadata that is
configured so that the editor components are not initially enabled when it's
imported into a Unity project. To maintain this configuration when importing the
`mobile-dependency-resolver.unitypackage` into a Unity plugin project, you
*must* specify the command line option `-gvh_disable` which will prevent the
Version Handler component from running and changing the Unity asset metadata.
## Building from Source
To build this plugin from source you need the following tools installed: * Unity
2021 and below (with iOS and Android modules installed) * Java 11
You can build the plugin by running the following from your shell (Linux / OSX):
```shell
./gradlew build
```
or Windows:
```shell
./gradlew.bat build
```
If Java 11 is not your default Java command, add
`-Dorg.gradle.java.home=<PATH_TO_JAVA_HOME>` to the command above.
## Testing
You can run the tests by running the following from your shell (Linux / OSX):
```shell
./gradlew test
```
or Windows:
```shell
./gradlew.bat test
```
The following properties can be set to narrow down the tests to run or change
the test run behavior.
* `INTERACTIVE_MODE_TESTS_ENABLED` - Default to `1`. Set to `1` to enable
interactive mode tests, which requires GPU on the machine. Otherwise, only
run tests in the batch mode.
* `INCLUDE_TEST_TYPES` - Default to empty string, which means to include every
type of the test. To narrow down the types of test to run, set this
properties with a list of case-insensitive type strings separated by comma.
For instance, `-PINCLUDE_TEST_TYPES="Python,NUnit"` means to include only
Python tests and NUnit tests. See `TestTypeEnum` in `build.gradle` for
available options.
* `EXCLUDE_TEST_TYPES` - Default to empty string, which means to exclude none.
To add types of tests to exclude, set this properties with a list of
case-insensitive type strings separated by comma. For instance,
`-PEXCLUDE_TEST_TYPES="Python,NUnit"` means to exclude Python tests and
NUnit tests. See `TestTypeEnum` in `build.gradle` for available options.
* `INCLUDE_TEST_MODULES` - Default to empty string, which means to include the
tests for every modules. To narrow down modules to test, set this properties
with a list of case-insensitive module strings separated by comma. For
instance, `-PINCLUDE_TEST_MODULES="Tool,AndroidResolver"` means to run tests
for tools and Android Resolver only. See `TestModuleEnum` in `build.gradle`
for available options.
* `EXCLUDE_TEST_MODULES` - Default to empty string, which means to exclude
none. To add modules to exclude, set this properties with a list of
case-insensitive module strings separated by comma. For instance,
`-PEXCLUDE_TEST_MODULES="Tool,AndroidResolver"` means to run tests for any
modules other than tools and Android Resolver. See `TestModuleEnum` in
`build.gradle` for available options.
* `EXCLUDE_TESTS` - Default to empty string, which means to exclude none. To
add tests to exclude, set this properties with a list of case-insensitive
test names separated by comma. For instance,
`-PEXCLUDE_TESTS="testGenGuids,testDownloadArtifacts"` means to run tests
except the tests with name of `testGenGuids` and `testDownloadArtifacts`.
* `CONTINUE_ON_FAIL_FOR_TESTS_ENABLED` - Default to `1`. Set to `1` to
continue running the next test when the current one fails. Otherwise, the
build script stops whenever any test fails.
For instance, by running the following command, it only runs the Unity
integration tests that does not requires GPU, but exclude tests for Android
Resolver module and iOS Resolver module.
```shell
./gradlew test \
-PINTERACTIVE_MODE_TESTS_ENABLED=0 \
-PINCLUDE_TEST_TYPES="Integration" \
-PEXCLUDE_TEST_MODULES="AndroidResolver,iOSResolver"
```
## Releasing
Each time a new build of this plugin is checked into the source tree you need to
do the following:
* Bump the plugin version variable `pluginVersion` in `build.gradle`
* Update `CHANGELOG.md` with the new version number and changes included in
the release.
* Build the release using `./gradlew release` which performs the following:
* Updates `external-dependency-manager-*.unitypackage`
* Copies the unpacked plugin to the `exploded` directory.
* Updates template metadata files in the `plugin` directory. The GUIDs of
all asset metadata is modified due to the version number change. Each
file within the plugin is versioned to allow multiple versions of the
plugin to be imported into a Unity project which allows the most recent
version to be activated by the Version Handler component.
* Create release commit using `./gradlew gitCreateReleaseCommit` which
performs `git commit -a -m "description from CHANGELOG.md"`
* Once the release commit is merge, tag the release using `./gradlew
gitTagRelease` which performs the following:
* `git tag -a pluginVersion -m "version RELEASE"` to tag the release.
* Update tags on remote branch using `git push --tag REMOTE HEAD:master`
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: eda60a5e280441219d51748b60eaf0b7
labels:
- gvh_version-1.2.185
- gvhp_exportpath-ExternalDependencyManager/Editor/README.md
- gvh
timeCreated: 1584567712
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,13 @@
Assets/MobileDependencyResolver/Editor/1.2.185/Google.IOSResolver.dll
Assets/MobileDependencyResolver/Editor/1.2.185/Google.IOSResolver.pdb
Assets/MobileDependencyResolver/Editor/1.2.185/Google.JarResolver.dll
Assets/MobileDependencyResolver/Editor/1.2.185/Google.JarResolver.pdb
Assets/MobileDependencyResolver/Editor/1.2.185/Google.PackageManagerResolver.dll
Assets/MobileDependencyResolver/Editor/1.2.185/Google.PackageManagerResolver.pdb
Assets/MobileDependencyResolver/Editor/1.2.185/Google.VersionHandlerImpl.dll
Assets/MobileDependencyResolver/Editor/1.2.185/Google.VersionHandlerImpl.pdb
Assets/MobileDependencyResolver/Editor/CHANGELOG.md
Assets/MobileDependencyResolver/Editor/Google.VersionHandler.dll
Assets/MobileDependencyResolver/Editor/Google.VersionHandler.pdb
Assets/MobileDependencyResolver/Editor/LICENSE
Assets/MobileDependencyResolver/Editor/README.md
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 5e590a4aab514d859dd0ac8982d9e78c
labels:
- gvh_version-1.2.185
- gvhp_exportpath-MobileDependencyResolver/Editor/mobile-dependency-resolver_version-1.2.185_manifest.txt
- gvh
- gvh_manifest
- gvhp_manifestname-0External Dependency Manager
- gvhp_manifestname-play-services-resolver
timeCreated: 1474401009
licenseType: Pro
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
+24 -15
View File
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 9 serializedVersion: 10
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@@ -38,13 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0 m_UseRadianceAmbientProbe: 0
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 12 serializedVersion: 13
m_GIWorkflowMode: 1 m_BakeOnSceneLoad: 0
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@@ -67,9 +66,6 @@ LightmapSettings:
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1 m_LightmapsBakeMode: 1
m_TextureCompression: 1 m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_MixedBakeMode: 2 m_MixedBakeMode: 2
m_BakeBackend: 1 m_BakeBackend: 1
@@ -293,20 +289,23 @@ MonoBehaviour:
m_VerticalAlignment: 512 m_VerticalAlignment: 512
m_textAlignment: 65535 m_textAlignment: 65535
m_characterSpacing: 0 m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0 m_wordSpacing: 0
m_lineSpacing: 0 m_lineSpacing: 0
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_enableWordWrapping: 1 m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0} parentLinkedComponent: {fileID: 0}
m_enableKerning: 1 m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0 m_enableExtraPadding: 0
checkPaddingRequired: 0 checkPaddingRequired: 0
m_isRichText: 1 m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1 m_parseCtrlCharacters: 1
m_isOrthographic: 1 m_isOrthographic: 1
m_isCullingEnabled: 0 m_isCullingEnabled: 0
@@ -434,6 +433,7 @@ Canvas:
m_OverridePixelPerfect: 0 m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0 m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0 m_VertexColorAlwaysGammaSpace: 0
m_UseReflectionProbes: 0
m_AdditionalShaderChannelsFlag: 25 m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0 m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0 m_SortingLayerID: 0
@@ -915,8 +915,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 120.97, y: 335} m_AnchoredPosition: {x: 139.55057, y: 335}
m_SizeDelta: {x: 360.9883, y: 82.0468} m_SizeDelta: {x: 398.1496, y: 82.0468}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1237552950 --- !u!114 &1237552950
MonoBehaviour: MonoBehaviour:
@@ -938,7 +938,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: Goblin's Bounty m_text: Gnome's Bounty
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
@@ -976,20 +976,23 @@ MonoBehaviour:
m_VerticalAlignment: 256 m_VerticalAlignment: 256
m_textAlignment: 65535 m_textAlignment: 65535
m_characterSpacing: 0 m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0 m_wordSpacing: 0
m_lineSpacing: 0 m_lineSpacing: 0
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_enableWordWrapping: 1 m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0} parentLinkedComponent: {fileID: 0}
m_enableKerning: 1 m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0 m_enableExtraPadding: 0
checkPaddingRequired: 0 checkPaddingRequired: 0
m_isRichText: 1 m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1 m_parseCtrlCharacters: 1
m_isOrthographic: 1 m_isOrthographic: 1
m_isCullingEnabled: 0 m_isCullingEnabled: 0
@@ -1001,7 +1004,7 @@ MonoBehaviour:
m_VertexBufferAutoSizeReduction: 0 m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1 m_useMaxVisibleDescender: 1
m_pageToDisplay: 1 m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0} m_margin: {x: 0, y: 0, z: -0.00012207031, w: 0}
m_isUsingLegacyAnimationComponent: 0 m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0 m_isVolumetricText: 0
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
@@ -1112,20 +1115,23 @@ MonoBehaviour:
m_VerticalAlignment: 512 m_VerticalAlignment: 512
m_textAlignment: 65535 m_textAlignment: 65535
m_characterSpacing: 0 m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0 m_wordSpacing: 0
m_lineSpacing: 0 m_lineSpacing: 0
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_enableWordWrapping: 1 m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0} parentLinkedComponent: {fileID: 0}
m_enableKerning: 1 m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0 m_enableExtraPadding: 0
checkPaddingRequired: 0 checkPaddingRequired: 0
m_isRichText: 1 m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1 m_parseCtrlCharacters: 1
m_isOrthographic: 1 m_isOrthographic: 1
m_isCullingEnabled: 0 m_isCullingEnabled: 0
@@ -1246,20 +1252,23 @@ MonoBehaviour:
m_VerticalAlignment: 512 m_VerticalAlignment: 512
m_textAlignment: 65535 m_textAlignment: 65535
m_characterSpacing: 0 m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0 m_wordSpacing: 0
m_lineSpacing: 0 m_lineSpacing: 0
m_lineSpacingMax: 0 m_lineSpacingMax: 0
m_paragraphSpacing: 0 m_paragraphSpacing: 0
m_charWidthMaxAdj: 0 m_charWidthMaxAdj: 0
m_enableWordWrapping: 1 m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4 m_wordWrappingRatios: 0.4
m_overflowMode: 0 m_overflowMode: 0
m_linkedTextComponent: {fileID: 0} m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0} parentLinkedComponent: {fileID: 0}
m_enableKerning: 1 m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0 m_enableExtraPadding: 0
checkPaddingRequired: 0 checkPaddingRequired: 0
m_isRichText: 1 m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1 m_parseCtrlCharacters: 1
m_isOrthographic: 1 m_isOrthographic: 1
m_isCullingEnabled: 0 m_isCullingEnabled: 0
+5 -5
View File
@@ -87,15 +87,15 @@ public abstract class Character : MonoBehaviour
if (isAllowVertical) if (isAllowVertical)
{ {
SetClimbingAnimation(v_movement != 0); SetClimbingAnimation(v_movement != 0);
_body.velocity = new Vector2(h_movement * _movementSpeed, v_movement * _movementSpeed); _body.linearVelocity = new Vector2(h_movement * _movementSpeed, v_movement * _movementSpeed);
} }
else{ else{
_body.velocity = new Vector2(h_movement * _movementSpeed, _body.velocity.y); _body.linearVelocity = new Vector2(h_movement * _movementSpeed, _body.linearVelocity.y);
} }
} }
else else
{ {
_body.velocity = new Vector2(h_movement * _movementSpeed, _body.velocity.y); _body.linearVelocity = new Vector2(h_movement * _movementSpeed, _body.linearVelocity.y);
} }
} }
else else
@@ -115,12 +115,12 @@ public abstract class Character : MonoBehaviour
} }
if (_isFalling) if (_isFalling)
{ {
_body.velocity = new Vector2(0, _body.velocity.y); _body.linearVelocity = new Vector2(0, _body.linearVelocity.y);
SetWalkingAnimation(false); SetWalkingAnimation(false);
if (block?.ElementSO.ElementType == MapElementType.Ladder) if (block?.ElementSO.ElementType == MapElementType.Ladder)
{ {
_body.velocity = Vector2.zero; _body.linearVelocity = Vector2.zero;
_isOnLadder = true; _isOnLadder = true;
} }
} }
@@ -1,7 +1,7 @@
using System; using System;
using UnityEngine; using UnityEngine;
public class Player : Character public class PlayerController : Character
{ {
[SerializeField] [SerializeField]
private Transform _hammerSpawnPoint; private Transform _hammerSpawnPoint;
@@ -13,15 +13,6 @@ public class Player : Character
[SerializeField] [SerializeField]
private Sprite _noHammerSprite; private Sprite _noHammerSprite;
public int Lives=3;
private int _hammerSpeed = 5;
private int _totalCoins = 0;
private bool _hasKey = false;
public int TotalCoins => _totalCoins;
public static Player Instance { get; private set; } public static Player Instance { get; private set; }
private GameObject _hammer; private GameObject _hammer;
@@ -30,7 +21,8 @@ public class Player : Character
public event EventHandler<TreasureType> OnPlayerTakeItem; public event EventHandler<TreasureType> OnPlayerTakeItem;
private InputActions _inputActions; private InputManager _inputManager;
private PlayerState _playerState;
private void Awake() private void Awake()
{ {
@@ -40,44 +32,23 @@ public class Player : Character
Debug.Log("There's more than one player instance"); Debug.Log("There's more than one player instance");
return; return;
} }
PlayerPrefs.SetString("lastExitName", string.Empty);
Instance = this; Instance = this;
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
_inputActions = new InputActions(); _inputManager = new InputManager();
_playerState = GetComponent<PlayerState>();
_inputManager.OnMovementInput += OnMovementInput;
_inputManager.OnFireButtonPressed += OnFireButtonPressed;
} }
private void OnEnable() private void OnEnable()
{ {
_inputActions.Enable(); _inputManager.Enable();
} }
private void OnDisable() private void OnDisable()
{ {
_inputActions.Disable(); _inputManager.Disable();
}
public void AddCoin()
{
_totalCoins++;
OnPlayerTakeItem?.Invoke(this,TreasureType.Coin);
print($"player have {_totalCoins} coins");
}
public void SetKey()
{
OnPlayerTakeItem?.Invoke(this, TreasureType.Key);
print($"player have key");
_hasKey = true;
}
public void RemoveKey()
{
_hasKey = false;
}
public bool IsHasKey()
{
return _hasKey;
} }
private void Update() private void Update()
@@ -88,20 +59,16 @@ public class Player : Character
_isHoldingHammer = true; _isHoldingHammer = true;
} }
if (FireButtonPressed() && !_isFalling) var move = _inputManager.OnMovementInput.ReadValue<Vector2>();
{
if (_hammer == null)
{
_animator.SetTrigger("Body_ThrowHammer");
}
}
var move = _inputActions.Player.Movement.ReadValue<Vector2>();
base.MoveTo(move.x, isAllowVertical ? move.y : 0); base.MoveTo(move.x, isAllowVertical ? move.y : 0);
} }
private bool FireButtonPressed() private void OnFireButtonPressed()
{ {
return _inputActions.Player.Fire.triggered && _inputActions.Player.Fire.ReadValue<float>() > 0; if (_hammer == null)
{
_animator.SetTrigger("Body_ThrowHammer");
}
} }
public void ThrowHammerObject() public void ThrowHammerObject()
@@ -110,14 +77,14 @@ public class Player : Character
_spriteRenderer.sprite = _noHammerSprite; _spriteRenderer.sprite = _noHammerSprite;
_hammer = Instantiate(_hammerPrefab, _hammerSpawnPoint.position, _hammerSpawnPoint.rotation); _hammer = Instantiate(_hammerPrefab, _hammerSpawnPoint.position, _hammerSpawnPoint.rotation);
_hammer.transform.localScale = new Vector2(_hammer.transform.localScale.x * (_facingRight ? 1 : -1), _hammer.transform.localScale.y); _hammer.transform.localScale = new Vector2(_hammer.transform.localScale.x * (_facingRight ? 1 : -1), _hammer.transform.localScale.y);
_hammer.GetComponent<Rigidbody2D>().velocity = new Vector2(gameObject.transform.localScale.x * _hammerSpeed, 0); _hammer.GetComponent<Rigidbody2D>().linearVelocity = new Vector2(gameObject.transform.localScale.x * _hammerSpeed, 0);
} }
protected override void SetWalkingAnimation(bool isWalking) protected override void SetWalkingAnimation(bool isWalking)
{ {
_bonesBack.SetActive(false); _bonesBack.SetActive(false);
_bonesSide.SetActive(true); _bonesSide.SetActive(true);
_animator.SetBool("Legs_Walk",isWalking); _animator.SetBool("Legs_Walk", isWalking);
_animator.SetBool("Body_Walk", isWalking); _animator.SetBool("Body_Walk", isWalking);
} }
@@ -133,11 +100,11 @@ public class Player : Character
protected void OnDeath() protected void OnDeath()
{ {
Lives--; _playerState.Lives--;
if (Lives==0) if (_playerState.Lives == 0)
{ {
print("game over"); Debug.Log("Game over");
} }
} }
} }
+6 -8
View File
@@ -21,14 +21,9 @@ public class EnemyAI : Character
float verticalDistance = Player.Instance.transform.position.y - transform.position.y; float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
if (Mathf.Abs(verticalDistance) > 0.1f && (isCanClimbUp || isCanGoDown))
if (verticalDistance > 0.1f && isCanClimbUp && isAllowVertical)
{ {
vertical = VerticalMove(verticalDistance); vertical = Mathf.Sign(verticalDistance);
}
else if (verticalDistance < 0f && isAllowVertical && isCanGoDown)
{
vertical = VerticalMove(verticalDistance);
} }
else else
{ {
@@ -40,13 +35,16 @@ public class EnemyAI : Character
{ horizontal = -1; } { horizontal = -1; }
else if (directionToPlayer.x > 0) else if (directionToPlayer.x > 0)
{ horizontal = 1; } { horizontal = 1; }
} }
if (Input.GetKey(KeyCode.T)) if (Input.GetKey(KeyCode.T))
{ vertical = 1; } { vertical = 1; }
if (Input.GetKey(KeyCode.G)) if (Input.GetKey(KeyCode.G))
{ vertical = -1; } { vertical = -1; }
Debug.Log($"Enemy Position: {transform.position}, Player Position: {Player.Instance.transform.position}");
Debug.Log($"Vertical Distance: {verticalDistance}, Vertical Movement: {vertical}");
base.MoveTo(horizontal, vertical); base.MoveTo(horizontal, vertical);
} }
+155 -1
View File
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator // This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
// version 1.7.0 // version 1.19.0
// from Assets/Scripts/InputActions.inputactions // from Assets/Scripts/InputActions.inputactions
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
@@ -15,12 +15,77 @@ using System.Collections.Generic;
using UnityEngine.InputSystem; using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities; using UnityEngine.InputSystem.Utilities;
/// <summary>
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/Scripts/InputActions.inputactions".
/// </summary>
/// <remarks>
/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
/// </remarks>
/// <example>
/// <code>
/// using namespace UnityEngine;
/// using UnityEngine.InputSystem;
///
/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
/// public class Example : MonoBehaviour, MyActions.IPlayerActions
/// {
/// private MyActions_Actions m_Actions; // Source code representation of asset.
/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
///
/// void Awake()
/// {
/// m_Actions = new MyActions_Actions(); // Create asset object.
/// m_Player = m_Actions.Player; // Extract action map object.
/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
/// }
///
/// void OnDestroy()
/// {
/// m_Actions.Dispose(); // Destroy asset object.
/// }
///
/// void OnEnable()
/// {
/// m_Player.Enable(); // Enable all actions within map.
/// }
///
/// void OnDisable()
/// {
/// m_Player.Disable(); // Disable all actions within map.
/// }
///
/// #region Interface implementation of MyActions.IPlayerActions
///
/// // Invoked when "Move" action is either started, performed or canceled.
/// public void OnMove(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnMove: {context.ReadValue&lt;Vector2&gt;()}");
/// }
///
/// // Invoked when "Attack" action is either started, performed or canceled.
/// public void OnAttack(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnAttack: {context.ReadValue&lt;float&gt;()}");
/// }
///
/// #endregion
/// }
/// </code>
/// </example>
public partial class @InputActions: IInputActionCollection2, IDisposable public partial class @InputActions: IInputActionCollection2, IDisposable
{ {
/// <summary>
/// Provides access to the underlying asset instance.
/// </summary>
public InputActionAsset asset { get; } public InputActionAsset asset { get; }
/// <summary>
/// Constructs a new instance.
/// </summary>
public @InputActions() public @InputActions()
{ {
asset = InputActionAsset.FromJson(@"{ asset = InputActionAsset.FromJson(@"{
""version"": 1,
""name"": ""InputActions"", ""name"": ""InputActions"",
""maps"": [ ""maps"": [
{ {
@@ -190,57 +255,76 @@ public partial class @InputActions: IInputActionCollection2, IDisposable
m_Player_Fire = m_Player.FindAction("Fire", throwIfNotFound: true); m_Player_Fire = m_Player.FindAction("Fire", throwIfNotFound: true);
} }
~@InputActions()
{
UnityEngine.Debug.Assert(!m_Player.enabled, "This will cause a leak and performance issues, InputActions.Player.Disable() has not been called.");
}
/// <summary>
/// Destroys this asset and all associated <see cref="InputAction"/> instances.
/// </summary>
public void Dispose() public void Dispose()
{ {
UnityEngine.Object.Destroy(asset); UnityEngine.Object.Destroy(asset);
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindingMask" />
public InputBinding? bindingMask public InputBinding? bindingMask
{ {
get => asset.bindingMask; get => asset.bindingMask;
set => asset.bindingMask = value; set => asset.bindingMask = value;
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.devices" />
public ReadOnlyArray<InputDevice>? devices public ReadOnlyArray<InputDevice>? devices
{ {
get => asset.devices; get => asset.devices;
set => asset.devices = value; set => asset.devices = value;
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.controlSchemes" />
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes; public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Contains(InputAction)" />
public bool Contains(InputAction action) public bool Contains(InputAction action)
{ {
return asset.Contains(action); return asset.Contains(action);
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.GetEnumerator()" />
public IEnumerator<InputAction> GetEnumerator() public IEnumerator<InputAction> GetEnumerator()
{ {
return asset.GetEnumerator(); return asset.GetEnumerator();
} }
/// <inheritdoc cref="IEnumerable.GetEnumerator()" />
IEnumerator IEnumerable.GetEnumerator() IEnumerator IEnumerable.GetEnumerator()
{ {
return GetEnumerator(); return GetEnumerator();
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Enable()" />
public void Enable() public void Enable()
{ {
asset.Enable(); asset.Enable();
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Disable()" />
public void Disable() public void Disable()
{ {
asset.Disable(); asset.Disable();
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindings" />
public IEnumerable<InputBinding> bindings => asset.bindings; public IEnumerable<InputBinding> bindings => asset.bindings;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindAction(string, bool)" />
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false) public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
{ {
return asset.FindAction(actionNameOrId, throwIfNotFound); return asset.FindAction(actionNameOrId, throwIfNotFound);
} }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindBinding(InputBinding, out InputAction)" />
public int FindBinding(InputBinding bindingMask, out InputAction action) public int FindBinding(InputBinding bindingMask, out InputAction action)
{ {
return asset.FindBinding(bindingMask, out action); return asset.FindBinding(bindingMask, out action);
@@ -251,17 +335,47 @@ public partial class @InputActions: IInputActionCollection2, IDisposable
private List<IPlayerActions> m_PlayerActionsCallbackInterfaces = new List<IPlayerActions>(); private List<IPlayerActions> m_PlayerActionsCallbackInterfaces = new List<IPlayerActions>();
private readonly InputAction m_Player_Movement; private readonly InputAction m_Player_Movement;
private readonly InputAction m_Player_Fire; private readonly InputAction m_Player_Fire;
/// <summary>
/// Provides access to input actions defined in input action map "Player".
/// </summary>
public struct PlayerActions public struct PlayerActions
{ {
private @InputActions m_Wrapper; private @InputActions m_Wrapper;
/// <summary>
/// Construct a new instance of the input action map wrapper class.
/// </summary>
public PlayerActions(@InputActions wrapper) { m_Wrapper = wrapper; } public PlayerActions(@InputActions wrapper) { m_Wrapper = wrapper; }
/// <summary>
/// Provides access to the underlying input action "Player/Movement".
/// </summary>
public InputAction @Movement => m_Wrapper.m_Player_Movement; public InputAction @Movement => m_Wrapper.m_Player_Movement;
/// <summary>
/// Provides access to the underlying input action "Player/Fire".
/// </summary>
public InputAction @Fire => m_Wrapper.m_Player_Fire; public InputAction @Fire => m_Wrapper.m_Player_Fire;
/// <summary>
/// Provides access to the underlying input action map instance.
/// </summary>
public InputActionMap Get() { return m_Wrapper.m_Player; } public InputActionMap Get() { return m_Wrapper.m_Player; }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Enable()" />
public void Enable() { Get().Enable(); } public void Enable() { Get().Enable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Disable()" />
public void Disable() { Get().Disable(); } public void Disable() { Get().Disable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.enabled" />
public bool enabled => Get().enabled; public bool enabled => Get().enabled;
/// <summary>
/// Implicitly converts an <see ref="PlayerActions" /> to an <see ref="InputActionMap" /> instance.
/// </summary>
public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); } public static implicit operator InputActionMap(PlayerActions set) { return set.Get(); }
/// <summary>
/// Adds <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <param name="instance">Callback instance.</param>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c> or <paramref name="instance"/> have already been added this method does nothing.
/// </remarks>
/// <seealso cref="PlayerActions" />
public void AddCallbacks(IPlayerActions instance) public void AddCallbacks(IPlayerActions instance)
{ {
if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return; if (instance == null || m_Wrapper.m_PlayerActionsCallbackInterfaces.Contains(instance)) return;
@@ -274,6 +388,13 @@ public partial class @InputActions: IInputActionCollection2, IDisposable
@Fire.canceled += instance.OnFire; @Fire.canceled += instance.OnFire;
} }
/// <summary>
/// Removes <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <remarks>
/// Calling this method when <paramref name="instance" /> have not previously been registered has no side-effects.
/// </remarks>
/// <seealso cref="PlayerActions" />
private void UnregisterCallbacks(IPlayerActions instance) private void UnregisterCallbacks(IPlayerActions instance)
{ {
@Movement.started -= instance.OnMovement; @Movement.started -= instance.OnMovement;
@@ -284,12 +405,25 @@ public partial class @InputActions: IInputActionCollection2, IDisposable
@Fire.canceled -= instance.OnFire; @Fire.canceled -= instance.OnFire;
} }
/// <summary>
/// Unregisters <param cref="instance" /> and unregisters all input action callbacks via <see cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />.
/// </summary>
/// <seealso cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />
public void RemoveCallbacks(IPlayerActions instance) public void RemoveCallbacks(IPlayerActions instance)
{ {
if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance)) if (m_Wrapper.m_PlayerActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance); UnregisterCallbacks(instance);
} }
/// <summary>
/// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via <param cref="instance" />.
/// </summary>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c>, calling this method will only unregister all existing callbacks but not register any new callbacks.
/// </remarks>
/// <seealso cref="PlayerActions.AddCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.RemoveCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.UnregisterCallbacks(IPlayerActions)" />
public void SetCallbacks(IPlayerActions instance) public void SetCallbacks(IPlayerActions instance)
{ {
foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces) foreach (var item in m_Wrapper.m_PlayerActionsCallbackInterfaces)
@@ -298,10 +432,30 @@ public partial class @InputActions: IInputActionCollection2, IDisposable
AddCallbacks(instance); AddCallbacks(instance);
} }
} }
/// <summary>
/// Provides a new <see cref="PlayerActions" /> instance referencing this action map.
/// </summary>
public PlayerActions @Player => new PlayerActions(this); public PlayerActions @Player => new PlayerActions(this);
/// <summary>
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Player" which allows adding and removing callbacks.
/// </summary>
/// <seealso cref="PlayerActions.AddCallbacks(IPlayerActions)" />
/// <seealso cref="PlayerActions.RemoveCallbacks(IPlayerActions)" />
public interface IPlayerActions public interface IPlayerActions
{ {
/// <summary>
/// Method invoked when associated input action "Movement" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnMovement(InputAction.CallbackContext context); void OnMovement(InputAction.CallbackContext context);
/// <summary>
/// Method invoked when associated input action "Fire" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnFire(InputAction.CallbackContext context); void OnFire(InputAction.CallbackContext context);
} }
} }
+24
View File
@@ -0,0 +1,24 @@
public class InputManager : MonoBehaviour
{
private InputActions _inputActions;
public event EventHandler<Vector2> OnMovementInput;
public event EventHandler OnFireButtonPressed;
private void Awake()
{
_inputActions = new InputActions();
_inputActions.Player.Movement.performed += ctx => OnMovementInput?.Invoke(ctx.ReadValue<Vector2>());
_inputActions.Player.Fire.performed += ctx => OnFireButtonPressed?.Invoke();
}
private void OnEnable()
{
_inputActions.Enable();
}
private void OnDisable()
{
_inputActions.Disable();
}
}
+27
View File
@@ -0,0 +1,27 @@
public class PlayerState : MonoBehaviour
{
public int Lives = 3;
public int TotalCoins { get; private set; }
public bool HasKey { get; private set; }
public event EventHandler<TreasureType> OnPlayerTakeItem;
public void AddCoin()
{
TotalCoins++;
OnPlayerTakeItem?.Invoke(this, TreasureType.Coin);
Debug.Log($"Player has {TotalCoins} coins");
}
public void SetKey()
{
HasKey = true;
OnPlayerTakeItem?.Invoke(this, TreasureType.Key);
Debug.Log("Player has key");
}
public void RemoveKey()
{
HasKey = false;
}
}
+1 -1
View File
@@ -77,4 +77,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
version: 9 version: 10
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

+143
View File
@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 3f1ef566b4a3d1f41981e0be84c6a48d
TextureImporter:
internalIDToNameTable:
- first:
213: -4773196292517953385
second: GreenButton_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
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: 2
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:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: GreenButton_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 360
height: 111
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 790814de24332cdb0800000000000000
internalID: -4773196292517953385
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
GreenButton_0: -4773196292517953385
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
+26 -14
View File
@@ -12,8 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: URP Lights m_Name: URP Lights
m_EditorClassIdentifier: m_EditorClassIdentifier:
k_AssetVersion: 12 k_AssetVersion: 13
k_AssetPreviousVersion: 12 k_AssetPreviousVersion: 13
m_RendererType: 1 m_RendererType: 1
m_RendererData: {fileID: 0} m_RendererData: {fileID: 0}
m_RendererDataList: m_RendererDataList:
@@ -35,7 +35,11 @@ MonoBehaviour:
m_ShEvalMode: 0 m_ShEvalMode: 0
m_LightProbeSystem: 0 m_LightProbeSystem: 0
m_ProbeVolumeMemoryBudget: 1024 m_ProbeVolumeMemoryBudget: 1024
m_SupportProbeVolumeStreaming: 0 m_ProbeVolumeBlendingMemoryBudget: 256
m_SupportProbeVolumeGPUStreaming: 0
m_SupportProbeVolumeDiskStreaming: 0
m_SupportProbeVolumeScenarios: 0
m_SupportProbeVolumeScenarioBlending: 0
m_ProbeVolumeSHBands: 1 m_ProbeVolumeSHBands: 1
m_MainLightRenderingMode: 1 m_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1 m_MainLightShadowsSupported: 1
@@ -49,6 +53,7 @@ MonoBehaviour:
m_AdditionalLightsShadowResolutionTierHigh: 1024 m_AdditionalLightsShadowResolutionTierHigh: 1024
m_ReflectionProbeBlending: 0 m_ReflectionProbeBlending: 0
m_ReflectionProbeBoxProjection: 0 m_ReflectionProbeBoxProjection: 0
m_ReflectionProbeAtlas: 1
m_ShadowDistance: 50 m_ShadowDistance: 50
m_ShadowCascadeCount: 1 m_ShadowCascadeCount: 1
m_Cascade2Split: 0.25 m_Cascade2Split: 0.25
@@ -71,13 +76,16 @@ MonoBehaviour:
m_SupportsLightLayers: 0 m_SupportsLightLayers: 0
m_DebugLevel: 0 m_DebugLevel: 0
m_StoreActionsOptimization: 0 m_StoreActionsOptimization: 0
m_EnableRenderGraph: 0
m_UseAdaptivePerformance: 1 m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0 m_ColorGradingMode: 0
m_ColorGradingLutSize: 32 m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0 m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1 m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1 m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1 m_ShadowType: 1
m_LocalShadowsSupported: 0 m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256 m_LocalShadowsAtlasResolution: 256
@@ -85,19 +93,11 @@ MonoBehaviour:
m_ShadowAtlasResolution: 256 m_ShadowAtlasResolution: 256
m_VolumeFrameworkUpdateMode: 0 m_VolumeFrameworkUpdateMode: 0
m_VolumeProfile: {fileID: 0} m_VolumeProfile: {fileID: 0}
m_Textures:
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
apvScenesData: apvScenesData:
m_ObsoleteSerializedBakingSets: [] obsoleteSceneBounds:
sceneToBakingSet:
m_Keys: [] m_Keys: []
m_Values: [] m_Values: []
bakingSets: [] obsoleteHasProbeVolumes:
sceneBounds:
m_Keys: []
m_Values: []
hasProbeVolumes:
m_Keys: [] m_Keys: []
m_Values: m_Values:
m_PrefilteringModeMainLightShadows: 4 m_PrefilteringModeMainLightShadows: 4
@@ -110,6 +110,7 @@ MonoBehaviour:
m_PrefilterDebugKeywords: 1 m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 1 m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1 m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 0
m_PrefilterSSAODepthNormals: 1 m_PrefilterSSAODepthNormals: 1
m_PrefilterSSAOSourceDepthLow: 1 m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1 m_PrefilterSSAOSourceDepthMedium: 1
@@ -127,6 +128,17 @@ MonoBehaviour:
m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0 m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1 m_PrefilterScreenCoord: 1
m_PrefilterScreenSpaceIrradiance: 0
m_PrefilterNativeRenderPass: 1 m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 0
m_PrefilterReflectionProbeRotation: 0
m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 0
m_PrefilterPointSamplingUpsampling: 0
m_ShaderVariantLogLevel: 0 m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0 m_ShadowCascades: 0
m_Textures:
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
@@ -12,34 +12,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}
m_Name: UniversalRenderPipelineGlobalSettings m_Name: UniversalRenderPipelineGlobalSettings
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Settings:
m_SettingsList: []
m_RuntimeSettings: []
m_AssetVersion: 5
m_DefaultVolumeProfile: {fileID: 11400000, guid: 04e4051854890434e87e8f9749050a25, type: 2}
m_RenderingLayerNames:
- Default
m_ValidRenderingLayers: 1
lightLayerName0:
lightLayerName1:
lightLayerName2:
lightLayerName3:
lightLayerName4:
lightLayerName5:
lightLayerName6:
lightLayerName7:
apvScenesData:
m_ObsoleteSerializedBakingSets: []
sceneToBakingSet:
m_Keys: []
m_Values: []
bakingSets: []
sceneBounds:
m_Keys: []
m_Values: []
hasProbeVolumes:
m_Keys: []
m_Values:
m_ShaderStrippingSetting: m_ShaderStrippingSetting:
m_Version: 0 m_Version: 0
m_ExportShaderVariants: 1 m_ExportShaderVariants: 1
@@ -57,6 +29,408 @@ MonoBehaviour:
m_StripUnusedVariants: 1 m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1 m_StripScreenCoordOverrideVariants: 1
supportRuntimeDebugDisplay: 0 supportRuntimeDebugDisplay: 0
m_Settings:
m_SettingsList:
m_List:
- rid: 2587722702025129984
- rid: 2587722702025129985
- rid: 2587722702025129986
- rid: 2587722702025129987
- rid: 2587722702025129988
- rid: 2587722702025129989
- rid: 2587722702025129990
- rid: 2587722702025129991
- rid: 2587722702025129992
- rid: 2587722702025129993
- rid: 2587722702025129994
- rid: 2587722702025129995
- rid: 2587722702025129996
- rid: 2587722702025129997
- rid: 2587722702025129998
- rid: 2587722702025129999
- rid: 2587722702025130000
- rid: 2587722702025130001
- rid: 2587722702025130002
- rid: 2587722702025130003
- rid: 2587722702025130004
- rid: 5356019227373338624
- rid: 5356019227373338625
- rid: 5356019227373338626
- rid: 5356019227373338627
- rid: 5356019227373338628
- rid: 5356019227373338629
- rid: 5356019227373338630
- rid: 5356019227373338631
- rid: 5356019227373338632
- rid: 5356019227373338633
- rid: 5356019227373338634
- rid: 5356019227373338635
- rid: 5356019227373338636
- rid: 5356019227373338637
m_RuntimeSettings:
m_List: []
m_AssetVersion: 10
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:
- Default
m_ValidRenderingLayers: 1
lightLayerName0:
lightLayerName1:
lightLayerName2:
lightLayerName3:
lightLayerName4:
lightLayerName5:
lightLayerName6:
lightLayerName7:
apvScenesData:
obsoleteSceneBounds:
m_Keys: []
m_Values: []
obsoleteHasProbeVolumes:
m_Keys: []
m_Values:
references: references:
version: 2 version: 2
RefIds: [] RefIds:
- rid: 2587722702025129984
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
- rid: 2587722702025129985
type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
m_TerrainDetailLit: {fileID: 0}
m_TerrainDetailGrassBillboard: {fileID: 0}
m_TerrainDetailGrass: {fileID: 0}
- rid: 2587722702025129986
type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3}
m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3}
m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3}
m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3}
m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3}
m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3}
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2}
- rid: 2587722702025129987
type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_VolumeProfile: {fileID: 11400000, guid: 04e4051854890434e87e8f9749050a25, type: 2}
- rid: 2587722702025129988
type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2}
m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2}
m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2}
m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
- rid: 2587722702025129989
type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3}
m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3}
m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3}
- rid: 2587722702025129990
type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 1
m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3}
- rid: 2587722702025129991
type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_StripUnusedPostProcessingVariants: 0
m_StripUnusedVariants: 1
m_StripScreenCoordOverrideVariants: 1
- rid: 2587722702025129992
type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
- rid: 2587722702025129993
type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
- rid: 2587722702025129994
type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3}
m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3}
m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3}
- rid: 2587722702025129995
type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime}
data:
m_Version: 0
m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3}
m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3}
m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3}
m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3}
m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3}
m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3}
m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3}
m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3}
m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3}
- rid: 2587722702025129996
type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_EnableCompilationCaching: 1
m_EnableValidityChecks: 1
- rid: 2587722702025129997
type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3}
probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3}
probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3}
- rid: 2587722702025129998
type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
m_IncludeReferencedInScenes: 0
m_IncludeAssetsByLabel: 0
m_LabelToInclude:
- rid: 2587722702025129999
type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3}
subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3}
voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3}
traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3}
skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3}
renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3}
- rid: 2587722702025130000
type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3}
m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3}
m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3}
- rid: 2587722702025130001
type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 0
m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3}
- rid: 2587722702025130002
type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3}
probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3}
probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3}
probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3}
probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3}
numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3}
- rid: 2587722702025130003
type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_ProbeVolumeDisableStreamingAssets: 0
- rid: 2587722702025130004
type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 0
m_ExportShaderVariants: 1
m_ShaderVariantLogLevel: 0
m_StripRuntimeDebugShaders: 1
- rid: 5356019227373338624
type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime}
data:
m_Version: 1
m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3}
m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3}
m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3}
m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3}
m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3}
m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3}
m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3}
m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3}
m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3}
- rid: 5356019227373338625
type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3}
subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3}
gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3}
bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3}
cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3}
paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3}
lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3}
lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3}
bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3}
temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3}
LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3}
LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3}
scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3}
easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3}
uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3}
finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3}
m_ShaderResourcesVersion: 0
- rid: 5356019227373338626
type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
blueNoise16LTex:
- {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3}
- {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3}
- {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3}
- {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3}
- {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3}
- {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3}
- {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3}
- {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3}
- {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3}
- {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3}
- {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3}
- {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3}
- {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3}
- {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3}
- {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3}
- {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3}
- {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3}
- {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3}
- {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3}
- {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3}
- {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3}
- {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3}
- {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3}
- {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3}
- {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3}
- {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3}
- {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3}
- {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3}
- {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3}
- {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3}
- {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3}
- {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3}
filmGrainTex:
- {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3}
- {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3}
- {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3}
- {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3}
- {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3}
- {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3}
- {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3}
- {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3}
- {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3}
- {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3}
smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3}
smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3}
m_TexturesResourcesVersion: 0
- rid: 5356019227373338627
type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3}
- rid: 5356019227373338628
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2}
- rid: 5356019227373338629
type: {class: UniversalRenderPipelineRuntimeTerrainShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
- rid: 5356019227373338630
type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime}
data:
version: 1
useReflectionProbeRotation: 0
- rid: 5356019227373338631
type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_BlueNoise256Textures:
- {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3}
- {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3}
- {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3}
- {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3}
- {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3}
- {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3}
- {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3}
m_Version: 0
- rid: 5356019227373338632
type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
m_Version: 0
- rid: 5356019227373338633
type: {class: URPTerrainShaderSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_IncludeTerrainShaders: 1
- rid: 5356019227373338634
type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3}
m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3}
m_VisualizationLookupTable:
m_Data:
- {r: 0.785, g: 0.23, b: 0.2, a: 1}
- {r: 1, g: 0.8, b: 0.8, a: 1}
- {r: 0.4, g: 0.2, b: 0.2, a: 1}
- {r: 0.51, g: 0.8, b: 0.6, a: 1}
- {r: 0.6, g: 0.8, b: 1, a: 1}
- {r: 0.2, g: 0.4, b: 0.6, a: 1}
- {r: 0.8, g: 1, b: 0.8, a: 1}
- {r: 0.2, g: 0.4, b: 0.2, a: 1}
- {r: 0.125, g: 0.22, b: 0.36, a: 1}
m_ConversionLookupTable:
m_Data:
- {r: 0.785, g: 0.23, b: 0.2, a: 1}
- {r: 1, g: 0.8, b: 0.8, a: 1}
- {r: 0.4, g: 0.2, b: 0.2, a: 1}
- {r: 0.51, g: 0.8, b: 0.6, a: 1}
- {r: 0.6, g: 0.8, b: 1, a: 1}
- {r: 0.2, g: 0.4, b: 0.6, a: 1}
- {r: 0.8, g: 1, b: 0.8, a: 1}
- {r: 0.2, g: 0.4, b: 0.2, a: 1}
- {r: 0.125, g: 0.22, b: 0.36, a: 1}
- rid: 5356019227373338635
type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_version: 0
- rid: 5356019227373338636
type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
data:
m_Version: 1
m_UseBicubicLightmapSampling: 0
- rid: 5356019227373338637
type: {class: WorldRenderPipelineResources, ns: UnityEngine.PathTracing.Core, asm: Unity.PathTracing.Runtime}
data:
_version: 3
_blitCubemap: {fileID: 7200000, guid: 5a992812cb320d146a66cc600200cce7, type: 3}
_blitGrayScaleCookie: {fileID: 7200000, guid: 557fa399e33bf7647bda5697c5c158df, type: 3}
_setAlphaChannelShader: {fileID: 7200000, guid: 5efaea0e81c66334aa9d062d6573e6fd, type: 3}
_environmentImportanceSamplingBuild: {fileID: 7200000, guid: 5bb2534d2411d344cbc54f880232640f, type: 3}
_skyBoxMesh: {fileID: 4300000, guid: 0529e6c5f6dea8c4a8c2835ed7de57cb, type: 2}
_sixFaceSkyBoxMesh: {fileID: 4300000, guid: a80925ceebd011741b42509226cefc74, type: 2}
_buildLightGridShader: {fileID: 7200000, guid: 16e47c1641bd0104e92b624601457bb0, type: 3}
+18 -17
View File
@@ -1,26 +1,26 @@
{ {
"dependencies": { "dependencies": {
"com.unity.2d.animation": "10.1.1", "com.unity.2d.animation": "14.0.4",
"com.unity.2d.pixel-perfect": "5.0.3", "com.unity.2d.pixel-perfect": "5.1.1",
"com.unity.2d.psdimporter": "9.0.3", "com.unity.2d.psdimporter": "13.0.3",
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.2d.spriteshape": "10.0.4", "com.unity.2d.spriteshape": "14.0.1",
"com.unity.2d.tilemap": "1.0.0", "com.unity.2d.tilemap": "1.0.0",
"com.unity.2d.tilemap.extras": "4.0.2", "com.unity.2d.tilemap.extras": "7.0.1",
"com.unity.ads": "4.4.2", "com.unity.ai.navigation": "2.0.12",
"com.unity.ai.navigation": "2.0.0", "com.unity.analytics": "3.8.2",
"com.unity.analytics": "3.8.1", "com.unity.collab-proxy": "2.12.4",
"com.unity.collab-proxy": "2.3.1", "com.unity.ide.rider": "3.0.40",
"com.unity.ide.rider": "3.0.28", "com.unity.ide.visualstudio": "2.0.27",
"com.unity.ide.visualstudio": "2.0.22", "com.unity.inputsystem": "1.19.0",
"com.unity.inputsystem": "1.7.0", "com.unity.multiplayer.center": "1.0.1",
"com.unity.purchasing": "4.11.0", "com.unity.render-pipelines.universal": "17.4.0",
"com.unity.render-pipelines.universal": "16.0.6", "com.unity.test-framework": "1.6.0",
"com.unity.test-framework": "1.3.9", "com.unity.timeline": "1.8.12",
"com.unity.timeline": "1.8.6",
"com.unity.ugui": "2.0.0", "com.unity.ugui": "2.0.0",
"com.unity.xr.legacyinputhelpers": "2.1.10", "com.unity.xr.legacyinputhelpers": "3.0.1",
"com.unity.modules.accessibility": "1.0.0", "com.unity.modules.accessibility": "1.0.0",
"com.unity.modules.adaptiveperformance": "1.0.0",
"com.unity.modules.ai": "1.0.0", "com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0", "com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
@@ -47,6 +47,7 @@
"com.unity.modules.unitywebrequestaudio": "1.0.0", "com.unity.modules.unitywebrequestaudio": "1.0.0",
"com.unity.modules.unitywebrequesttexture": "1.0.0", "com.unity.modules.unitywebrequesttexture": "1.0.0",
"com.unity.modules.unitywebrequestwww": "1.0.0", "com.unity.modules.unitywebrequestwww": "1.0.0",
"com.unity.modules.vectorgraphics": "1.0.0",
"com.unity.modules.vehicles": "1.0.0", "com.unity.modules.vehicles": "1.0.0",
"com.unity.modules.video": "1.0.0", "com.unity.modules.video": "1.0.0",
"com.unity.modules.vr": "1.0.0", "com.unity.modules.vr": "1.0.0",
+118 -104
View File
@@ -1,45 +1,50 @@
{ {
"dependencies": { "dependencies": {
"com.unity.2d.animation": { "com.unity.2d.animation": {
"version": "10.1.1", "version": "14.0.4",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "9.0.4", "com.unity.2d.common": "13.0.2",
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.collections": "1.2.4", "com.unity.collections": "2.4.3",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
"com.unity.modules.uielements": "1.0.0" "com.unity.modules.uielements": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.2d.common": { "com.unity.2d.common": {
"version": "9.0.4", "version": "13.0.2",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.burst": "1.8.4",
"com.unity.2d.sprite": "1.0.0", "com.unity.2d.sprite": "1.0.0",
"com.unity.collections": "2.4.3",
"com.unity.mathematics": "1.1.0", "com.unity.mathematics": "1.1.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
"com.unity.burst": "1.8.4" "com.unity.modules.uielements": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.2d.pixel-perfect": { "com.unity.2d.pixel-perfect": {
"version": "5.0.3", "version": "5.1.1",
"depth": 0,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.2d.psdimporter": {
"version": "9.0.3",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "9.0.4", "com.unity.modules.imgui": "1.0.0"
"com.unity.2d.sprite": "1.0.0" },
"url": "https://packages.unity.com"
},
"com.unity.2d.psdimporter": {
"version": "13.0.3",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "13.0.2",
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
@@ -50,12 +55,12 @@
"dependencies": {} "dependencies": {}
}, },
"com.unity.2d.spriteshape": { "com.unity.2d.spriteshape": {
"version": "10.0.4", "version": "14.0.1",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.2d.common": "13.0.1",
"com.unity.mathematics": "1.1.0", "com.unity.mathematics": "1.1.0",
"com.unity.2d.common": "9.0.4",
"com.unity.modules.physics2d": "1.0.0" "com.unity.modules.physics2d": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
@@ -70,28 +75,18 @@
} }
}, },
"com.unity.2d.tilemap.extras": { "com.unity.2d.tilemap.extras": {
"version": "4.0.2", "version": "7.0.1",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.modules.tilemap": "1.0.0",
"com.unity.2d.tilemap": "1.0.0", "com.unity.2d.tilemap": "1.0.0",
"com.unity.ugui": "1.0.0", "com.unity.modules.tilemap": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0" "com.unity.modules.jsonserialize": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.ads": {
"version": "4.4.2",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ugui": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ai.navigation": { "com.unity.ai.navigation": {
"version": "2.0.0", "version": "2.0.12",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -100,18 +95,18 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.analytics": { "com.unity.analytics": {
"version": "3.8.1", "version": "3.8.2",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.services.analytics": "1.0.4", "com.unity.ugui": "1.0.0",
"com.unity.ugui": "1.0.0" "com.unity.services.analytics": "1.0.4"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.burst": { "com.unity.burst": {
"version": "1.8.13", "version": "1.8.29",
"depth": 1, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.1", "com.unity.mathematics": "1.2.1",
@@ -120,32 +115,32 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.collab-proxy": { "com.unity.collab-proxy": {
"version": "2.3.1", "version": "2.12.4",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.collections": { "com.unity.collections": {
"version": "1.4.0", "version": "6.4.0",
"depth": 3, "depth": 1,
"source": "registry", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.burst": "1.6.6", "com.unity.burst": "1.8.23",
"com.unity.nuget.mono-cecil": "1.11.4", "com.unity.mathematics": "1.3.2",
"com.unity.test-framework": "1.1.31" "com.unity.nuget.mono-cecil": "1.11.5",
}, "com.unity.test-framework": "1.4.6",
"url": "https://packages.unity.com" "com.unity.test-framework.performance": "3.0.3"
}
}, },
"com.unity.ext.nunit": { "com.unity.ext.nunit": {
"version": "2.0.5", "version": "2.0.5",
"depth": 1, "depth": 1,
"source": "registry", "source": "builtin",
"dependencies": {}, "dependencies": {}
"url": "https://packages.unity.com"
}, },
"com.unity.ide.rider": { "com.unity.ide.rider": {
"version": "3.0.28", "version": "3.0.40",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -154,16 +149,16 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.ide.visualstudio": { "com.unity.ide.visualstudio": {
"version": "2.0.22", "version": "2.0.27",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.test-framework": "1.1.9" "com.unity.test-framework": "1.1.33"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.inputsystem": { "com.unity.inputsystem": {
"version": "1.7.0", "version": "1.19.0",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
@@ -172,130 +167,131 @@
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.mathematics": { "com.unity.mathematics": {
"version": "1.2.6", "version": "1.3.3",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.multiplayer.center": {
"version": "1.0.1",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.uielements": "1.0.0"
}
},
"com.unity.nuget.mono-cecil": { "com.unity.nuget.mono-cecil": {
"version": "1.11.4", "version": "1.11.6",
"depth": 4, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.nuget.newtonsoft-json": { "com.unity.nuget.newtonsoft-json": {
"version": "3.2.1", "version": "3.2.2",
"depth": 2, "depth": 3,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.purchasing": {
"version": "4.11.0",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ugui": "1.0.0",
"com.unity.modules.unitywebrequest": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.services.core": "1.8.2"
},
"url": "https://packages.unity.com"
},
"com.unity.render-pipelines.core": { "com.unity.render-pipelines.core": {
"version": "16.0.6", "version": "17.4.0",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.4", "com.unity.burst": "1.8.14",
"com.unity.mathematics": "1.3.2",
"com.unity.ugui": "2.0.0", "com.unity.ugui": "2.0.0",
"com.unity.modules.physics": "1.0.0", "com.unity.collections": "2.4.3",
"com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrain": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0"
"com.unity.rendering.light-transport": "1.0.0"
} }
}, },
"com.unity.render-pipelines.universal": { "com.unity.render-pipelines.universal": {
"version": "16.0.6", "version": "17.4.0",
"depth": 0, "depth": 0,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.mathematics": "1.2.1", "com.unity.render-pipelines.core": "17.4.0",
"com.unity.burst": "1.8.9", "com.unity.shadergraph": "17.4.0",
"com.unity.render-pipelines.core": "16.0.6", "com.unity.render-pipelines.universal-config": "17.4.0"
"com.unity.shadergraph": "16.0.6"
} }
}, },
"com.unity.rendering.light-transport": { "com.unity.render-pipelines.universal-config": {
"version": "1.0.2", "version": "17.4.0",
"depth": 2, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.collections": "1.4.0", "com.unity.render-pipelines.core": "17.4.0"
"com.unity.mathematics": "1.2.4",
"com.unity.render-pipelines.core": "16.0.1"
} }
}, },
"com.unity.searcher": { "com.unity.searcher": {
"version": "4.9.2", "version": "4.9.4",
"depth": 2, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": {}, "dependencies": {},
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.services.analytics": { "com.unity.services.analytics": {
"version": "4.4.0", "version": "6.3.0",
"depth": 1, "depth": 1,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.ugui": "1.0.0", "com.unity.ugui": "1.0.0",
"com.unity.services.core": "1.8.1", "com.unity.services.core": "1.16.0",
"com.unity.nuget.newtonsoft-json": "3.0.2" "com.unity.modules.jsonserialize": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.services.core": { "com.unity.services.core": {
"version": "1.12.5", "version": "1.16.0",
"depth": 1, "depth": 2,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.modules.unitywebrequest": "1.0.0", "com.unity.modules.androidjni": "1.0.0",
"com.unity.nuget.newtonsoft-json": "3.2.1", "com.unity.nuget.newtonsoft-json": "3.2.1",
"com.unity.modules.androidjni": "1.0.0" "com.unity.modules.unitywebrequest": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.shadergraph": { "com.unity.shadergraph": {
"version": "16.0.6", "version": "17.4.0",
"depth": 1, "depth": 1,
"source": "builtin", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.render-pipelines.core": "16.0.6", "com.unity.render-pipelines.core": "17.4.0",
"com.unity.searcher": "4.9.2" "com.unity.searcher": "4.9.3"
} }
}, },
"com.unity.test-framework": { "com.unity.test-framework": {
"version": "1.3.9", "version": "1.6.0",
"depth": 0, "depth": 0,
"source": "registry", "source": "builtin",
"dependencies": { "dependencies": {
"com.unity.ext.nunit": "2.0.3", "com.unity.ext.nunit": "2.0.3",
"com.unity.modules.imgui": "1.0.0", "com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0" "com.unity.modules.jsonserialize": "1.0.0"
}
},
"com.unity.test-framework.performance": {
"version": "3.4.0",
"depth": 2,
"source": "registry",
"dependencies": {
"com.unity.test-framework": "1.1.33",
"com.unity.modules.jsonserialize": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
}, },
"com.unity.timeline": { "com.unity.timeline": {
"version": "1.8.6", "version": "1.8.12",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.director": "1.0.0", "com.unity.modules.director": "1.0.0",
"com.unity.modules.animation": "1.0.0", "com.unity.modules.animation": "1.0.0",
"com.unity.modules.audio": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0" "com.unity.modules.particlesystem": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
@@ -310,11 +306,10 @@
} }
}, },
"com.unity.xr.legacyinputhelpers": { "com.unity.xr.legacyinputhelpers": {
"version": "2.1.10", "version": "3.0.1",
"depth": 0, "depth": 0,
"source": "registry", "source": "registry",
"dependencies": { "dependencies": {
"com.unity.modules.vr": "1.0.0",
"com.unity.modules.xr": "1.0.0" "com.unity.modules.xr": "1.0.0"
}, },
"url": "https://packages.unity.com" "url": "https://packages.unity.com"
@@ -325,6 +320,14 @@
"source": "builtin", "source": "builtin",
"dependencies": {} "dependencies": {}
}, },
"com.unity.modules.adaptiveperformance": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.subsystems": "1.0.0"
}
},
"com.unity.modules.ai": { "com.unity.modules.ai": {
"version": "1.0.0", "version": "1.0.0",
"depth": 0, "depth": 0,
@@ -467,7 +470,8 @@
"com.unity.modules.ui": "1.0.0", "com.unity.modules.ui": "1.0.0",
"com.unity.modules.imgui": "1.0.0", "com.unity.modules.imgui": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0",
"com.unity.modules.hierarchycore": "1.0.0" "com.unity.modules.hierarchycore": "1.0.0",
"com.unity.modules.physics": "1.0.0"
} }
}, },
"com.unity.modules.umbra": { "com.unity.modules.umbra": {
@@ -531,6 +535,16 @@
"com.unity.modules.imageconversion": "1.0.0" "com.unity.modules.imageconversion": "1.0.0"
} }
}, },
"com.unity.modules.vectorgraphics": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.imgui": "1.0.0"
}
},
"com.unity.modules.vehicles": { "com.unity.modules.vehicles": {
"version": "1.0.0", "version": "1.0.0",
"depth": 0, "depth": 0,
+5 -4
View File
@@ -3,7 +3,7 @@
--- !u!30 &1 --- !u!30 &1
GraphicsSettings: GraphicsSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 15 serializedVersion: 16
m_Deferred: m_Deferred:
m_Mode: 1 m_Mode: 1
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
@@ -57,12 +57,13 @@ GraphicsSettings:
m_FogKeepExp: 1 m_FogKeepExp: 1
m_FogKeepExp2: 1 m_FogKeepExp2: 1
m_AlbedoSwatchInfos: [] m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: b39ccfe209c49664e925c0380178e557, type: 2}
m_ShaderBuildSettings:
keywordDeclarationOverrides: []
m_LightsUseLinearIntensity: 0 m_LightsUseLinearIntensity: 0
m_LightsUseColorTemperature: 1 m_LightsUseColorTemperature: 1
m_DefaultRenderingLayerMask: 1
m_LogWhenShaderIsCompiled: 0 m_LogWhenShaderIsCompiled: 0
m_SRPDefaultSettings:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: b39ccfe209c49664e925c0380178e557, type: 2}
m_LightProbeOutsideHullStrategy: 0 m_LightProbeOutsideHullStrategy: 0
m_CameraRelativeLightCulling: 0 m_CameraRelativeLightCulling: 0
m_CameraRelativeShadowCulling: 0 m_CameraRelativeShadowCulling: 0
+43 -19
View File
@@ -3,7 +3,7 @@
--- !u!129 &1 --- !u!129 &1
PlayerSettings: PlayerSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 27 serializedVersion: 28
productGUID: 74f05df620cc45c4d87848a1b1100d0e productGUID: 74f05df620cc45c4d87848a1b1100d0e
AndroidProfiler: 0 AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0 AndroidFilterTouchesWhenObscured: 0
@@ -41,7 +41,6 @@ PlayerSettings:
height: 1 height: 1
m_SplashScreenLogos: [] m_SplashScreenLogos: []
m_VirtualRealitySplashScreen: {fileID: 0} m_VirtualRealitySplashScreen: {fileID: 0}
m_HolographicTrackingLossScreen: {fileID: 0}
defaultScreenWidth: 1920 defaultScreenWidth: 1920
defaultScreenHeight: 1080 defaultScreenHeight: 1080
defaultScreenWidthWeb: 960 defaultScreenWidthWeb: 960
@@ -49,6 +48,7 @@ PlayerSettings:
m_StereoRenderingPath: 0 m_StereoRenderingPath: 0
m_ActiveColorSpace: 0 m_ActiveColorSpace: 0
unsupportedMSAAFallback: 0 unsupportedMSAAFallback: 0
m_SpriteBatchMaxVertexCount: 65535
m_SpriteBatchVertexThreshold: 300 m_SpriteBatchVertexThreshold: 300
m_MTRendering: 1 m_MTRendering: 1
mipStripping: 0 mipStripping: 0
@@ -69,21 +69,24 @@ PlayerSettings:
androidStartInFullscreen: 1 androidStartInFullscreen: 1
androidRenderOutsideSafeArea: 1 androidRenderOutsideSafeArea: 1
androidUseSwappy: 1 androidUseSwappy: 1
androidDisplayOptions: 1
androidBlitType: 0 androidBlitType: 0
androidResizableWindow: 0 androidResizeableActivity: 0
androidDefaultWindowWidth: 1920 androidDefaultWindowWidth: 1920
androidDefaultWindowHeight: 1080 androidDefaultWindowHeight: 1080
androidMinimumWindowWidth: 400 androidMinimumWindowWidth: 400
androidMinimumWindowHeight: 300 androidMinimumWindowHeight: 300
androidFullscreenMode: 1 androidFullscreenMode: 1
androidAutoRotationBehavior: 1
androidPredictiveBackSupport: 1
androidApplicationEntry: 1 androidApplicationEntry: 1
defaultIsNativeResolution: 1 defaultIsNativeResolution: 1
macRetinaSupport: 1 macRetinaSupport: 1
runInBackground: 0 runInBackground: 0
captureSingleScreen: 0
muteOtherAudioSources: 0 muteOtherAudioSources: 0
Prepare IOS For Recording: 0 Prepare IOS For Recording: 0
Force IOS Speakers When Recording: 0 Force IOS Speakers When Recording: 0
audioSpatialExperience: 0
deferSystemGesturesMode: 0 deferSystemGesturesMode: 0
hideHomeButton: 0 hideHomeButton: 0
submitAnalytics: 1 submitAnalytics: 1
@@ -110,6 +113,7 @@ PlayerSettings:
xboxEnableGuest: 0 xboxEnableGuest: 0
xboxEnablePIXSampling: 0 xboxEnablePIXSampling: 0
metalFramebufferOnly: 0 metalFramebufferOnly: 0
metalUseMetalDisplayLink: 0
xboxOneResolution: 0 xboxOneResolution: 0
xboxOneSResolution: 0 xboxOneSResolution: 0
xboxOneXResolution: 3 xboxOneXResolution: 3
@@ -130,22 +134,23 @@ PlayerSettings:
switchNVNMaxPublicSamplerIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0
switchMaxWorkerMultiple: 8 switchMaxWorkerMultiple: 8
switchNVNGraphicsFirmwareMemory: 32 switchNVNGraphicsFirmwareMemory: 32
switchGraphicsJobsSyncAfterKick: 1
vulkanNumSwapchainBuffers: 3 vulkanNumSwapchainBuffers: 3
vulkanEnableSetSRGBWrite: 0 vulkanEnableSetSRGBWrite: 0
vulkanEnablePreTransform: 0 vulkanEnablePreTransform: 0
vulkanEnableLateAcquireNextImage: 0 vulkanEnableLateAcquireNextImage: 0
vulkanEnableCommandBufferRecycling: 1 vulkanEnableCommandBufferRecycling: 1
loadStoreDebugModeEnabled: 0 loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
bundleVersion: 1.0 bundleVersion: 1.0
preloadedAssets: [] preloadedAssets: []
metroInputSource: 0 metroInputSource: 0
wsaTransparentSwapchain: 0 wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
xboxOneDisableKinectGpuReservation: 1 xboxOneDisableKinectGpuReservation: 1
xboxOneEnable7thCore: 1 xboxOneEnable7thCore: 1
vrSettings: vrSettings:
enable360StereoCapture: 0 enable360StereoCapture: 0
isWsaHolographicRemotingEnabled: 0
enableFrameTimingStats: 0 enableFrameTimingStats: 0
enableOpenGLProfilerGPURecorders: 1 enableOpenGLProfilerGPURecorders: 1
allowHDRDisplaySupport: 0 allowHDRDisplaySupport: 0
@@ -163,13 +168,15 @@ PlayerSettings:
buildNumber: buildNumber:
Bratwurst: 0 Bratwurst: 0
Standalone: 0 Standalone: 0
VisionOS: 0
iPhone: 0 iPhone: 0
tvOS: 0 tvOS: 0
overrideDefaultApplicationIdentifier: 1 overrideDefaultApplicationIdentifier: 1
AndroidBundleVersionCode: 1 AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 23 AndroidMinSdkVersion: 25
AndroidTargetSdkVersion: 0 AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
AndroidPreferredDataLocation: 1
aotOptions: aotOptions:
stripEngineCode: 1 stripEngineCode: 1
iPhoneStrippingLevel: 0 iPhoneStrippingLevel: 0
@@ -183,12 +190,14 @@ PlayerSettings:
strictShaderVariantMatching: 0 strictShaderVariantMatching: 0
VertexChannelCompressionMask: 4054 VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988 iPhoneSdkVersion: 988
iOSTargetOSVersionString: 13.0 iOSSimulatorArchitecture: 0
iOSTargetOSVersionString: 15.0
tvOSSdkVersion: 0 tvOSSdkVersion: 0
tvOSSimulatorArchitecture: 0
tvOSRequireExtendedGameController: 0 tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 13.0 tvOSTargetOSVersionString: 15.0
bratwurstSdkVersion: 0 VisionOSSdkVersion: 0
bratwurstTargetOSVersionString: 13.0 VisionOSTargetOSVersionString: 1.0
uIPrerenderedIcon: 0 uIPrerenderedIcon: 0
uIRequiresPersistentWiFi: 0 uIRequiresPersistentWiFi: 0
uIRequiresFullScreen: 1 uIRequiresFullScreen: 1
@@ -213,7 +222,6 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreenFillPct: 100 iOSLaunchScreenFillPct: 100
iOSLaunchScreenSize: 100 iOSLaunchScreenSize: 100
iOSLaunchScreenCustomXibPath:
iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadType: 0
iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadImage: {fileID: 0}
iOSLaunchScreeniPadBackgroundColor: iOSLaunchScreeniPadBackgroundColor:
@@ -221,7 +229,6 @@ PlayerSettings:
rgba: 0 rgba: 0
iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadFillPct: 100
iOSLaunchScreeniPadSize: 100 iOSLaunchScreeniPadSize: 100
iOSLaunchScreeniPadCustomXibPath:
iOSLaunchScreenCustomStoryboardPath: iOSLaunchScreenCustomStoryboardPath:
iOSLaunchScreeniPadCustomStoryboardPath: iOSLaunchScreeniPadCustomStoryboardPath:
iOSDeviceRequirements: [] iOSDeviceRequirements: []
@@ -231,15 +238,16 @@ PlayerSettings:
iOSMetalForceHardShadows: 0 iOSMetalForceHardShadows: 0
metalEditorSupport: 1 metalEditorSupport: 1
metalAPIValidation: 1 metalAPIValidation: 1
metalCompileShaderBinary: 0
iOSRenderExtraFrameOnPause: 0 iOSRenderExtraFrameOnPause: 0
iosCopyPluginsCodeInsteadOfSymlink: 0 iosCopyPluginsCodeInsteadOfSymlink: 0
appleDeveloperTeamID: appleDeveloperTeamID:
iOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileID:
tvOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID:
bratwurstManualSigningProvisioningProfileID: VisionOSManualSigningProvisioningProfileID:
iOSManualSigningProvisioningProfileType: 0 iOSManualSigningProvisioningProfileType: 0
tvOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0
bratwurstManualSigningProvisioningProfileType: 0 VisionOSManualSigningProvisioningProfileType: 0
appleEnableAutomaticSigning: 0 appleEnableAutomaticSigning: 0
iOSRequireARKit: 0 iOSRequireARKit: 0
iOSAutomaticallyDetectAndAddCapabilities: 1 iOSAutomaticallyDetectAndAddCapabilities: 1
@@ -257,7 +265,7 @@ PlayerSettings:
useCustomGradleSettingsTemplate: 0 useCustomGradleSettingsTemplate: 0
useCustomProguardFile: 0 useCustomProguardFile: 0
AndroidTargetArchitectures: 1 AndroidTargetArchitectures: 1
AndroidTargetDevices: 0 AndroidAllowedArchitectures: -1
AndroidSplashScreenScale: 0 AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0} androidSplashScreen: {fileID: 0}
AndroidKeystoreName: AndroidKeystoreName:
@@ -267,6 +275,9 @@ PlayerSettings:
AndroidBuildApkPerCpuArchitecture: 0 AndroidBuildApkPerCpuArchitecture: 0
AndroidTVCompatibility: 0 AndroidTVCompatibility: 0
AndroidIsGame: 1 AndroidIsGame: 1
androidAppCategory: 3
useAndroidAppCategory: 1
androidAppCategoryOther:
AndroidEnableTango: 0 AndroidEnableTango: 0
androidEnableBanner: 1 androidEnableBanner: 1
androidUseLowAccuracyLocation: 0 androidUseLowAccuracyLocation: 0
@@ -276,12 +287,12 @@ PlayerSettings:
height: 180 height: 180
banner: {fileID: 0} banner: {fileID: 0}
androidGamepadSupportLevel: 0 androidGamepadSupportLevel: 0
chromeosInputEmulation: 1
AndroidMinifyRelease: 0 AndroidMinifyRelease: 0
AndroidMinifyDebug: 0 AndroidMinifyDebug: 0
AndroidValidateAppBundleSize: 1 AndroidValidateAppBundleSize: 1
AndroidAppBundleSizeToValidate: 150 AndroidAppBundleSizeToValidate: 150
AndroidReportGooglePlayAppDependencies: 1 AndroidReportGooglePlayAppDependencies: 1
androidSymbolsSizeThreshold: 800
m_BuildTargetIcons: m_BuildTargetIcons:
- m_BuildTarget: - m_BuildTarget:
m_Icons: m_Icons:
@@ -426,6 +437,9 @@ PlayerSettings:
- m_BuildTarget: iOSSupport - m_BuildTarget: iOSSupport
m_APIs: 10000000 m_APIs: 10000000
m_Automatic: 1 m_Automatic: 1
- m_BuildTarget: WindowsStandaloneSupport
m_APIs: 0200000012000000
m_Automatic: 0
m_BuildTargetVRSettings: [] m_BuildTargetVRSettings: []
m_DefaultShaderChunkSizeInMB: 16 m_DefaultShaderChunkSizeInMB: 16
m_DefaultShaderChunkCount: 0 m_DefaultShaderChunkCount: 0
@@ -446,6 +460,7 @@ PlayerSettings:
playModeTestRunnerEnabled: 0 playModeTestRunnerEnabled: 0
runPlayModeTestAsEditModeTest: 0 runPlayModeTestAsEditModeTest: 0
actionOnDotNetUnhandledException: 1 actionOnDotNetUnhandledException: 1
editorGfxJobOverride: 1
enableInternalProfiler: 0 enableInternalProfiler: 0
logObjCUncaughtExceptions: 1 logObjCUncaughtExceptions: 1
enableCrashReportAPI: 0 enableCrashReportAPI: 0
@@ -453,7 +468,7 @@ PlayerSettings:
locationUsageDescription: locationUsageDescription:
microphoneUsageDescription: microphoneUsageDescription:
bluetoothUsageDescription: bluetoothUsageDescription:
macOSTargetOSVersion: 10.13.0 macOSTargetOSVersion: 12.0
switchNMETAOverride: switchNMETAOverride:
switchNetLibKey: switchNetLibKey:
switchSocketMemoryPoolSize: 6144 switchSocketMemoryPoolSize: 6144
@@ -598,6 +613,7 @@ PlayerSettings:
switchEnableRamDiskSupport: 0 switchEnableRamDiskSupport: 0
switchMicroSleepForYieldTime: 25 switchMicroSleepForYieldTime: 25
switchRamDiskSpaceSize: 12 switchRamDiskSpaceSize: 12
switchUpgradedPlayerSettingsToNMETA: 0
ps4NPAgeRating: 12 ps4NPAgeRating: 12
ps4NPTitleSecret: ps4NPTitleSecret:
ps4NPTrophyPackPath: ps4NPTrophyPackPath:
@@ -700,11 +716,12 @@ PlayerSettings:
webGLMemoryLinearGrowthStep: 16 webGLMemoryLinearGrowthStep: 16
webGLMemoryGeometricGrowthStep: 0.2 webGLMemoryGeometricGrowthStep: 0.2
webGLMemoryGeometricGrowthCap: 96 webGLMemoryGeometricGrowthCap: 96
webGLEnableWebGPU: 0
webGLPowerPreference: 2 webGLPowerPreference: 2
webGLWebAssemblyTable: 0 webGLWebAssemblyTable: 0
webGLWebAssemblyBigInt: 0 webGLWebAssemblyBigInt: 0
webGLCloseOnQuit: 0 webGLCloseOnQuit: 0
webWasm2023: 0
webEnableSubmoduleStrippingCompatibility: 0
scriptingDefineSymbols: {} scriptingDefineSymbols: {}
additionalCompilerArguments: {} additionalCompilerArguments: {}
platformArchitecture: {} platformArchitecture: {}
@@ -759,6 +776,7 @@ PlayerSettings:
metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
metroSplashScreenUseBackgroundColor: 0 metroSplashScreenUseBackgroundColor: 0
syncCapabilities: 0
platformCapabilities: {} platformCapabilities: {}
metroTargetDeviceFamilies: {} metroTargetDeviceFamilies: {}
metroFTAName: metroFTAName:
@@ -815,6 +833,7 @@ PlayerSettings:
captureStartupLogs: {} captureStartupLogs: {}
activeInputHandler: 2 activeInputHandler: 2
windowsGamepadBackendHint: 0 windowsGamepadBackendHint: 0
enableDirectStorage: 0
cloudProjectId: cloudProjectId:
framebufferDepthMemorylessMode: 0 framebufferDepthMemorylessMode: 0
qualitySettingsNames: [] qualitySettingsNames: []
@@ -826,3 +845,8 @@ PlayerSettings:
platformRequiresReadableAssets: 0 platformRequiresReadableAssets: 0
virtualTexturingSupportEnabled: 0 virtualTexturingSupportEnabled: 0
insecureHttpOption: 0 insecureHttpOption: 0
androidVulkanDenyFilterList: []
androidVulkanAllowFilterList: []
androidVulkanDeviceFilterListAsset: {fileID: 0}
d3d12DeviceFilterListAsset: {fileID: 0}
allowedHttpConnections: 3
+28 -69
View File
@@ -4,164 +4,123 @@
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.AnimationClip", "type": "UnityEngine.AnimationClip",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEditor.Animations.AnimatorController", "type": "UnityEditor.Animations.AnimatorController",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.AnimatorOverrideController", "type": "UnityEngine.AnimatorOverrideController",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEditor.Audio.AudioMixerController", "type": "UnityEditor.Audio.AudioMixerController",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.ComputeShader", "type": "UnityEngine.ComputeShader",
"ignore": true, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Cubemap", "type": "UnityEngine.Cubemap",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.GameObject", "type": "UnityEngine.GameObject",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEditor.LightingDataAsset", "type": "UnityEditor.LightingDataAsset",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": false
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.LightingSettings", "type": "UnityEngine.LightingSettings",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Material", "type": "UnityEngine.Material",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEditor.MonoScript", "type": "UnityEditor.MonoScript",
"ignore": true, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.PhysicMaterial", "type": "UnityEngine.PhysicMaterial",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0, },
"supportsModification": true {
"userAdded": false,
"type": "UnityEngine.PhysicsMaterial",
"defaultInstantiationMode": 0
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.PhysicsMaterial2D", "type": "UnityEngine.PhysicsMaterial2D",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Rendering.VolumeProfile", "type": "UnityEngine.Rendering.VolumeProfile",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEditor.SceneAsset", "type": "UnityEditor.SceneAsset",
"ignore": false, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Shader", "type": "UnityEngine.Shader",
"ignore": true, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.ShaderVariantCollection", "type": "UnityEngine.ShaderVariantCollection",
"ignore": true, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Texture", "type": "UnityEngine.Texture",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Texture2D", "type": "UnityEngine.Texture2D",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
}, },
{ {
"userAdded": false, "userAdded": false,
"type": "UnityEngine.Timeline.TimelineAsset", "type": "UnityEngine.Timeline.TimelineAsset",
"ignore": false, "defaultInstantiationMode": 0
"defaultInstantiationMode": 0,
"supportsModification": true
} }
], ],
"defaultDependencyTypeInfo": { "defaultDependencyTypeInfo": {
"userAdded": false, "userAdded": false,
"type": "<default_scene_template_dependencies>", "type": "<default_scene_template_dependencies>",
"ignore": false, "defaultInstantiationMode": 1
"defaultInstantiationMode": 1,
"supportsModification": true
}, },
"newSceneOverride": 0 "newSceneOverride": 0
} }
@@ -12,5 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
shaderVariantLimit: 2048
overrideShaderVariantLimit: 0
customInterpolatorErrorThreshold: 32 customInterpolatorErrorThreshold: 32
customInterpolatorWarningThreshold: 16 customInterpolatorWarningThreshold: 16
customHeatmapValues: {fileID: 0}
+2 -1
View File
@@ -12,4 +12,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_LastMaterialVersion: 9 m_LastMaterialVersion: 10
m_ProjectSettingFolderPath: URPDefaultResources