Compare commits
6 Commits
input_mode
...
7fc3ca12f3
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fc3ca12f3 | |||
| abeb5060f9 | |||
| f380b6fa54 | |||
| b781a1656d | |||
| 47d942d176 | |||
| e878a32263 |
BIN
Assets/Art/Textures/MenuIcon_PLACEHOLDER.png
Normal file
BIN
Assets/Art/Textures/MenuIcon_PLACEHOLDER.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.0 KiB |
195
Assets/Art/Textures/MenuIcon_PLACEHOLDER.png.meta
Normal file
195
Assets/Art/Textures/MenuIcon_PLACEHOLDER.png.meta
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0a391f68acfee1041a26723b1dafb73b
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 1108211999407853544
|
||||||
|
second: MenuIcon_PLACEHOLDER_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: iOS
|
||||||
|
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: Android
|
||||||
|
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
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WebGL
|
||||||
|
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: WindowsStoreApps
|
||||||
|
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: MenuIcon_PLACEHOLDER_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 9
|
||||||
|
y: 8
|
||||||
|
width: 239
|
||||||
|
height: 240
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: 8efc78021f8216f00800000000000000
|
||||||
|
internalID: 1108211999407853544
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
MenuIcon_PLACEHOLDER_0: 1108211999407853544
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -18,3 +18,5 @@ MonoBehaviour:
|
|||||||
- {fileID: 458265635552197097, guid: a77d1e8b2fa8aa945a6f39b312536e0d, type: 3}
|
- {fileID: 458265635552197097, guid: a77d1e8b2fa8aa945a6f39b312536e0d, type: 3}
|
||||||
- {fileID: 552225285624929822, guid: e39992796d5459442be9967c77e27066, type: 3}
|
- {fileID: 552225285624929822, guid: e39992796d5459442be9967c77e27066, type: 3}
|
||||||
- {fileID: 7644433920135100480, guid: 12d242e44fe80ab44af852254b7cab0f, type: 3}
|
- {fileID: 7644433920135100480, guid: 12d242e44fe80ab44af852254b7cab0f, type: 3}
|
||||||
|
- {fileID: 1794231825201849485, guid: 6fb0d7fc6faad154b8c3e3cb7abb7c15, type: 3}
|
||||||
|
- {fileID: 6399527186463168339, guid: ac41583865245bc4bb3de6c15929b9fc, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Chocolate
|
m_Name: Chocolate
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: chocolate_4f2011c6
|
||||||
itemName: Chocolate
|
itemName: Chocolate
|
||||||
description: sweet nectar of gods that lures the beasts from bushes
|
description: sweet nectar of gods that lures the beasts from bushes
|
||||||
mapSprite: {fileID: -509776585262497855, guid: c648336c825f7d7479582bbe4d95d0bc, type: 3}
|
mapSprite: {fileID: -509776585262497855, guid: c648336c825f7d7479582bbe4d95d0bc, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: LureSpotB
|
m_Name: LureSpotB
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: lurespotb_92c24cf9
|
||||||
itemName: LureSpotB
|
itemName: LureSpotB
|
||||||
description: Place where we atract the chocobird
|
description: Place where we atract the chocobird
|
||||||
mapSprite: {fileID: 2640071299338251634, guid: 7c4c9881382767047aac78ca51b82923, type: 3}
|
mapSprite: {fileID: 2640071299338251634, guid: 7c4c9881382767047aac78ca51b82923, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Ass
|
m_Name: Ass
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: ass_41f5d715
|
||||||
itemName: TestAss
|
itemName: TestAss
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: -5471482676633547895, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
mapSprite: {fileID: -5471482676633547895, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Ass1
|
m_Name: Ass1
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
itemName: TestAss
|
_itemId: ass1_5469eaae
|
||||||
|
itemName: TestAss1
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: -5471482676633547895, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
mapSprite: {fileID: -5471482676633547895, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Ass2
|
m_Name: Ass2
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
itemName: TestAss
|
_itemId: ass2_c4e69d34
|
||||||
|
itemName: TestAss2
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: 4013237533433454447, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
mapSprite: {fileID: 4013237533433454447, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Ass3
|
m_Name: Ass3
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
itemName: TestAss
|
_itemId: ass3_cb8f9cfb
|
||||||
|
itemName: TestAss3
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: -8109988653212156562, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
mapSprite: {fileID: -8109988653212156562, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Axe
|
m_Name: Axe
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: axe_bf031e9e
|
||||||
itemName: Axe
|
itemName: Axe
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: 6674386295937086461, guid: 3bd1c178a78fcd144965cd1731dc309b, type: 3}
|
mapSprite: {fileID: 6674386295937086461, guid: 3bd1c178a78fcd144965cd1731dc309b, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Bonfire
|
m_Name: Bonfire
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: bonfire_818563eb
|
||||||
itemName: Bonfire
|
itemName: Bonfire
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: 6277786745957211492, guid: 016288f704d38e747a8eac9795051717, type: 3}
|
mapSprite: {fileID: 6277786745957211492, guid: 016288f704d38e747a8eac9795051717, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Head
|
m_Name: Head
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: head_c827d69b
|
||||||
itemName: Axe
|
itemName: Axe
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: -1693247529382600072, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
mapSprite: {fileID: -1693247529382600072, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Meat
|
m_Name: Meat
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: meat_6500cc13
|
||||||
itemName: Meat
|
itemName: Meat
|
||||||
description: Well... how do you like 'em?
|
description: Well... how do you like 'em?
|
||||||
mapSprite: {fileID: 6282751622250221668, guid: 204325ac88be74d4d882a078c64cf5e1, type: 3}
|
mapSprite: {fileID: 6282751622250221668, guid: 204325ac88be74d4d882a078c64cf5e1, type: 3}
|
||||||
|
|||||||
18
Assets/Data/Items/ExampleAss/PickupItemData.asset
Normal file
18
Assets/Data/Items/ExampleAss/PickupItemData.asset
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
|
m_Name: PickupItemData
|
||||||
|
m_EditorClassIdentifier: AppleHillsScripts::PickupItemData
|
||||||
|
_itemId: pickupitemdata_10de237f
|
||||||
|
itemName:
|
||||||
|
description:
|
||||||
|
mapSprite: {fileID: 0}
|
||||||
8
Assets/Data/Items/ExampleAss/PickupItemData.asset.meta
Normal file
8
Assets/Data/Items/ExampleAss/PickupItemData.asset.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b1cd8267212dd2349ad7e2b91ec5be11
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: FootballBall
|
m_Name: FootballBall
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: footballball_b37968c2
|
||||||
itemName: FootballBall
|
itemName: FootballBall
|
||||||
description: Ball that is used to attract the football bird.
|
description: Ball that is used to attract the football bird.
|
||||||
mapSprite: {fileID: -6720685004267932717, guid: 88acd207b6a9e114ca3d3e59ac3aa550, type: 3}
|
mapSprite: {fileID: -6720685004267932717, guid: 88acd207b6a9e114ca3d3e59ac3aa550, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: LureSpotA
|
m_Name: LureSpotA
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: lurespota_19a6cf7c
|
||||||
itemName: LureSpotA
|
itemName: LureSpotA
|
||||||
description: Place where we atract the footballbird
|
description: Place where we atract the footballbird
|
||||||
mapSprite: {fileID: -8438005379329254897, guid: fe735eb4f8856904caec179520dcb92f, type: 3}
|
mapSprite: {fileID: -8438005379329254897, guid: fe735eb4f8856904caec179520dcb92f, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: LureSpotC
|
m_Name: LureSpotC
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: lurespotc_559f54b7
|
||||||
itemName: LureSpotC
|
itemName: LureSpotC
|
||||||
description: Place where we atract the hammerbird
|
description: Place where we atract the hammerbird
|
||||||
mapSprite: {fileID: 3009302558630513478, guid: 3aefb78ee1b7f6e4685d0fff00e24e3d, type: 3}
|
mapSprite: {fileID: 3009302558630513478, guid: 3aefb78ee1b7f6e4685d0fff00e24e3d, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Nails
|
m_Name: Nails
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: nails_2ecaef33
|
||||||
itemName: Nails
|
itemName: Nails
|
||||||
description: Nails used to lure the hammer bird out.
|
description: Nails used to lure the hammer bird out.
|
||||||
mapSprite: {fileID: 21300000, guid: 34b9ddb77aae2df4ab489b7bb8f16cff, type: 3}
|
mapSprite: {fileID: 21300000, guid: 34b9ddb77aae2df4ab489b7bb8f16cff, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Bunfflers
|
m_Name: Bunfflers
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: bunfflers_07f2a135
|
||||||
itemName: Bunfflers
|
itemName: Bunfflers
|
||||||
description: Ear Mufflers made to put on the soundbird so it doesn't fly away.
|
description: Ear Mufflers made to put on the soundbird so it doesn't fly away.
|
||||||
mapSprite: {fileID: -8848419083337551572, guid: b285cfb6530624a44a95ec99a59d7215, type: 3}
|
mapSprite: {fileID: -8848419083337551572, guid: b285cfb6530624a44a95ec99a59d7215, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: BurgerBuns
|
m_Name: BurgerBuns
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: burgerbuns_4ccd8772
|
||||||
itemName: BurgerBuns
|
itemName: BurgerBuns
|
||||||
description: A pack of Burguer Buns, they need to be combined with the headband
|
description: A pack of Burguer Buns, they need to be combined with the headband
|
||||||
to get "Bunfflers"
|
to get "Bunfflers"
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: Headband
|
m_Name: Headband
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: headband_9a56f411
|
||||||
itemName: Headband
|
itemName: Headband
|
||||||
description: Item dropped by Uncle Kunt!
|
description: Item dropped by Uncle Kunt!
|
||||||
mapSprite: {fileID: 743298078511449570, guid: 6f463983177b1404ca39fa222f03a3b2, type: 3}
|
mapSprite: {fileID: 743298078511449570, guid: 6f463983177b1404ca39fa222f03a3b2, type: 3}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
m_Script: {fileID: 11500000, guid: 951b5c8af5114086a865d4bb7eae4548, type: 3}
|
||||||
m_Name: SoundBird
|
m_Name: SoundBird
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
_itemId: soundbird_16b17ba9
|
||||||
itemName: SoundBird
|
itemName: SoundBird
|
||||||
description: Objective Bird, escapes if player makes sound when close to it, stays
|
description: Objective Bird, escapes if player makes sound when close to it, stays
|
||||||
quiet if earmufflers are applied.
|
quiet if earmufflers are applied.
|
||||||
|
|||||||
8
Assets/Dialogue.meta
Normal file
8
Assets/Dialogue.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dcec43b1a5d809b4187eb91cabd6b657
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
695
Assets/Dialogue/TestDialogue.dialoguegraph
Normal file
695
Assets/Dialogue/TestDialogue.dialoguegraph
Normal file
@@ -0,0 +1,695 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &1
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 61
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 790b4d75d92f4b0984310a268dbd952f, type: 3}
|
||||||
|
m_Name: TestDialogue
|
||||||
|
m_EditorClassIdentifier: Unity.GraphToolkit.Editor::Unity.GraphToolkit.Editor.Implementation.GraphObjectImp
|
||||||
|
m_GraphModel:
|
||||||
|
rid: 1219994508087787734
|
||||||
|
references:
|
||||||
|
version: 2
|
||||||
|
RefIds:
|
||||||
|
- rid: -2
|
||||||
|
type: {class: , ns: , asm: }
|
||||||
|
- rid: 1219994508087787734
|
||||||
|
type: {class: GraphModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 12720528336768607292
|
||||||
|
m_Value1: 4541789886294233460
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 3c246244206588b074910791d6ad073f
|
||||||
|
m_Name:
|
||||||
|
m_GraphNodeModels:
|
||||||
|
- rid: 1219994508087787747
|
||||||
|
- rid: 1219994508087787749
|
||||||
|
- rid: 1219994508087787751
|
||||||
|
- rid: 1219994508087787764
|
||||||
|
- rid: 1219994508087787770
|
||||||
|
- rid: 1219994508087787776
|
||||||
|
m_GraphWireModels:
|
||||||
|
- rid: 1219994508087787755
|
||||||
|
- rid: 1219994508087787773
|
||||||
|
- rid: 1219994508087787779
|
||||||
|
- rid: 1219994508087787780
|
||||||
|
- rid: 1219994508087787813
|
||||||
|
m_GraphStickyNoteModels: []
|
||||||
|
m_GraphPlacematModels: []
|
||||||
|
m_GraphVariableModels:
|
||||||
|
- rid: 1219994508087787760
|
||||||
|
m_GraphPortalModels: []
|
||||||
|
m_SectionModels:
|
||||||
|
- rid: 1219994508087787735
|
||||||
|
m_LocalSubgraphs: []
|
||||||
|
m_LastKnownBounds:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 123
|
||||||
|
y: -65
|
||||||
|
width: 1698
|
||||||
|
height: 244
|
||||||
|
m_GraphElementMetaData:
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 13346176596883742728
|
||||||
|
m_Value1: 18083586785705260694
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 0820e35ee72437b996f6e8e25ecef5fa
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 0
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 356371523793864382
|
||||||
|
m_Value1: 4751895819492649258
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: be46cc430316f2042ae9853a1220f241
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 1
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 8593691416048532199
|
||||||
|
m_Value1: 6890539440515769320
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: e77ae5c2cfec4277e8e3c20e1d1da05f
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 2
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 7709580528075638554
|
||||||
|
m_Value1: 12466507236153719696
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 1a8737a7a4eefd6a907bc7e847ee01ad
|
||||||
|
m_Category: 2
|
||||||
|
m_Index: 0
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 13887651235662800591
|
||||||
|
m_Value1: 935957084791214113
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: cf26320a38d9bac02190fd7b0230fd0c
|
||||||
|
m_Category: 1
|
||||||
|
m_Index: 0
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 4225538081375705477
|
||||||
|
m_Value1: 10816025756629798206
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 85d948457f20a43a3e0d65b11e3e1a96
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 3
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 1990642935411556156
|
||||||
|
m_Value1: 16710028644464764280
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 3cbfd8ef332fa01b78a5ecc384f2e5e7
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 4
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 5477022009621441144
|
||||||
|
m_Value1: 13992127810305260154
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 786a7bce7f4a024c7afa1b291c062ec2
|
||||||
|
m_Category: 2
|
||||||
|
m_Index: 1
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 10537482371379217669
|
||||||
|
m_Value1: 805153394380735108
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 05c5ff0463a83c928482c30dbf7a2c0b
|
||||||
|
m_Category: 0
|
||||||
|
m_Index: 5
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 10238952115911916765
|
||||||
|
m_Value1: 16796494752743159762
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: ddfc297db310188ed2f7f768fc2219e9
|
||||||
|
m_Category: 2
|
||||||
|
m_Index: 2
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 10375816761084646535
|
||||||
|
m_Value1: 15824079162718769611
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 8794feea5e4efe8fcb5183af286c9adb
|
||||||
|
m_Category: 2
|
||||||
|
m_Index: 3
|
||||||
|
- m_Guid:
|
||||||
|
m_Value0: 10491986159911335451
|
||||||
|
m_Value1: 18287880145942505208
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 1b76d4d1d2059b91f866d271199acbfd
|
||||||
|
m_Category: 2
|
||||||
|
m_Index: 4
|
||||||
|
m_EntryPoint:
|
||||||
|
rid: 1219994508087787747
|
||||||
|
m_Graph:
|
||||||
|
rid: 1219994508087787736
|
||||||
|
- rid: 1219994508087787735
|
||||||
|
type: {class: SectionModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 12939578175715148634
|
||||||
|
m_Value1: 2855330721591447007
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 5a03e642cb9d92b3dfcdb7c0292ca027
|
||||||
|
m_Version: 2
|
||||||
|
m_Items:
|
||||||
|
- rid: 1219994508087787760
|
||||||
|
m_Title:
|
||||||
|
- rid: 1219994508087787736
|
||||||
|
type: {class: DialogueGraph, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787747
|
||||||
|
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 13346176596883742728
|
||||||
|
m_Value1: 18083586785705260694
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 0820e35ee72437b996f6e8e25ecef5fa
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 316.4595, y: -65.01193}
|
||||||
|
m_Title:
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList:
|
||||||
|
- SpeakerName
|
||||||
|
m_ValueList:
|
||||||
|
- rid: 1219994508087787766
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_Node:
|
||||||
|
rid: 1219994508087787748
|
||||||
|
- rid: 1219994508087787748
|
||||||
|
type: {class: StartNode, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787749
|
||||||
|
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 356371523793864382
|
||||||
|
m_Value1: 4751895819492649258
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: be46cc430316f2042ae9853a1220f241
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 1707.9503, y: -59.602116}
|
||||||
|
m_Title:
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList: []
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_Node:
|
||||||
|
rid: 1219994508087787750
|
||||||
|
- rid: 1219994508087787750
|
||||||
|
type: {class: EndNode, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787751
|
||||||
|
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 8593691416048532199
|
||||||
|
m_Value1: 6890539440515769320
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: e77ae5c2cfec4277e8e3c20e1d1da05f
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 530.97986, y: -60.683594}
|
||||||
|
m_Title:
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList:
|
||||||
|
- __option_DialogueLineType
|
||||||
|
- __option_NoLines
|
||||||
|
- DefaultDialogueLine
|
||||||
|
- LoopThroughDefaultLines
|
||||||
|
m_ValueList:
|
||||||
|
- rid: 1219994508087787857
|
||||||
|
- rid: 1219994508087787858
|
||||||
|
- rid: 1219994508087787897
|
||||||
|
- rid: 1219994508087787904
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_Node:
|
||||||
|
rid: 1219994508087787752
|
||||||
|
- rid: 1219994508087787752
|
||||||
|
type: {class: DialogueNode, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787755
|
||||||
|
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 7709580528075638554
|
||||||
|
m_Value1: 12466507236153719696
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 1a8737a7a4eefd6a907bc7e847ee01ad
|
||||||
|
m_Version: 2
|
||||||
|
m_FromPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 13346176596883742728
|
||||||
|
m_Value1: 18083586785705260694
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 0820e35ee72437b996f6e8e25ecef5fa
|
||||||
|
m_UniqueId: out
|
||||||
|
m_PortDirection: 2
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: out
|
||||||
|
m_ToPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 8593691416048532199
|
||||||
|
m_Value1: 6890539440515769320
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: e77ae5c2cfec4277e8e3c20e1d1da05f
|
||||||
|
m_UniqueId: in
|
||||||
|
m_PortDirection: 1
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: in
|
||||||
|
- rid: 1219994508087787760
|
||||||
|
type: {class: VariableDeclarationModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 13887651235662800591
|
||||||
|
m_Value1: 935957084791214113
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: cf26320a38d9bac02190fd7b0230fd0c
|
||||||
|
m_Version: 2
|
||||||
|
m_Name: Anna-Lyse
|
||||||
|
m_UniqueId:
|
||||||
|
m_DataType:
|
||||||
|
m_Identification: System.String, System.Private.CoreLib, Version=4.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=b77a5c561934e089
|
||||||
|
m_IsExposed: 0
|
||||||
|
m_Scope: 0
|
||||||
|
m_ShowOnInspectorOnly: 0
|
||||||
|
m_Tooltip:
|
||||||
|
m_InitializationValue:
|
||||||
|
rid: 1219994508087787761
|
||||||
|
m_Modifiers: 0
|
||||||
|
m_VariableFlags: 0
|
||||||
|
- rid: 1219994508087787761
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: Anna-Lyse
|
||||||
|
- rid: 1219994508087787764
|
||||||
|
type: {class: VariableNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 4225538081375705477
|
||||||
|
m_Value1: 10816025756629798206
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 85d948457f20a43a3e0d65b11e3e1a96
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 123.485, y: -64.61}
|
||||||
|
m_Title: Anna-Lyse
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList: []
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_DeclarationModel:
|
||||||
|
rid: 1219994508087787760
|
||||||
|
m_DeclarationModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: cf26320a38d9bac02190fd7b0230fd0c
|
||||||
|
- rid: 1219994508087787766
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value:
|
||||||
|
- rid: 1219994508087787770
|
||||||
|
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 1990642935411556156
|
||||||
|
m_Value1: 16710028644464764280
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 3cbfd8ef332fa01b78a5ecc384f2e5e7
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 914.5827, y: -58.93837}
|
||||||
|
m_Title: DialogueNode
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList:
|
||||||
|
- __option_DialogueLineType
|
||||||
|
- __option_NoLines
|
||||||
|
- DefaultDialogueLine1
|
||||||
|
- DefaultDialogueLine2
|
||||||
|
- DefaultDialogueLine3
|
||||||
|
- LoopThroughDefaultLines
|
||||||
|
m_ValueList:
|
||||||
|
- rid: 1219994508087787860
|
||||||
|
- rid: 1219994508087787861
|
||||||
|
- rid: 1219994508087787900
|
||||||
|
- rid: 1219994508087787901
|
||||||
|
- rid: 1219994508087787902
|
||||||
|
- rid: 1219994508087787905
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_Node:
|
||||||
|
rid: 1219994508087787772
|
||||||
|
- rid: 1219994508087787772
|
||||||
|
type: {class: DialogueNode, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787773
|
||||||
|
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 5477022009621441144
|
||||||
|
m_Value1: 13992127810305260154
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 786a7bce7f4a024c7afa1b291c062ec2
|
||||||
|
m_Version: 2
|
||||||
|
m_FromPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 8593691416048532199
|
||||||
|
m_Value1: 6890539440515769320
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: e77ae5c2cfec4277e8e3c20e1d1da05f
|
||||||
|
m_UniqueId: out
|
||||||
|
m_PortDirection: 2
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: out
|
||||||
|
m_ToPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 1990642935411556156
|
||||||
|
m_Value1: 16710028644464764280
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 3cbfd8ef332fa01b78a5ecc384f2e5e7
|
||||||
|
m_UniqueId: in
|
||||||
|
m_PortDirection: 1
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: in
|
||||||
|
- rid: 1219994508087787776
|
||||||
|
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: Unity.GraphToolkit.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 10537482371379217669
|
||||||
|
m_Value1: 805153394380735108
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 05c5ff0463a83c928482c30dbf7a2c0b
|
||||||
|
m_Version: 2
|
||||||
|
m_Position: {x: 1294.008, y: -60.75061}
|
||||||
|
m_Title: DialogueNode
|
||||||
|
m_Tooltip:
|
||||||
|
m_NodePreviewModel:
|
||||||
|
rid: -2
|
||||||
|
m_State: 0
|
||||||
|
m_InputConstantsById:
|
||||||
|
m_KeyList:
|
||||||
|
- __option_DialogueLineType
|
||||||
|
- __option_NoLines
|
||||||
|
- DefaultDialogueLine
|
||||||
|
- LoopThroughDefaultLines
|
||||||
|
m_ValueList:
|
||||||
|
- rid: 1219994508087787863
|
||||||
|
- rid: 1219994508087787864
|
||||||
|
- rid: 1219994508087787898
|
||||||
|
- rid: 1219994508087787906
|
||||||
|
m_InputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_OutputPortInfos:
|
||||||
|
expandedPortsById:
|
||||||
|
m_KeyList: []
|
||||||
|
m_ValueList:
|
||||||
|
m_Collapsed: 0
|
||||||
|
m_CurrentModeIndex: 0
|
||||||
|
m_ElementColor:
|
||||||
|
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
m_HasUserColor: 0
|
||||||
|
m_Node:
|
||||||
|
rid: 1219994508087787778
|
||||||
|
- rid: 1219994508087787778
|
||||||
|
type: {class: DialogueNode, ns: Editor.Dialogue, asm: AppleHillsEditor}
|
||||||
|
data:
|
||||||
|
- rid: 1219994508087787779
|
||||||
|
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 10238952115911916765
|
||||||
|
m_Value1: 16796494752743159762
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: ddfc297db310188ed2f7f768fc2219e9
|
||||||
|
m_Version: 2
|
||||||
|
m_FromPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 1990642935411556156
|
||||||
|
m_Value1: 16710028644464764280
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 3cbfd8ef332fa01b78a5ecc384f2e5e7
|
||||||
|
m_UniqueId: out
|
||||||
|
m_PortDirection: 2
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: out
|
||||||
|
m_ToPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 10537482371379217669
|
||||||
|
m_Value1: 805153394380735108
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 05c5ff0463a83c928482c30dbf7a2c0b
|
||||||
|
m_UniqueId: in
|
||||||
|
m_PortDirection: 1
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: in
|
||||||
|
- rid: 1219994508087787780
|
||||||
|
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 10375816761084646535
|
||||||
|
m_Value1: 15824079162718769611
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 8794feea5e4efe8fcb5183af286c9adb
|
||||||
|
m_Version: 2
|
||||||
|
m_FromPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 10537482371379217669
|
||||||
|
m_Value1: 805153394380735108
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 05c5ff0463a83c928482c30dbf7a2c0b
|
||||||
|
m_UniqueId: out
|
||||||
|
m_PortDirection: 2
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: out
|
||||||
|
m_ToPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 356371523793864382
|
||||||
|
m_Value1: 4751895819492649258
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: be46cc430316f2042ae9853a1220f241
|
||||||
|
m_UniqueId: in
|
||||||
|
m_PortDirection: 1
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: in
|
||||||
|
- rid: 1219994508087787813
|
||||||
|
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Guid:
|
||||||
|
m_Value0: 10491986159911335451
|
||||||
|
m_Value1: 18287880145942505208
|
||||||
|
m_HashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 1b76d4d1d2059b91f866d271199acbfd
|
||||||
|
m_Version: 2
|
||||||
|
m_FromPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 4225538081375705477
|
||||||
|
m_Value1: 10816025756629798206
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 85d948457f20a43a3e0d65b11e3e1a96
|
||||||
|
m_UniqueId: MainPortName
|
||||||
|
m_PortDirection: 2
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: MainPortName
|
||||||
|
m_ToPortReference:
|
||||||
|
m_NodeModelGuid:
|
||||||
|
m_Value0: 13346176596883742728
|
||||||
|
m_Value1: 18083586785705260694
|
||||||
|
m_NodeModelHashGuid:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 0820e35ee72437b996f6e8e25ecef5fa
|
||||||
|
m_UniqueId: SpeakerName
|
||||||
|
m_PortDirection: 1
|
||||||
|
m_PortOrientation: 0
|
||||||
|
m_Title: SpeakerName
|
||||||
|
- rid: 1219994508087787857
|
||||||
|
type: {class: EnumConstant, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value:
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
m_Value: 0
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
- rid: 1219994508087787858
|
||||||
|
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 1
|
||||||
|
- rid: 1219994508087787860
|
||||||
|
type: {class: EnumConstant, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value:
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
m_Value: 1
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
- rid: 1219994508087787861
|
||||||
|
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 3
|
||||||
|
- rid: 1219994508087787863
|
||||||
|
type: {class: EnumConstant, ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value:
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
m_Value: 0
|
||||||
|
m_EnumType:
|
||||||
|
m_Identification: Editor.Dialogue.DialogueType, AppleHillsEditor, Version=0.0.0.0,
|
||||||
|
Culture=neutral, PublicKeyToken=null
|
||||||
|
- rid: 1219994508087787864
|
||||||
|
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 1
|
||||||
|
- rid: 1219994508087787897
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: This is a test line
|
||||||
|
- rid: 1219994508087787898
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: Another regular line
|
||||||
|
- rid: 1219994508087787900
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: One multiline
|
||||||
|
- rid: 1219994508087787901
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: Two multiline
|
||||||
|
- rid: 1219994508087787902
|
||||||
|
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: Three multiline
|
||||||
|
- rid: 1219994508087787904
|
||||||
|
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 1219994508087787905
|
||||||
|
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 0
|
||||||
|
- rid: 1219994508087787906
|
||||||
|
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: Unity.GraphToolkit.Internal.Editor}
|
||||||
|
data:
|
||||||
|
m_Value: 0
|
||||||
7
Assets/Dialogue/TestDialogue.dialoguegraph.meta
Normal file
7
Assets/Dialogue/TestDialogue.dialoguegraph.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9050f99a225035b40b415df272d2b341
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -4,7 +4,9 @@
|
|||||||
"references": [
|
"references": [
|
||||||
"GUID:d91d3f46515a6954caa674697afbf416",
|
"GUID:d91d3f46515a6954caa674697afbf416",
|
||||||
"GUID:69448af7b92c7f342b298e06a37122aa",
|
"GUID:69448af7b92c7f342b298e06a37122aa",
|
||||||
"GUID:9e24947de15b9834991c9d8411ea37cf"
|
"GUID:9e24947de15b9834991c9d8411ea37cf",
|
||||||
|
"GUID:70ef9a24f4cfc4aec911c1414e3f90ad",
|
||||||
|
"GUID:d1e08c06f8f9473888c892637c83c913"
|
||||||
],
|
],
|
||||||
"includePlatforms": [
|
"includePlatforms": [
|
||||||
"Editor"
|
"Editor"
|
||||||
|
|||||||
3
Assets/Editor/Dialogue.meta
Normal file
3
Assets/Editor/Dialogue.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5ced9daeaad4427f9feb953a53b6d3df
|
||||||
|
timeCreated: 1758869763
|
||||||
20
Assets/Editor/Dialogue/DialogueGraph.cs
Normal file
20
Assets/Editor/Dialogue/DialogueGraph.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEditor;
|
||||||
|
using Unity.GraphToolkit.Editor;
|
||||||
|
|
||||||
|
namespace Editor.Dialogue
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
[Graph(AssetExtension)]
|
||||||
|
public class DialogueGraph : Graph
|
||||||
|
{
|
||||||
|
public const string AssetExtension = "dialoguegraph";
|
||||||
|
|
||||||
|
[MenuItem("Assets/Create/Dialogue Graph", false)]
|
||||||
|
private static void CreateAssetFile()
|
||||||
|
{
|
||||||
|
GraphDatabase.PromptInProjectBrowserToCreateNewAsset<DialogueGraph>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Editor/Dialogue/DialogueGraph.cs.meta
Normal file
3
Assets/Editor/Dialogue/DialogueGraph.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eff5cdbb7a22496e93560cffa5754029
|
||||||
|
timeCreated: 1758869773
|
||||||
246
Assets/Editor/Dialogue/DialogueGraphImporter.cs
Normal file
246
Assets/Editor/Dialogue/DialogueGraphImporter.cs
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEditor.AssetImporters;
|
||||||
|
using Unity.GraphToolkit.Editor;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Dialogue;
|
||||||
|
using PuzzleS;
|
||||||
|
|
||||||
|
namespace Editor.Dialogue
|
||||||
|
{
|
||||||
|
[ScriptedImporter(1, DialogueGraph.AssetExtension)]
|
||||||
|
public class DialogueGraphImporter : ScriptedImporter
|
||||||
|
{
|
||||||
|
public override void OnImportAsset(AssetImportContext ctx)
|
||||||
|
{
|
||||||
|
DialogueGraph editorGraph = GraphDatabase.LoadGraphForImporter<DialogueGraph>(ctx.assetPath);
|
||||||
|
RuntimeDialogueGraph runtimeGraph = ScriptableObject.CreateInstance<RuntimeDialogueGraph>();
|
||||||
|
var nodeIDMap = new Dictionary<INode, string>();
|
||||||
|
|
||||||
|
// Generate stable GUIDs for each node
|
||||||
|
foreach (var node in editorGraph.GetNodes())
|
||||||
|
{
|
||||||
|
nodeIDMap[node] = Guid.NewGuid().ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process start node to get entry point and speaker name
|
||||||
|
var startNode = editorGraph.GetNodes().OfType<StartNode>().FirstOrDefault();
|
||||||
|
if (startNode != null)
|
||||||
|
{
|
||||||
|
var entryPoint = startNode.GetOutputPorts().FirstOrDefault()?.firstConnectedPort;
|
||||||
|
if (entryPoint != null)
|
||||||
|
{
|
||||||
|
runtimeGraph.entryNodeID = nodeIDMap[entryPoint.GetNode()];
|
||||||
|
}
|
||||||
|
|
||||||
|
runtimeGraph.speakerName = GetPortValue<string>(startNode.GetInputPortByName("SpeakerName"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process each node in the graph
|
||||||
|
foreach (var iNode in editorGraph.GetNodes())
|
||||||
|
{
|
||||||
|
if (iNode is StartNode || iNode is IVariableNode)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var runtimeNode = new RuntimeDialogueNode{ nodeID = nodeIDMap[iNode] };
|
||||||
|
|
||||||
|
// Process node based on its type
|
||||||
|
if (iNode is DialogueNode dialogueNode)
|
||||||
|
{
|
||||||
|
if (iNode is WaitOnPuzzleStep puzzleNode)
|
||||||
|
{
|
||||||
|
ProcessPuzzleNode(puzzleNode, runtimeNode);
|
||||||
|
}
|
||||||
|
else if (iNode is WaitOnPickup pickupNode)
|
||||||
|
{
|
||||||
|
ProcessPickupNode(pickupNode, runtimeNode);
|
||||||
|
}
|
||||||
|
else if (iNode is WaitOnSlot slotNode)
|
||||||
|
{
|
||||||
|
ProcessSlotNode(slotNode, runtimeNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process base dialogue node properties (for all node types)
|
||||||
|
ProcessDialogueNodeBase(dialogueNode, runtimeNode);
|
||||||
|
}
|
||||||
|
else if (iNode is EndNode)
|
||||||
|
{
|
||||||
|
runtimeNode.nodeType = RuntimeDialogueNodeType.End;
|
||||||
|
// End nodes don't have next nodes, so we don't need to look for "out" ports
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get next node connection (skip for EndNodes as they don't have out ports)
|
||||||
|
if (!(iNode is EndNode))
|
||||||
|
{
|
||||||
|
// Check if the node has output ports before trying to get one by name
|
||||||
|
var outputPorts = iNode.GetOutputPorts();
|
||||||
|
if (outputPorts != null && outputPorts.Any())
|
||||||
|
{
|
||||||
|
var outPort = outputPorts.FirstOrDefault(p => p.name == "out");
|
||||||
|
if (outPort != null && outPort.firstConnectedPort != null)
|
||||||
|
{
|
||||||
|
runtimeNode.nextNodeID = nodeIDMap[outPort.firstConnectedPort.GetNode()];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add node to runtime graph
|
||||||
|
runtimeGraph.allNodes.Add(runtimeNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.AddObjectToAsset("RuntimeData", runtimeGraph);
|
||||||
|
ctx.SetMainObject(runtimeGraph);
|
||||||
|
|
||||||
|
Debug.Log($"Imported DialogueGraph with {runtimeGraph.allNodes.Count} nodes.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessDialogueNodeBase(DialogueNode node, RuntimeDialogueNode runtimeNode)
|
||||||
|
{
|
||||||
|
// Set default node type
|
||||||
|
runtimeNode.nodeType = RuntimeDialogueNodeType.Dialogue;
|
||||||
|
|
||||||
|
// Get line type and count options
|
||||||
|
var lineTypeOption = node.GetNodeOptionByName("DialogueLineType");
|
||||||
|
lineTypeOption.TryGetValue<DialogueType>(out var lineType);
|
||||||
|
|
||||||
|
var lineCountOption = node.GetNodeOptionByName("NoLines");
|
||||||
|
lineCountOption.TryGetValue<int>(out var lineCount);
|
||||||
|
|
||||||
|
// Process dialogue lines based on line type
|
||||||
|
if (lineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < lineCount; i++)
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName($"DefaultDialogueLine{i + 1}"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.dialogueLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName("DefaultDialogueLine"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.dialogueLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get loop through lines option
|
||||||
|
var loopThroughLines = GetPortValue<bool>(node.GetInputPortByName("LoopThroughDefaultLines"));
|
||||||
|
runtimeNode.loopThroughLines = loopThroughLines;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessPuzzleNode(WaitOnPuzzleStep node, RuntimeDialogueNode runtimeNode)
|
||||||
|
{
|
||||||
|
runtimeNode.nodeType = RuntimeDialogueNodeType.WaitOnPuzzleStep;
|
||||||
|
|
||||||
|
var puzzleStep = GetPortValue<PuzzleStepSO>(node.GetInputPortByName("RequiredPuzzleStep"));
|
||||||
|
if (puzzleStep != null)
|
||||||
|
{
|
||||||
|
runtimeNode.puzzleStepID = puzzleStep.stepId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessPickupNode(WaitOnPickup node, RuntimeDialogueNode runtimeNode)
|
||||||
|
{
|
||||||
|
runtimeNode.nodeType = RuntimeDialogueNodeType.WaitOnPickup;
|
||||||
|
|
||||||
|
var pickup = GetPortValue<PickupItemData>(node.GetInputPortByName("RequiredPickup"));
|
||||||
|
if (pickup != null)
|
||||||
|
{
|
||||||
|
runtimeNode.pickupItemID = pickup.itemId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessSlotNode(WaitOnSlot node, RuntimeDialogueNode runtimeNode)
|
||||||
|
{
|
||||||
|
runtimeNode.nodeType = RuntimeDialogueNodeType.WaitOnSlot;
|
||||||
|
|
||||||
|
var slot = GetPortValue<PickupItemData>(node.GetInputPortByName("RequiredSlot"));
|
||||||
|
if (slot != null)
|
||||||
|
{
|
||||||
|
runtimeNode.slotItemID = slot.itemId;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process incorrect item lines
|
||||||
|
var incorrectItemLineTypeOption = node.GetNodeOptionByName("IncorrectItemDialogueLineType");
|
||||||
|
incorrectItemLineTypeOption.TryGetValue<DialogueType>(out var incorrectItemLineType);
|
||||||
|
|
||||||
|
var incorrectItemLineCountOption = node.GetNodeOptionByName("IncorrectItemNoLines");
|
||||||
|
incorrectItemLineCountOption.TryGetValue<int>(out var incorrectItemLineCount);
|
||||||
|
|
||||||
|
if (incorrectItemLineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < incorrectItemLineCount; i++)
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName($"IncorrectItemDialogueLine{i + 1}"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.incorrectItemLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName("IncorrectItemDialogueLine"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.incorrectItemLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
runtimeNode.loopThroughIncorrectLines =
|
||||||
|
GetPortValue<bool>(node.GetInputPortByName("LoopThroughIncorrectItemLines"));
|
||||||
|
|
||||||
|
// Process forbidden item lines
|
||||||
|
var forbiddenItemLineTypeOption = node.GetNodeOptionByName("ForbiddenItemDialogueLineType");
|
||||||
|
forbiddenItemLineTypeOption.TryGetValue<DialogueType>(out var forbiddenItemLineType);
|
||||||
|
|
||||||
|
var forbiddenItemLineCountOption = node.GetNodeOptionByName("ForbiddenItemNoLines");
|
||||||
|
forbiddenItemLineCountOption.TryGetValue<int>(out var forbiddenItemLineCount);
|
||||||
|
|
||||||
|
if (forbiddenItemLineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < forbiddenItemLineCount; i++)
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName($"ForbiddenItemDialogueLine{i + 1}"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.forbiddenItemLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var lineValue = GetPortValue<string>(node.GetInputPortByName("ForbiddenItemDialogueLine"));
|
||||||
|
if (!string.IsNullOrEmpty(lineValue))
|
||||||
|
{
|
||||||
|
runtimeNode.forbiddenItemLines.Add(lineValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
runtimeNode.loopThroughForbiddenLines =
|
||||||
|
GetPortValue<bool>(node.GetInputPortByName("LoopThroughForbiddenItemLines"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private T GetPortValue<T>(IPort port)
|
||||||
|
{
|
||||||
|
if (port == null) return default(T);
|
||||||
|
|
||||||
|
if (port.isConnected)
|
||||||
|
{
|
||||||
|
if (port.firstConnectedPort.GetNode() is IVariableNode variableNode)
|
||||||
|
{
|
||||||
|
variableNode.variable.TryGetDefaultValue(out T value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
port.TryGetValue(out T fallbackValue);
|
||||||
|
return fallbackValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Editor/Dialogue/DialogueGraphImporter.cs.meta
Normal file
3
Assets/Editor/Dialogue/DialogueGraphImporter.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a2334d3ee5254a2bbcb316035c681b27
|
||||||
|
timeCreated: 1758871584
|
||||||
196
Assets/Editor/Dialogue/DialogueNodes.cs
Normal file
196
Assets/Editor/Dialogue/DialogueNodes.cs
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using Unity.GraphToolkit.Editor;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Editor.Dialogue
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class StartNode : Node
|
||||||
|
{
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddOutputPort("out").Build();
|
||||||
|
|
||||||
|
context.AddInputPort<string>("SpeakerName").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class EndNode : Node
|
||||||
|
{
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddInputPort("in").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public enum DialogueType
|
||||||
|
{
|
||||||
|
SayOneLine,
|
||||||
|
SayMultipleLines
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class DialogueNode : Node
|
||||||
|
{
|
||||||
|
const string LineTypeOptionName = "DialogueLineType";
|
||||||
|
const string NoLinesOptionName = "NoLines";
|
||||||
|
const string LoopThroughDefaultLinesOptionName = "LoopThroughDefaultLines";
|
||||||
|
const string DefaultDialogueLineOptionName = "DefaultDialogueLine";
|
||||||
|
|
||||||
|
|
||||||
|
protected override void OnDefineOptions(IOptionDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddOption<DialogueType>(LineTypeOptionName)
|
||||||
|
.WithDisplayName("Default Line Type")
|
||||||
|
.WithDefaultValue(DialogueType.SayOneLine)
|
||||||
|
.Delayed();
|
||||||
|
|
||||||
|
|
||||||
|
context.AddOption<int>(NoLinesOptionName)
|
||||||
|
.WithDisplayName("Number of Default Lines")
|
||||||
|
.WithDefaultValue(1)
|
||||||
|
.Delayed();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddInputPort("in").Build();
|
||||||
|
context.AddOutputPort("out").Build();
|
||||||
|
|
||||||
|
var lineTypeOption = GetNodeOptionByName(LineTypeOptionName);
|
||||||
|
lineTypeOption.TryGetValue<DialogueType>(out var lineType);
|
||||||
|
var lineCountOption = GetNodeOptionByName(NoLinesOptionName);
|
||||||
|
lineCountOption.TryGetValue<int>(out var lineCount);
|
||||||
|
|
||||||
|
if (lineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < lineCount; i++)
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{DefaultDialogueLineOptionName}{i + 1}").WithDisplayName($"Default Dialogue Line {i + 1}").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{DefaultDialogueLineOptionName}").WithDisplayName("Default Dialogue Line").Build();
|
||||||
|
}
|
||||||
|
|
||||||
|
context.AddInputPort<bool>($"{LoopThroughDefaultLinesOptionName}").WithDisplayName("Loop Through Default Lines?").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class WaitOnPuzzleStep : DialogueNode
|
||||||
|
{
|
||||||
|
const string RequiredPuzzleStep = "RequiredPuzzleStep";
|
||||||
|
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddInputPort<PuzzleStepSO>(RequiredPuzzleStep).WithDisplayName("Required Puzzle Step").Build();
|
||||||
|
|
||||||
|
base.OnDefinePorts(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class WaitOnPickup : DialogueNode
|
||||||
|
{
|
||||||
|
const string RequiredPickupsOptionName = "RequiredPickup";
|
||||||
|
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddInputPort<PickupItemData>(RequiredPickupsOptionName).WithDisplayName("Required Pickup").Build();
|
||||||
|
|
||||||
|
base.OnDefinePorts(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class WaitOnSlot : DialogueNode
|
||||||
|
{
|
||||||
|
const string RequiredSlotOptionName = "RequiredSlot";
|
||||||
|
// Incorrect item - i.e. not the correct one but also not forbidden
|
||||||
|
const string IncorrectItemLineTypeOptionName = "IncorrectItemDialogueLineType";
|
||||||
|
const string IncorrectItemNoLinesOptionName = "IncorrectItemNoLines";
|
||||||
|
const string LoopThroughIncorrectItemLinesOptionName = "LoopThroughIncorrectItemLines";
|
||||||
|
const string IncorrectIteDialogueLineOptionName = "IncorrectItemDialogueLine";
|
||||||
|
// Explicitely forbidden item
|
||||||
|
const string ForbiddenItemLineTypeOptionName = "ForbiddenItemDialogueLineType";
|
||||||
|
const string ForbiddenItemNoLinesOptionName = "ForbiddenItemNoLines";
|
||||||
|
const string LoopThroughForbiddenItemLinesOptionName = "LoopThroughForbiddenItemLines";
|
||||||
|
const string ForbiddenIteDialogueLineOptionName = "ForbiddenItemDialogueLine";
|
||||||
|
|
||||||
|
protected override void OnDefineOptions(IOptionDefinitionContext context)
|
||||||
|
{
|
||||||
|
base.OnDefineOptions(context);
|
||||||
|
|
||||||
|
// Incorrect
|
||||||
|
context.AddOption<DialogueType>(IncorrectItemLineTypeOptionName)
|
||||||
|
.WithDisplayName("Incorrect Item Line Type")
|
||||||
|
.WithDefaultValue(DialogueType.SayOneLine)
|
||||||
|
.Delayed();
|
||||||
|
context.AddOption<int>(IncorrectItemNoLinesOptionName)
|
||||||
|
.WithDisplayName("Number of Incorrect Item Lines")
|
||||||
|
.WithDefaultValue(1)
|
||||||
|
.Delayed();
|
||||||
|
|
||||||
|
// Forbidden
|
||||||
|
context.AddOption<DialogueType>(ForbiddenItemLineTypeOptionName)
|
||||||
|
.WithDisplayName("Forbidden Item Line Type")
|
||||||
|
.WithDefaultValue(DialogueType.SayOneLine)
|
||||||
|
.Delayed();
|
||||||
|
context.AddOption<int>(ForbiddenItemNoLinesOptionName)
|
||||||
|
.WithDisplayName("Forbidden of Incorrect Item Lines")
|
||||||
|
.WithDefaultValue(1)
|
||||||
|
.Delayed();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDefinePorts(IPortDefinitionContext context)
|
||||||
|
{
|
||||||
|
context.AddInputPort<PickupItemData>(RequiredSlotOptionName).WithDisplayName("Required Slot").Build();
|
||||||
|
|
||||||
|
base.OnDefinePorts(context);
|
||||||
|
|
||||||
|
// Incorrect
|
||||||
|
var incorrectItemLineTypeOption = GetNodeOptionByName(IncorrectItemLineTypeOptionName);
|
||||||
|
incorrectItemLineTypeOption.TryGetValue<DialogueType>(out var incorrectItemLineType);
|
||||||
|
var incorrectItemLineCountOption = GetNodeOptionByName(IncorrectItemNoLinesOptionName);
|
||||||
|
incorrectItemLineCountOption.TryGetValue<int>(out var incorrectItemLineCount);
|
||||||
|
|
||||||
|
if (incorrectItemLineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < incorrectItemLineCount; i++)
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{IncorrectIteDialogueLineOptionName}{i + 1}").WithDisplayName($"Incorrect Item Dialogue Line {i + 1}").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{IncorrectIteDialogueLineOptionName}").WithDisplayName("Incorrect Item Dialogue Line").Build();
|
||||||
|
}
|
||||||
|
|
||||||
|
context.AddInputPort<bool>($"{LoopThroughIncorrectItemLinesOptionName}").WithDisplayName("Loop Through Incorrect Item Lines?").Build();
|
||||||
|
|
||||||
|
// Forbidden
|
||||||
|
var forbiddenItemLineTypeOption = GetNodeOptionByName(ForbiddenItemLineTypeOptionName);
|
||||||
|
forbiddenItemLineTypeOption.TryGetValue<DialogueType>(out var forbiddenItemLineType);
|
||||||
|
var forbiddenItemLineCountOption = GetNodeOptionByName(ForbiddenItemNoLinesOptionName);
|
||||||
|
forbiddenItemLineCountOption.TryGetValue<int>(out var forbiddenItemLineCount);
|
||||||
|
|
||||||
|
if (forbiddenItemLineType == DialogueType.SayMultipleLines)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < forbiddenItemLineCount; i++)
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{ForbiddenIteDialogueLineOptionName}{i + 1}").WithDisplayName($"Forbidden Item Dialogue Line {i + 1}").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.AddInputPort<string>($"{ForbiddenIteDialogueLineOptionName}").WithDisplayName("Forbidden Item Dialogue Line").Build();
|
||||||
|
}
|
||||||
|
|
||||||
|
context.AddInputPort<bool>($"{LoopThroughForbiddenItemLinesOptionName}").WithDisplayName("Loop Through Forbidden Item Lines?").Build();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Editor/Dialogue/DialogueNodes.cs.meta
Normal file
3
Assets/Editor/Dialogue/DialogueNodes.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a8b3213c46b447a9adc5627a273f2b2d
|
||||||
|
timeCreated: 1758870466
|
||||||
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
|||||||
"name": "PlayerTouchActions",
|
"name": "PlayerTouchActions",
|
||||||
"maps": [
|
"maps": [
|
||||||
{
|
{
|
||||||
"name": "DefaultActionMap",
|
"name": "PlayerTouch",
|
||||||
"id": "53d55b3c-f7c2-4706-a857-c615ecb16ff7",
|
"id": "53d55b3c-f7c2-4706-a857-c615ecb16ff7",
|
||||||
"actions": [
|
"actions": [
|
||||||
{
|
{
|
||||||
@@ -69,6 +69,522 @@
|
|||||||
"isPartOfComposite": false
|
"isPartOfComposite": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "UI",
|
||||||
|
"id": "12cf45dc-5cb9-4cc1-b345-1169f531df44",
|
||||||
|
"actions": [
|
||||||
|
{
|
||||||
|
"name": "Navigate",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "cef0a4a7-0193-44a6-bad9-f46ca2845c43",
|
||||||
|
"expectedControlType": "Vector2",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Submit",
|
||||||
|
"type": "Button",
|
||||||
|
"id": "843a4564-118d-44ea-8bd3-edcdc48f98c3",
|
||||||
|
"expectedControlType": "Button",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Cancel",
|
||||||
|
"type": "Button",
|
||||||
|
"id": "4a050dc0-bc3d-4941-aec6-d8d539f3e4b3",
|
||||||
|
"expectedControlType": "Button",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Point",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "a03cf960-cfac-495c-9344-de5f5ef44bba",
|
||||||
|
"expectedControlType": "Vector2",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Click",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "7e486236-0e6f-4f21-ade8-0ab696112f8e",
|
||||||
|
"expectedControlType": "Button",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "RightClick",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "09458b52-8a45-4617-a412-000ed647d359",
|
||||||
|
"expectedControlType": "Button",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MiddleClick",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "7c721d8a-977d-4ff7-87b2-19dbd4eb5ea6",
|
||||||
|
"expectedControlType": "Button",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ScrollWheel",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "e6a073b0-0030-42c2-88ef-85d828760630",
|
||||||
|
"expectedControlType": "Vector2",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TrackedDevicePosition",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "efcff6db-3f65-4107-8658-7e56305f2c8a",
|
||||||
|
"expectedControlType": "Vector3",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TrackedDeviceOrientation",
|
||||||
|
"type": "PassThrough",
|
||||||
|
"id": "2c7ed826-65c6-4dc4-81c7-536d62bbede1",
|
||||||
|
"expectedControlType": "Quaternion",
|
||||||
|
"processors": "",
|
||||||
|
"interactions": "",
|
||||||
|
"initialStateCheck": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bindings": [
|
||||||
|
{
|
||||||
|
"name": "Gamepad",
|
||||||
|
"id": "499b8c05-0325-4b99-9be0-9c8aa41ec39d",
|
||||||
|
"path": "2DVector",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": true,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "e5794321-3fc2-4ca8-a7a9-e35446b102ef",
|
||||||
|
"path": "<Gamepad>/leftStick/up",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "72f978c8-23be-4e97-8609-0b1426355553",
|
||||||
|
"path": "<Gamepad>/rightStick/up",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "6009f3e0-d95b-4440-a827-617812265049",
|
||||||
|
"path": "<Gamepad>/leftStick/down",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "590f0119-784f-45f3-97b6-5ffbfad9941f",
|
||||||
|
"path": "<Gamepad>/rightStick/down",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "e3588172-d7ee-4395-bc1a-3fc013f42400",
|
||||||
|
"path": "<Gamepad>/leftStick/left",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "4da29037-9c91-4140-8068-68a7375cdc4e",
|
||||||
|
"path": "<Gamepad>/rightStick/left",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "4620550c-3f8f-437c-a426-ad3e52b2764c",
|
||||||
|
"path": "<Gamepad>/leftStick/right",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "c74b9635-b880-45f5-a469-5cb8c2b83909",
|
||||||
|
"path": "<Gamepad>/rightStick/right",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "7a2feef9-0779-498f-a6ae-08484b606d07",
|
||||||
|
"path": "<Gamepad>/dpad",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Gamepad",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Joystick",
|
||||||
|
"id": "cd58a9a8-6605-4b26-8fb3-466b928fad60",
|
||||||
|
"path": "2DVector",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": true,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "be8cdff0-47f9-4546-a919-405e54580ea5",
|
||||||
|
"path": "<Joystick>/stick/up",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Joystick",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "04487afd-6a42-471a-ae70-49d7583ad93b",
|
||||||
|
"path": "<Joystick>/stick/down",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Joystick",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "d327788e-3a9a-4c14-97c8-b46bff05cf16",
|
||||||
|
"path": "<Joystick>/stick/left",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Joystick",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "4c760fb6-00fc-46bc-8a0f-e1be2a3a91cd",
|
||||||
|
"path": "<Joystick>/stick/right",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Joystick",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Keyboard",
|
||||||
|
"id": "21afa4c3-8c86-4939-bafc-c75c37368f04",
|
||||||
|
"path": "2DVector",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": true,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "1d6ea17c-5d6b-4ae5-9881-cf787fd492ed",
|
||||||
|
"path": "<Keyboard>/w",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "up",
|
||||||
|
"id": "6e90418f-6f67-4248-bbb4-90243304f39a",
|
||||||
|
"path": "<Keyboard>/upArrow",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "6be3eb21-d6ea-458d-a66f-f82487ec9139",
|
||||||
|
"path": "<Keyboard>/s",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "down",
|
||||||
|
"id": "3188c496-3978-454b-be6f-944521aabea4",
|
||||||
|
"path": "<Keyboard>/downArrow",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "00de0415-2218-4887-9ad6-e4a6c1dacc5b",
|
||||||
|
"path": "<Keyboard>/a",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left",
|
||||||
|
"id": "f723bc7b-263d-4619-93aa-0afdc40f3bc3",
|
||||||
|
"path": "<Keyboard>/leftArrow",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "f3530c12-f67f-437a-979e-2271af5b2d2d",
|
||||||
|
"path": "<Keyboard>/d",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right",
|
||||||
|
"id": "d760d39b-f0b3-4823-a705-c20b641b5720",
|
||||||
|
"path": "<Keyboard>/rightArrow",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Navigate",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "2cc2aec1-4255-4cab-bb40-0a894a0d87d3",
|
||||||
|
"path": "*/{Submit}",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
|
||||||
|
"action": "Submit",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "fbe038e0-74cf-48bc-b013-4d6f9e817833",
|
||||||
|
"path": "*/{Cancel}",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
|
||||||
|
"action": "Cancel",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "21be382d-dc2e-4360-bdb6-a3cc412a0abe",
|
||||||
|
"path": "<Mouse>/position",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Point",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "38f39dfe-e703-4be0-8fcf-6de2167518c1",
|
||||||
|
"path": "<Pen>/position",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "Point",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "5bbcf2f7-aea0-4067-ae32-aaf383287fb3",
|
||||||
|
"path": "<Touchscreen>/touch*/position",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Touch",
|
||||||
|
"action": "Point",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "32dde7e0-9557-4429-a882-7c87540c7e53",
|
||||||
|
"path": "<Mouse>/leftButton",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Keyboard&Mouse",
|
||||||
|
"action": "Click",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "f22741eb-66dd-4e3e-aaca-94d92991235c",
|
||||||
|
"path": "<Pen>/tip",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Keyboard&Mouse",
|
||||||
|
"action": "Click",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "1bec0af0-b75f-43da-a4a7-7de7f952df13",
|
||||||
|
"path": "<Touchscreen>/touch*/press",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Touch",
|
||||||
|
"action": "Click",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "d281b478-404c-47ec-95d3-ddcdcc19369a",
|
||||||
|
"path": "<XRController>/trigger",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "XR",
|
||||||
|
"action": "Click",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "ea2e7ff3-1a42-4202-8c53-abcae2467bb2",
|
||||||
|
"path": "<Mouse>/scroll",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": ";Keyboard&Mouse",
|
||||||
|
"action": "ScrollWheel",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "b0b7ca17-b763-4af6-a02a-0fcfbf043c37",
|
||||||
|
"path": "<Mouse>/rightButton",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "RightClick",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "c3146994-3749-4211-a80a-5766edd782e3",
|
||||||
|
"path": "<Mouse>/middleButton",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "Keyboard&Mouse",
|
||||||
|
"action": "MiddleClick",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "35aad27d-6a71-481b-b308-7763de690931",
|
||||||
|
"path": "<XRController>/devicePosition",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "XR",
|
||||||
|
"action": "TrackedDevicePosition",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"id": "d116b82b-e40f-4ab3-b7b8-eec40f53e88a",
|
||||||
|
"path": "<XRController>/deviceRotation",
|
||||||
|
"interactions": "",
|
||||||
|
"processors": "",
|
||||||
|
"groups": "XR",
|
||||||
|
"action": "TrackedDeviceOrientation",
|
||||||
|
"isComposite": false,
|
||||||
|
"isPartOfComposite": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"controlSchemes": []
|
"controlSchemes": []
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -73,6 +75,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 1
|
m_SortingOrder: 1
|
||||||
@@ -147,6 +150,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -168,6 +173,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -73,6 +75,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 1
|
m_SortingOrder: 1
|
||||||
@@ -139,6 +142,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -160,6 +165,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 1
|
m_SortingOrder: 1
|
||||||
@@ -234,6 +240,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -255,6 +263,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
|||||||
@@ -135,6 +135,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -156,6 +158,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 1
|
m_SortingOrder: 1
|
||||||
@@ -232,6 +235,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -253,6 +258,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -77,6 +79,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
@@ -246,6 +249,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -267,6 +272,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -76,6 +78,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 1
|
m_SortingOrder: 1
|
||||||
|
|||||||
@@ -72,6 +72,6 @@ MonoBehaviour:
|
|||||||
m_ActionEvents: []
|
m_ActionEvents: []
|
||||||
m_NeverAutoSwitchControlSchemes: 0
|
m_NeverAutoSwitchControlSchemes: 0
|
||||||
m_DefaultControlScheme:
|
m_DefaultControlScheme:
|
||||||
m_DefaultActionMap: DefaultActionMap
|
m_DefaultActionMap: 53d55b3c-f7c2-4706-a857-c615ecb16ff7
|
||||||
m_SplitScreenIndex: -1
|
m_SplitScreenIndex: -1
|
||||||
m_Camera: {fileID: 0}
|
m_Camera: {fileID: 0}
|
||||||
|
|||||||
46
Assets/Prefabs/Managers/ItemManager.prefab
Normal file
46
Assets/Prefabs/Managers/ItemManager.prefab
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &6399527186463168339
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7768516537241418043}
|
||||||
|
- component: {fileID: 4607144289768175859}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: ItemManager
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &7768516537241418043
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6399527186463168339}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -2.64965, y: 3.24335, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &4607144289768175859
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6399527186463168339}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a78fe78378e6426da43710f6d0ae84ba, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: AppleHillsScripts::Core.ItemManager
|
||||||
7
Assets/Prefabs/Managers/ItemManager.prefab.meta
Normal file
7
Assets/Prefabs/Managers/ItemManager.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ac41583865245bc4bb3de6c15929b9fc
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2500
Assets/Prefabs/UI/PauseMenu.prefab
Normal file
2500
Assets/Prefabs/UI/PauseMenu.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Prefabs/UI/PauseMenu.prefab.meta
Normal file
7
Assets/Prefabs/UI/PauseMenu.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6fb0d7fc6faad154b8c3e3cb7abb7c15
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -309,7 +309,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: -8109988653212156562, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
objectReference: {fileID: -8109988653212156562, guid: 77ab3d770c92d5344b36eee3293a0f94, type: 3}
|
||||||
- target: {fileID: 6350287859698694726, guid: b5fc01af35233eb4cbeede05e50a7c34, type: 3}
|
- target: {fileID: 6350287859698694726, guid: b5fc01af35233eb4cbeede05e50a7c34, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: TestAss
|
value: TestAss3
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
@@ -368,6 +368,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -389,6 +391,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
@@ -995,7 +998,7 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6350287859698694726, guid: b5fc01af35233eb4cbeede05e50a7c34, type: 3}
|
- target: {fileID: 6350287859698694726, guid: b5fc01af35233eb4cbeede05e50a7c34, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: TestAss
|
value: TestAss2
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
@@ -1228,6 +1231,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -1249,6 +1254,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: -1
|
m_SortingOrder: -1
|
||||||
@@ -1633,6 +1639,37 @@ SpriteRenderer:
|
|||||||
m_CorrespondingSourceObject: {fileID: 7494677664706785084, guid: bf4b9d7045397f946b2125b1ad4a3fbd, type: 3}
|
m_CorrespondingSourceObject: {fileID: 7494677664706785084, guid: bf4b9d7045397f946b2125b1ad4a3fbd, type: 3}
|
||||||
m_PrefabInstance: {fileID: 1336824707}
|
m_PrefabInstance: {fileID: 1336824707}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!1 &1668240410
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1668240411}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Buttons
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1668240411
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1668240410}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 898.1756, y: 720.9647, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1741016587
|
--- !u!1 &1741016587
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -1795,7 +1832,6 @@ MonoBehaviour:
|
|||||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_RequiresDepthTexture: 0
|
m_RequiresDepthTexture: 0
|
||||||
m_RequiresColorTexture: 0
|
m_RequiresColorTexture: 0
|
||||||
m_Version: 2
|
|
||||||
m_TaaSettings:
|
m_TaaSettings:
|
||||||
m_Quality: 3
|
m_Quality: 3
|
||||||
m_FrameInfluence: 0.1
|
m_FrameInfluence: 0.1
|
||||||
@@ -1803,6 +1839,7 @@ MonoBehaviour:
|
|||||||
m_MipBias: 0
|
m_MipBias: 0
|
||||||
m_VarianceClampScale: 0.9
|
m_VarianceClampScale: 0.9
|
||||||
m_ContrastAdaptiveSharpening: 0
|
m_ContrastAdaptiveSharpening: 0
|
||||||
|
m_Version: 2
|
||||||
--- !u!1 &1880929593
|
--- !u!1 &1880929593
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2062,3 +2099,4 @@ SceneRoots:
|
|||||||
- {fileID: 1234715653}
|
- {fileID: 1234715653}
|
||||||
- {fileID: 1336824707}
|
- {fileID: 1336824707}
|
||||||
- {fileID: 384576747}
|
- {fileID: 384576747}
|
||||||
|
- {fileID: 1668240411}
|
||||||
|
|||||||
@@ -172,6 +172,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -193,6 +195,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
@@ -253,6 +256,51 @@ BoxCollider2D:
|
|||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 1, y: 1}
|
m_Size: {x: 1, y: 1}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
|
--- !u!1 &1334266842
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1334266844}
|
||||||
|
- component: {fileID: 1334266843}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: DialogueTest
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1334266843
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1334266842}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 749c3dece1c14b82845c175203a2e7dc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: AppleHillsScripts::Dialogue.DialogueComponent
|
||||||
|
runtimeGraph: {fileID: 3965311268370046156, guid: 9050f99a225035b40b415df272d2b341, type: 3}
|
||||||
|
--- !u!4 &1334266844
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1334266842}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -3.64555, y: 2.05444, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1507068790
|
--- !u!1 &1507068790
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -264,6 +312,7 @@ GameObject:
|
|||||||
- component: {fileID: 1507068793}
|
- component: {fileID: 1507068793}
|
||||||
- component: {fileID: 1507068792}
|
- component: {fileID: 1507068792}
|
||||||
- component: {fileID: 1507068791}
|
- component: {fileID: 1507068791}
|
||||||
|
- component: {fileID: 1507068794}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Main Camera
|
m_Name: Main Camera
|
||||||
m_TagString: MainCamera
|
m_TagString: MainCamera
|
||||||
@@ -345,6 +394,50 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1507068794
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1507068790}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
|
||||||
|
m_RenderShadows: 1
|
||||||
|
m_RequiresDepthTextureOption: 2
|
||||||
|
m_RequiresOpaqueTextureOption: 2
|
||||||
|
m_CameraType: 0
|
||||||
|
m_Cameras: []
|
||||||
|
m_RendererIndex: -1
|
||||||
|
m_VolumeLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 1
|
||||||
|
m_VolumeTrigger: {fileID: 0}
|
||||||
|
m_VolumeFrameworkUpdateModeOption: 2
|
||||||
|
m_RenderPostProcessing: 0
|
||||||
|
m_Antialiasing: 0
|
||||||
|
m_AntialiasingQuality: 2
|
||||||
|
m_StopNaN: 0
|
||||||
|
m_Dithering: 0
|
||||||
|
m_ClearDepth: 1
|
||||||
|
m_AllowXRRendering: 1
|
||||||
|
m_AllowHDROutput: 1
|
||||||
|
m_UseScreenCoordOverride: 0
|
||||||
|
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_RequiresDepthTexture: 0
|
||||||
|
m_RequiresColorTexture: 0
|
||||||
|
m_TaaSettings:
|
||||||
|
m_Quality: 3
|
||||||
|
m_FrameInfluence: 0.1
|
||||||
|
m_JitterScale: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_VarianceClampScale: 0.9
|
||||||
|
m_ContrastAdaptiveSharpening: 0
|
||||||
|
m_Version: 2
|
||||||
--- !u!1 &1851499346
|
--- !u!1 &1851499346
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -429,6 +522,8 @@ SpriteRenderer:
|
|||||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
m_RayTracingAccelStructBuildFlags: 1
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
m_SmallMeshCulling: 1
|
m_SmallMeshCulling: 1
|
||||||
|
m_ForceMeshLod: -1
|
||||||
|
m_MeshLodSelectionBias: 0
|
||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
@@ -450,6 +545,7 @@ SpriteRenderer:
|
|||||||
m_AutoUVMaxDistance: 0.5
|
m_AutoUVMaxDistance: 0.5
|
||||||
m_AutoUVMaxAngle: 89
|
m_AutoUVMaxAngle: 89
|
||||||
m_LightmapParameters: {fileID: 0}
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_GlobalIlluminationMeshLod: 0
|
||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
@@ -518,3 +614,4 @@ SceneRoots:
|
|||||||
- {fileID: 1851499349}
|
- {fileID: 1851499349}
|
||||||
- {fileID: 2029728268}
|
- {fileID: 2029728268}
|
||||||
- {fileID: 465048834}
|
- {fileID: 465048834}
|
||||||
|
- {fileID: 1334266844}
|
||||||
|
|||||||
181
Assets/Scripts/Core/ItemManager.cs
Normal file
181
Assets/Scripts/Core/ItemManager.cs
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Interactions;
|
||||||
|
|
||||||
|
namespace Core
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Central registry for pickups and item slots.
|
||||||
|
/// Mirrors the singleton pattern used by PuzzleManager.
|
||||||
|
/// </summary>
|
||||||
|
public class ItemManager : MonoBehaviour
|
||||||
|
{
|
||||||
|
private static ItemManager _instance;
|
||||||
|
private static bool _isQuitting;
|
||||||
|
|
||||||
|
public static ItemManager Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_instance == null && Application.isPlaying && !_isQuitting)
|
||||||
|
{
|
||||||
|
_instance = FindAnyObjectByType<ItemManager>();
|
||||||
|
if (_instance == null)
|
||||||
|
{
|
||||||
|
var go = new GameObject("ItemManager");
|
||||||
|
_instance = go.AddComponent<ItemManager>();
|
||||||
|
// DontDestroyOnLoad(go);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return _instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly HashSet<Pickup> _pickups = new HashSet<Pickup>();
|
||||||
|
private readonly HashSet<ItemSlot> _itemSlots = new HashSet<ItemSlot>();
|
||||||
|
|
||||||
|
// Central events forwarded from registered pickups/slots
|
||||||
|
// Broadcasts when any registered pickup was picked up (passes the picked item data)
|
||||||
|
public event Action<PickupItemData> OnItemPickedUp;
|
||||||
|
|
||||||
|
// Broadcasts when any registered ItemSlot reports a correct item slotted
|
||||||
|
// Args: slot's itemData (the slot definition), then the slotted item data
|
||||||
|
public event Action<PickupItemData, PickupItemData> OnCorrectItemSlotted;
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
_instance = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
// Subscribe to scene load completed so we can clear registrations when scenes change
|
||||||
|
// Access Instance directly to ensure the service is initialized and we get the event hookup.
|
||||||
|
SceneManagerService.Instance.SceneLoadCompleted += OnSceneLoadCompleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
// Unsubscribe from SceneManagerService
|
||||||
|
if (SceneManagerService.Instance != null)
|
||||||
|
SceneManagerService.Instance.SceneLoadCompleted -= OnSceneLoadCompleted;
|
||||||
|
|
||||||
|
// Ensure we clean up any subscriptions from registered items when the manager is destroyed
|
||||||
|
ClearAllRegistrations();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnApplicationQuit()
|
||||||
|
{
|
||||||
|
_isQuitting = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSceneLoadCompleted(string sceneName)
|
||||||
|
{
|
||||||
|
// Clear all registrations when a new scene is loaded, so no stale references persist
|
||||||
|
ClearAllRegistrations();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Unsubscribe all pickup/slot event handlers and clear registries and manager events.
|
||||||
|
/// </summary>
|
||||||
|
private void ClearAllRegistrations()
|
||||||
|
{
|
||||||
|
// Unsubscribe pickup handlers
|
||||||
|
var pickupsCopy = new List<Pickup>(_pickups);
|
||||||
|
foreach (var p in pickupsCopy)
|
||||||
|
{
|
||||||
|
if (p != null)
|
||||||
|
p.OnItemPickedUp -= Pickup_OnItemPickedUp;
|
||||||
|
}
|
||||||
|
_pickups.Clear();
|
||||||
|
|
||||||
|
// Unsubscribe slot handlers
|
||||||
|
var slotsCopy = new List<ItemSlot>(_itemSlots);
|
||||||
|
foreach (var s in slotsCopy)
|
||||||
|
{
|
||||||
|
if (s != null)
|
||||||
|
s.OnCorrectItemSlotted -= ItemSlot_OnCorrectItemSlotted;
|
||||||
|
}
|
||||||
|
_itemSlots.Clear();
|
||||||
|
|
||||||
|
// Clear manager-level event subscribers
|
||||||
|
OnItemPickedUp = null;
|
||||||
|
OnCorrectItemSlotted = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RegisterPickup(Pickup pickup)
|
||||||
|
{
|
||||||
|
if (pickup == null) return;
|
||||||
|
// only subscribe if newly added to avoid duplicate subscriptions
|
||||||
|
if (_pickups.Add(pickup))
|
||||||
|
{
|
||||||
|
pickup.OnItemPickedUp += Pickup_OnItemPickedUp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnregisterPickup(Pickup pickup)
|
||||||
|
{
|
||||||
|
if (pickup == null) return;
|
||||||
|
if (_pickups.Remove(pickup))
|
||||||
|
{
|
||||||
|
pickup.OnItemPickedUp -= Pickup_OnItemPickedUp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RegisterItemSlot(ItemSlot slot)
|
||||||
|
{
|
||||||
|
if (slot == null) return;
|
||||||
|
if (_itemSlots.Add(slot))
|
||||||
|
{
|
||||||
|
slot.OnCorrectItemSlotted += ItemSlot_OnCorrectItemSlotted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UnregisterItemSlot(ItemSlot slot)
|
||||||
|
{
|
||||||
|
if (slot == null) return;
|
||||||
|
if (_itemSlots.Remove(slot))
|
||||||
|
{
|
||||||
|
slot.OnCorrectItemSlotted -= ItemSlot_OnCorrectItemSlotted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handler that forwards pickup events
|
||||||
|
private void Pickup_OnItemPickedUp(PickupItemData data)
|
||||||
|
{
|
||||||
|
OnItemPickedUp?.Invoke(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handler that forwards correct-slot events
|
||||||
|
private void ItemSlot_OnCorrectItemSlotted(PickupItemData slotData, PickupItemData slottedItem)
|
||||||
|
{
|
||||||
|
OnCorrectItemSlotted?.Invoke(slotData, slottedItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the current slot state for the given item data by searching registered slots.
|
||||||
|
/// If the item is currently slotted in a slot, returns that slot's state; otherwise returns ItemSlotState.None.
|
||||||
|
/// </summary>
|
||||||
|
public ItemSlotState GetSlotStatusForItem(PickupItemData itemData)
|
||||||
|
{
|
||||||
|
if (itemData == null) return ItemSlotState.None;
|
||||||
|
|
||||||
|
foreach (var slot in _itemSlots)
|
||||||
|
{
|
||||||
|
var slottedObj = slot.GetSlottedObject();
|
||||||
|
if (slottedObj == null) continue;
|
||||||
|
var pickup = slottedObj.GetComponent<Pickup>();
|
||||||
|
if (pickup == null) continue;
|
||||||
|
if (pickup.itemData == itemData)
|
||||||
|
{
|
||||||
|
return slot.CurrentSlottedState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ItemSlotState.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Pickup> Pickups => _pickups;
|
||||||
|
public IEnumerable<ItemSlot> ItemSlots => _itemSlots;
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Scripts/Core/ItemManager.cs.meta
Normal file
3
Assets/Scripts/Core/ItemManager.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a78fe78378e6426da43710f6d0ae84ba
|
||||||
|
timeCreated: 1758888493
|
||||||
3
Assets/Scripts/Dialogue.meta
Normal file
3
Assets/Scripts/Dialogue.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e592597a12a7498dbb5336395d7db00c
|
||||||
|
timeCreated: 1758871403
|
||||||
323
Assets/Scripts/Dialogue/DialogueComponent.cs
Normal file
323
Assets/Scripts/Dialogue/DialogueComponent.cs
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Core;
|
||||||
|
using Interactions;
|
||||||
|
using UnityEngine;
|
||||||
|
using PuzzleS;
|
||||||
|
|
||||||
|
namespace Dialogue
|
||||||
|
{
|
||||||
|
[AddComponentMenu("Apple Hills/Dialogue/Dialogue Component")]
|
||||||
|
public class DialogueComponent : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private RuntimeDialogueGraph dialogueGraph;
|
||||||
|
|
||||||
|
private RuntimeDialogueNode currentNode;
|
||||||
|
private int currentLineIndex;
|
||||||
|
private bool initialized = false;
|
||||||
|
|
||||||
|
// Properties
|
||||||
|
public bool IsActive { get; private set; }
|
||||||
|
public bool IsCompleted { get; private set; }
|
||||||
|
public string CurrentSpeakerName => dialogueGraph?.speakerName;
|
||||||
|
|
||||||
|
// Event for UI updates if needed
|
||||||
|
public event Action<string> OnDialogueChanged;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
// Register for global events
|
||||||
|
if (PuzzleManager.Instance != null)
|
||||||
|
PuzzleManager.Instance.OnStepCompleted += OnAnyPuzzleStepCompleted;
|
||||||
|
|
||||||
|
if (ItemManager.Instance != null)
|
||||||
|
{
|
||||||
|
ItemManager.Instance.OnItemPickedUp += OnAnyItemPickedUp;
|
||||||
|
ItemManager.Instance.OnCorrectItemSlotted += OnAnyItemSlotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto-start the dialogue
|
||||||
|
StartDialogue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
// Unregister from events
|
||||||
|
if (PuzzleManager.Instance != null)
|
||||||
|
PuzzleManager.Instance.OnStepCompleted -= OnAnyPuzzleStepCompleted;
|
||||||
|
|
||||||
|
if (ItemManager.Instance != null)
|
||||||
|
{
|
||||||
|
ItemManager.Instance.OnItemPickedUp -= OnAnyItemPickedUp;
|
||||||
|
ItemManager.Instance.OnCorrectItemSlotted -= OnAnyItemSlotted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start the dialogue from the beginning
|
||||||
|
/// </summary>
|
||||||
|
public void StartDialogue()
|
||||||
|
{
|
||||||
|
if (dialogueGraph == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("DialogueComponent: No dialogue graph assigned!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset state
|
||||||
|
IsActive = true;
|
||||||
|
IsCompleted = false;
|
||||||
|
currentLineIndex = 0;
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
|
// Set to entry node
|
||||||
|
currentNode = dialogueGraph.GetNodeByID(dialogueGraph.entryNodeID);
|
||||||
|
|
||||||
|
// Process the node
|
||||||
|
ProcessCurrentNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get the current dialogue line and advance to the next line or node if appropriate
|
||||||
|
/// Each call represents one interaction with the NPC
|
||||||
|
/// </summary>
|
||||||
|
public string GetCurrentDialogueLine()
|
||||||
|
{
|
||||||
|
// Initialize if needed
|
||||||
|
if (!initialized)
|
||||||
|
{
|
||||||
|
StartDialogue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsActive || IsCompleted || currentNode == null || currentNode.dialogueLines.Count == 0)
|
||||||
|
return string.Empty;
|
||||||
|
|
||||||
|
// Get current line
|
||||||
|
string currentLine = string.Empty;
|
||||||
|
if (currentLineIndex >= 0 && currentLineIndex < currentNode.dialogueLines.Count)
|
||||||
|
{
|
||||||
|
currentLine = currentNode.dialogueLines[currentLineIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Advance dialogue state for next interaction
|
||||||
|
AdvanceDialogueState();
|
||||||
|
|
||||||
|
// Return the current line
|
||||||
|
return currentLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Advance dialogue state for the next interaction
|
||||||
|
/// </summary>
|
||||||
|
private void AdvanceDialogueState()
|
||||||
|
{
|
||||||
|
if (!IsActive || IsCompleted || currentNode == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// If we're on a conditional node, we can't advance past it until condition is met
|
||||||
|
if (IsWaitingForCondition())
|
||||||
|
return;
|
||||||
|
|
||||||
|
// If we have more lines in the current node, advance to the next line
|
||||||
|
if (currentLineIndex < currentNode.dialogueLines.Count - 1)
|
||||||
|
{
|
||||||
|
currentLineIndex++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we should loop through lines, reset the index
|
||||||
|
if (currentNode.loopThroughLines && currentNode.dialogueLines.Count > 0)
|
||||||
|
{
|
||||||
|
currentLineIndex = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, move to the next node
|
||||||
|
MoveToNextNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MoveToNextNode()
|
||||||
|
{
|
||||||
|
// If there's no next node, complete the dialogue
|
||||||
|
if (string.IsNullOrEmpty(currentNode.nextNodeID))
|
||||||
|
{
|
||||||
|
IsActive = false;
|
||||||
|
IsCompleted = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move to the next node
|
||||||
|
currentNode = dialogueGraph.GetNodeByID(currentNode.nextNodeID);
|
||||||
|
currentLineIndex = 0;
|
||||||
|
|
||||||
|
// Process the new node
|
||||||
|
ProcessCurrentNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessCurrentNode()
|
||||||
|
{
|
||||||
|
if (currentNode == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("DialogueComponent: Current node is null!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle different node types
|
||||||
|
switch (currentNode.nodeType)
|
||||||
|
{
|
||||||
|
case RuntimeDialogueNodeType.Dialogue:
|
||||||
|
// Regular dialogue node, nothing special to do
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RuntimeDialogueNodeType.WaitOnPuzzleStep:
|
||||||
|
// Check if the puzzle step is already completed
|
||||||
|
if (IsPuzzleStepComplete(currentNode.puzzleStepID))
|
||||||
|
{
|
||||||
|
// If it's already complete, move past this node automatically
|
||||||
|
MoveToNextNode();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RuntimeDialogueNodeType.WaitOnPickup:
|
||||||
|
// Check if the item is already picked up
|
||||||
|
if (IsItemPickedUp(currentNode.pickupItemID))
|
||||||
|
{
|
||||||
|
// If it's already picked up, move past this node automatically
|
||||||
|
MoveToNextNode();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RuntimeDialogueNodeType.WaitOnSlot:
|
||||||
|
// Check if the item is already slotted
|
||||||
|
if (IsItemSlotted(currentNode.slotItemID))
|
||||||
|
{
|
||||||
|
// If it's already slotted, move past this node automatically
|
||||||
|
MoveToNextNode();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RuntimeDialogueNodeType.End:
|
||||||
|
// End node, complete the dialogue
|
||||||
|
IsActive = false;
|
||||||
|
IsCompleted = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Debug.LogError($"DialogueComponent: Unknown node type {currentNode.nodeType}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Global event handlers
|
||||||
|
private void OnAnyPuzzleStepCompleted(PuzzleStepSO step)
|
||||||
|
{
|
||||||
|
// Only react if we're active and waiting on a puzzle step
|
||||||
|
if (!IsActive || IsCompleted || currentNode == null ||
|
||||||
|
currentNode.nodeType != RuntimeDialogueNodeType.WaitOnPuzzleStep)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Check if this is the step we're waiting for
|
||||||
|
if (step.stepId == currentNode.puzzleStepID)
|
||||||
|
{
|
||||||
|
// Move to next node automatically when condition is met
|
||||||
|
MoveToNextNode();
|
||||||
|
OnDialogueChanged?.Invoke(GetCurrentDialogueLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnAnyItemPickedUp(PickupItemData item)
|
||||||
|
{
|
||||||
|
// Only react if we're active and waiting on an item pickup
|
||||||
|
if (!IsActive || IsCompleted || currentNode == null ||
|
||||||
|
currentNode.nodeType != RuntimeDialogueNodeType.WaitOnPickup)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Check if this is the item we're waiting for
|
||||||
|
if (item.itemId == currentNode.pickupItemID)
|
||||||
|
{
|
||||||
|
// Move to next node automatically when condition is met
|
||||||
|
MoveToNextNode();
|
||||||
|
OnDialogueChanged?.Invoke(GetCurrentDialogueLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnAnyItemSlotted(PickupItemData slotDefinition, PickupItemData slottedItem)
|
||||||
|
{
|
||||||
|
// Only react if we're active and waiting on a slot
|
||||||
|
if (!IsActive || IsCompleted || currentNode == null ||
|
||||||
|
currentNode.nodeType != RuntimeDialogueNodeType.WaitOnSlot)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Check if this is the slot we're waiting for
|
||||||
|
if (slotDefinition.itemId == currentNode.slotItemID)
|
||||||
|
{
|
||||||
|
// Move to next node automatically when condition is met
|
||||||
|
MoveToNextNode();
|
||||||
|
OnDialogueChanged?.Invoke(GetCurrentDialogueLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper methods
|
||||||
|
private bool IsWaitingForCondition()
|
||||||
|
{
|
||||||
|
if (currentNode == null) return false;
|
||||||
|
|
||||||
|
switch (currentNode.nodeType)
|
||||||
|
{
|
||||||
|
case RuntimeDialogueNodeType.WaitOnPuzzleStep:
|
||||||
|
return !IsPuzzleStepComplete(currentNode.puzzleStepID);
|
||||||
|
case RuntimeDialogueNodeType.WaitOnPickup:
|
||||||
|
return !IsItemPickedUp(currentNode.pickupItemID);
|
||||||
|
case RuntimeDialogueNodeType.WaitOnSlot:
|
||||||
|
return !IsItemSlotted(currentNode.slotItemID);
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsPuzzleStepComplete(string stepID)
|
||||||
|
{
|
||||||
|
return PuzzleManager.Instance != null &&
|
||||||
|
PuzzleManager.Instance.IsPuzzleStepCompleted(stepID);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsItemPickedUp(string itemID)
|
||||||
|
{
|
||||||
|
if (ItemManager.Instance == null) return false;
|
||||||
|
|
||||||
|
// Check all pickups for the given ID
|
||||||
|
foreach (var pickup in ItemManager.Instance.Pickups)
|
||||||
|
{
|
||||||
|
if (pickup.isPickedUp && pickup.itemData != null &&
|
||||||
|
pickup.itemData.itemId == itemID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsItemSlotted(string slotID)
|
||||||
|
{
|
||||||
|
if (ItemManager.Instance == null) return false;
|
||||||
|
|
||||||
|
// Check if any slot with this ID has the correct item
|
||||||
|
foreach (var slot in ItemManager.Instance.ItemSlots)
|
||||||
|
{
|
||||||
|
if (slot.itemData != null && slot.itemData.itemId == slotID &&
|
||||||
|
slot.CurrentSlottedState == ItemSlotState.Correct)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Editor functionality
|
||||||
|
public void SetDialogueGraph(RuntimeDialogueGraph graph)
|
||||||
|
{
|
||||||
|
dialogueGraph = graph;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Scripts/Dialogue/DialogueComponent.cs.meta
Normal file
3
Assets/Scripts/Dialogue/DialogueComponent.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 25bbad45f1fa4183b30ad76c62256fd6
|
||||||
|
timeCreated: 1758891211
|
||||||
53
Assets/Scripts/Dialogue/RuntimeDialogueGraph.cs
Normal file
53
Assets/Scripts/Dialogue/RuntimeDialogueGraph.cs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Dialogue
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public enum RuntimeDialogueNodeType
|
||||||
|
{
|
||||||
|
Dialogue,
|
||||||
|
WaitOnPuzzleStep,
|
||||||
|
WaitOnPickup,
|
||||||
|
WaitOnSlot,
|
||||||
|
End
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class RuntimeDialogueGraph : ScriptableObject
|
||||||
|
{
|
||||||
|
public string entryNodeID;
|
||||||
|
public string speakerName;
|
||||||
|
public List<RuntimeDialogueNode> allNodes = new List<RuntimeDialogueNode>();
|
||||||
|
|
||||||
|
// Helper method to find a node by ID
|
||||||
|
public RuntimeDialogueNode GetNodeByID(string id)
|
||||||
|
{
|
||||||
|
return allNodes.Find(n => n.nodeID == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class RuntimeDialogueNode
|
||||||
|
{
|
||||||
|
public string nodeID;
|
||||||
|
public RuntimeDialogueNodeType nodeType;
|
||||||
|
public string nextNodeID;
|
||||||
|
|
||||||
|
// Basic dialogue
|
||||||
|
public List<string> dialogueLines = new List<string>();
|
||||||
|
public bool loopThroughLines;
|
||||||
|
|
||||||
|
// Conditional nodes
|
||||||
|
public string puzzleStepID; // For WaitOnPuzzleStep
|
||||||
|
public string pickupItemID; // For WaitOnPickup
|
||||||
|
public string slotItemID; // For WaitOnSlot
|
||||||
|
|
||||||
|
// For WaitOnSlot - different responses
|
||||||
|
public List<string> incorrectItemLines = new List<string>();
|
||||||
|
public bool loopThroughIncorrectLines;
|
||||||
|
public List<string> forbiddenItemLines = new List<string>();
|
||||||
|
public bool loopThroughForbiddenLines;
|
||||||
|
}
|
||||||
|
}
|
||||||
3
Assets/Scripts/Dialogue/RuntimeDialogueGraph.cs.meta
Normal file
3
Assets/Scripts/Dialogue/RuntimeDialogueGraph.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3c3be3596532450a923c31dfe0ed4aa9
|
||||||
|
timeCreated: 1758871423
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
using UnityEngine;
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
namespace Input
|
||||||
|
{
|
||||||
|
public enum InputMode
|
||||||
|
{
|
||||||
|
Game,
|
||||||
|
UI,
|
||||||
|
GameAndUI,
|
||||||
|
InputDisabled
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Handles input events and dispatches them to the appropriate ITouchInputConsumer.
|
/// Handles input events and dispatches them to the appropriate ITouchInputConsumer.
|
||||||
@@ -7,6 +20,9 @@ using UnityEngine.InputSystem;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class InputManager : MonoBehaviour
|
public class InputManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
private const string UiActions = "UI";
|
||||||
|
private const string GameActions = "PlayerTouch";
|
||||||
|
|
||||||
private static InputManager _instance;
|
private static InputManager _instance;
|
||||||
private static bool _isQuitting = false;
|
private static bool _isQuitting = false;
|
||||||
|
|
||||||
@@ -50,6 +66,49 @@ public class InputManager : MonoBehaviour
|
|||||||
positionAction = playerInput.actions.FindAction("TouchPosition", false);
|
positionAction = playerInput.actions.FindAction("TouchPosition", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
SceneManagerService.Instance.SceneLoadCompleted += SwitchInputOnSceneLoaded;
|
||||||
|
SwitchInputOnSceneLoaded(SceneManager.GetActiveScene().name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SwitchInputOnSceneLoaded(string sceneName)
|
||||||
|
{
|
||||||
|
if (sceneName.ToLower().Contains("mainmenu"))
|
||||||
|
{
|
||||||
|
Debug.Log("[InputManager] SwitchInputOnSceneLoaded - Setting InputMode to UI for MainMenu");
|
||||||
|
SetInputMode(InputMode.UI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Log("[InputManager] SwitchInputOnSceneLoaded - Setting InputMode to PlayerTouch");
|
||||||
|
SetInputMode(InputMode.GameAndUI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetInputMode(InputMode inputMode)
|
||||||
|
{
|
||||||
|
switch (inputMode)
|
||||||
|
{
|
||||||
|
case InputMode.UI:
|
||||||
|
playerInput.actions.FindActionMap(UiActions).Enable();
|
||||||
|
playerInput.actions.FindActionMap(GameActions).Disable();
|
||||||
|
break;
|
||||||
|
case InputMode.Game:
|
||||||
|
playerInput.actions.FindActionMap(UiActions).Disable();
|
||||||
|
playerInput.actions.FindActionMap(GameActions).Enable();
|
||||||
|
break;
|
||||||
|
case InputMode.GameAndUI:
|
||||||
|
playerInput.actions.FindActionMap(UiActions).Enable();
|
||||||
|
playerInput.actions.FindActionMap(GameActions).Enable();
|
||||||
|
break;
|
||||||
|
case InputMode.InputDisabled:
|
||||||
|
playerInput.actions.FindActionMap(UiActions).Disable();
|
||||||
|
playerInput.actions.FindActionMap(GameActions).Disable();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
{
|
{
|
||||||
if (tapMoveAction != null)
|
if (tapMoveAction != null)
|
||||||
@@ -90,6 +149,11 @@ public class InputManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void OnTapMovePerformed(InputAction.CallbackContext ctx)
|
private void OnTapMovePerformed(InputAction.CallbackContext ctx)
|
||||||
{
|
{
|
||||||
|
if (EventSystem.current.IsPointerOverGameObject())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Vector2 screenPos = positionAction.ReadValue<Vector2>();
|
Vector2 screenPos = positionAction.ReadValue<Vector2>();
|
||||||
Vector3 worldPos = Camera.main.ScreenToWorldPoint(screenPos);
|
Vector3 worldPos = Camera.main.ScreenToWorldPoint(screenPos);
|
||||||
Vector2 worldPos2D = new Vector2(worldPos.x, worldPos.y);
|
Vector2 worldPos2D = new Vector2(worldPos.x, worldPos.y);
|
||||||
@@ -173,3 +237,4 @@ public class InputManager : MonoBehaviour
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,18 +1,39 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
using UnityEngine.Events;
|
||||||
|
using System; // for Action<T>
|
||||||
|
using Core; // register with ItemManager
|
||||||
|
|
||||||
namespace Interactions
|
namespace Interactions
|
||||||
{
|
{
|
||||||
|
// New enum describing possible states for the slotted item
|
||||||
|
public enum ItemSlotState
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Correct,
|
||||||
|
Incorrect,
|
||||||
|
Forbidden
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaction requirement that allows slotting, swapping, or picking up items in a slot.
|
/// Interaction requirement that allows slotting, swapping, or picking up items in a slot.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RequireComponent(typeof(Interactable))]
|
[RequireComponent(typeof(Interactable))]
|
||||||
public class ItemSlot : Pickup
|
public class ItemSlot : Pickup
|
||||||
{
|
{
|
||||||
|
// Tracks the current state of the slotted item
|
||||||
|
private ItemSlotState _currentState = ItemSlotState.None;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Read-only access to the current slotted item state.
|
||||||
|
/// </summary>
|
||||||
|
public ItemSlotState CurrentSlottedState => _currentState;
|
||||||
|
|
||||||
public UnityEvent onItemSlotted;
|
public UnityEvent onItemSlotted;
|
||||||
public UnityEvent onItemSlotRemoved;
|
public UnityEvent onItemSlotRemoved;
|
||||||
public UnityEvent onCorrectItemSlotted;
|
public UnityEvent onCorrectItemSlotted;
|
||||||
|
// Native C# event alternative to the UnityEvent for code-only subscribers
|
||||||
|
public event Action<PickupItemData, PickupItemData> OnCorrectItemSlotted;
|
||||||
public UnityEvent onIncorrectItemSlotted;
|
public UnityEvent onIncorrectItemSlotted;
|
||||||
public UnityEvent onForbiddenItemSlotted;
|
public UnityEvent onForbiddenItemSlotted;
|
||||||
private PickupItemData _currentlySlottedItemData;
|
private PickupItemData _currentlySlottedItemData;
|
||||||
@@ -48,6 +69,7 @@ namespace Interactions
|
|||||||
{
|
{
|
||||||
DebugUIMessage.Show("Can't place that here.", Color.red);
|
DebugUIMessage.Show("Can't place that here.", Color.red);
|
||||||
onForbiddenItemSlotted?.Invoke();
|
onForbiddenItemSlotted?.Invoke();
|
||||||
|
_currentState = ItemSlotState.Forbidden;
|
||||||
Interactable.BroadcastInteractionComplete(false);
|
Interactable.BroadcastInteractionComplete(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -62,6 +84,7 @@ namespace Interactions
|
|||||||
{
|
{
|
||||||
FollowerController.TryPickupItem(_currentlySlottedItemObject, _currentlySlottedItemData, false);
|
FollowerController.TryPickupItem(_currentlySlottedItemObject, _currentlySlottedItemData, false);
|
||||||
onItemSlotRemoved?.Invoke();
|
onItemSlotRemoved?.Invoke();
|
||||||
|
_currentState = ItemSlotState.None;
|
||||||
SlotItem(heldItemObj, heldItemData, _currentlySlottedItemObject == null);
|
SlotItem(heldItemObj, heldItemData, _currentlySlottedItemObject == null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -109,6 +132,8 @@ namespace Interactions
|
|||||||
{
|
{
|
||||||
_currentlySlottedItemObject = null;
|
_currentlySlottedItemObject = null;
|
||||||
_currentlySlottedItemData = null;
|
_currentlySlottedItemData = null;
|
||||||
|
// Clear state when no item is slotted
|
||||||
|
_currentState = ItemSlotState.None;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -133,6 +158,8 @@ namespace Interactions
|
|||||||
{
|
{
|
||||||
DebugUIMessage.Show("You correctly slotted " + itemToSlotData.itemName + " into: " + itemData.itemName, Color.green);
|
DebugUIMessage.Show("You correctly slotted " + itemToSlotData.itemName + " into: " + itemData.itemName, Color.green);
|
||||||
onCorrectItemSlotted?.Invoke();
|
onCorrectItemSlotted?.Invoke();
|
||||||
|
OnCorrectItemSlotted?.Invoke(itemData, _currentlySlottedItemData);
|
||||||
|
_currentState = ItemSlotState.Correct;
|
||||||
}
|
}
|
||||||
|
|
||||||
Interactable.BroadcastInteractionComplete(true);
|
Interactable.BroadcastInteractionComplete(true);
|
||||||
@@ -143,9 +170,21 @@ namespace Interactions
|
|||||||
{
|
{
|
||||||
DebugUIMessage.Show("I'm not sure this works.", Color.yellow);
|
DebugUIMessage.Show("I'm not sure this works.", Color.yellow);
|
||||||
onIncorrectItemSlotted?.Invoke();
|
onIncorrectItemSlotted?.Invoke();
|
||||||
|
_currentState = ItemSlotState.Incorrect;
|
||||||
}
|
}
|
||||||
Interactable.BroadcastInteractionComplete(false);
|
Interactable.BroadcastInteractionComplete(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Register with ItemManager when enabled
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
ItemManager.Instance?.RegisterItemSlot(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
ItemManager.Instance?.UnregisterItemSlot(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using Input;
|
using Input;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using System; // added for Action<T>
|
||||||
|
using Core; // register with ItemManager
|
||||||
|
|
||||||
namespace Interactions
|
namespace Interactions
|
||||||
{
|
{
|
||||||
@@ -12,6 +14,12 @@ namespace Interactions
|
|||||||
private PlayerTouchController _playerRef;
|
private PlayerTouchController _playerRef;
|
||||||
protected FollowerController FollowerController;
|
protected FollowerController FollowerController;
|
||||||
|
|
||||||
|
// Track if the item has been picked up
|
||||||
|
public bool isPickedUp { get; private set; }
|
||||||
|
|
||||||
|
// Event: invoked when the item was picked up successfully
|
||||||
|
public event Action<PickupItemData> OnItemPickedUp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unity Awake callback. Sets up icon, interactable, and event handlers.
|
/// Unity Awake callback. Sets up icon, interactable, and event handlers.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -30,6 +38,14 @@ namespace Interactions
|
|||||||
ApplyItemData();
|
ApplyItemData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Register with ItemManager on Start
|
||||||
|
/// </summary>
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
ItemManager.Instance?.RegisterPickup(this);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Unity OnDestroy callback. Cleans up event handlers.
|
/// Unity OnDestroy callback. Cleans up event handlers.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -40,6 +56,9 @@ namespace Interactions
|
|||||||
Interactable.interactionStarted.RemoveListener(OnInteractionStarted);
|
Interactable.interactionStarted.RemoveListener(OnInteractionStarted);
|
||||||
Interactable.characterArrived.RemoveListener(OnCharacterArrived);
|
Interactable.characterArrived.RemoveListener(OnCharacterArrived);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unregister from ItemManager
|
||||||
|
ItemManager.Instance?.UnregisterPickup(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
@@ -89,7 +108,15 @@ namespace Interactions
|
|||||||
}
|
}
|
||||||
|
|
||||||
FollowerController?.TryPickupItem(gameObject, itemData);
|
FollowerController?.TryPickupItem(gameObject, itemData);
|
||||||
Interactable.BroadcastInteractionComplete(combinationResult == FollowerController.CombinationResult.NotApplicable);
|
bool wasPickedUp = (combinationResult == FollowerController.CombinationResult.NotApplicable);
|
||||||
|
Interactable.BroadcastInteractionComplete(wasPickedUp);
|
||||||
|
|
||||||
|
// Update pickup state and invoke event when the item was picked up successfully
|
||||||
|
if (wasPickedUp)
|
||||||
|
{
|
||||||
|
isPickedUp = true;
|
||||||
|
OnItemPickedUp?.Invoke(itemData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,58 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System;
|
||||||
|
|
||||||
[CreateAssetMenu(fileName = "PickupItemData", menuName = "Game/Pickup Item Data")]
|
[CreateAssetMenu(fileName = "PickupItemData", menuName = "Game/Pickup Item Data")]
|
||||||
public class PickupItemData : ScriptableObject
|
public class PickupItemData : ScriptableObject
|
||||||
{
|
{
|
||||||
|
[SerializeField] private string _itemId;
|
||||||
|
|
||||||
public string itemName;
|
public string itemName;
|
||||||
[TextArea]
|
[TextArea]
|
||||||
public string description;
|
public string description;
|
||||||
public Sprite mapSprite;
|
public Sprite mapSprite;
|
||||||
|
|
||||||
|
// Read-only property for itemId
|
||||||
|
public string itemId => _itemId;
|
||||||
|
|
||||||
|
// Auto-generate ID on creation or validation
|
||||||
|
void OnValidate()
|
||||||
|
{
|
||||||
|
// Only generate if empty
|
||||||
|
if (string.IsNullOrEmpty(_itemId))
|
||||||
|
{
|
||||||
|
_itemId = GenerateItemId();
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
// Mark the asset as dirty to ensure the ID is saved
|
||||||
|
UnityEditor.EditorUtility.SetDirty(this);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GenerateItemId()
|
||||||
|
{
|
||||||
|
// Use asset name as the basis for the ID to keep it somewhat readable
|
||||||
|
string baseName = name.Replace(" ", "").ToLowerInvariant();
|
||||||
|
|
||||||
|
// Add a unique suffix based on a GUID
|
||||||
|
string uniqueSuffix = Guid.NewGuid().ToString().Substring(0, 8);
|
||||||
|
|
||||||
|
return $"{baseName}_{uniqueSuffix}";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method to manually regenerate ID if needed (for editor scripts)
|
||||||
|
public void RegenerateId()
|
||||||
|
{
|
||||||
|
_itemId = GenerateItemId();
|
||||||
|
}
|
||||||
|
|
||||||
public static bool AreEquivalent(PickupItemData a, PickupItemData b)
|
public static bool AreEquivalent(PickupItemData a, PickupItemData b)
|
||||||
{
|
{
|
||||||
if (ReferenceEquals(a, b)) return true;
|
// First compare by itemId if available
|
||||||
if (a is null || b is null) return false;
|
if (!string.IsNullOrEmpty(a.itemId) && !string.IsNullOrEmpty(b.itemId))
|
||||||
|
return a.itemId == b.itemId;
|
||||||
|
|
||||||
// Compare by itemName as a fallback
|
// Compare by itemName as a fallback
|
||||||
return a.itemName == b.itemName;
|
return a.itemName == b.itemName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ public class LevelSwitch : MonoBehaviour
|
|||||||
// Setup menu with data and callbacks
|
// Setup menu with data and callbacks
|
||||||
menu.Setup(switchData, OnMenuConfirm, OnMenuCancel);
|
menu.Setup(switchData, OnMenuConfirm, OnMenuCancel);
|
||||||
_isActive = false; // Prevent re-triggering until menu is closed
|
_isActive = false; // Prevent re-triggering until menu is closed
|
||||||
|
|
||||||
|
// Switch input mode to UI only
|
||||||
|
InputManager.Instance.SetInputMode(InputMode.UI);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OnMenuConfirm()
|
private async void OnMenuConfirm()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using AppleHills.Core.Settings;
|
using AppleHills.Core.Settings;
|
||||||
|
using Input;
|
||||||
|
|
||||||
namespace Minigames.DivingForPictures
|
namespace Minigames.DivingForPictures
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ namespace PuzzleS
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
Debug.Log($"[Puzzles] Step interacted: {stepData?.stepId} on {gameObject.name}");
|
Debug.Log($"[Puzzles] Step interacted: {stepData?.stepId} on {gameObject.name}");
|
||||||
PuzzleManager.Instance?.OnStepCompleted(stepData);
|
PuzzleManager.Instance?.MarkPuzzleStepCompleted(stepData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
using UnityEngine;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using PuzzleS;
|
using System.Linq;
|
||||||
|
using UnityEngine;
|
||||||
using UnityEngine.SceneManagement;
|
using UnityEngine.SceneManagement;
|
||||||
|
|
||||||
|
namespace PuzzleS
|
||||||
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Manages puzzle step registration, dependency management, and step completion for the puzzle system.
|
/// Manages puzzle step registration, dependency management, and step completion for the puzzle system.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class PuzzleManager : MonoBehaviour
|
public class PuzzleManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
private static PuzzleManager _instance;
|
private static PuzzleManager _instance;
|
||||||
private static bool _isQuitting = false;
|
private static bool _isQuitting;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Singleton instance of the PuzzleManager.
|
/// Singleton instance of the PuzzleManager.
|
||||||
@@ -32,14 +35,16 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private HashSet<PuzzleStepSO> completedSteps = new HashSet<PuzzleStepSO>();
|
// Events to notify about step lifecycle
|
||||||
private HashSet<PuzzleStepSO> unlockedSteps = new HashSet<PuzzleStepSO>();
|
public event Action<PuzzleStepSO> OnStepCompleted;
|
||||||
|
public event Action<PuzzleStepSO> OnStepUnlocked;
|
||||||
|
|
||||||
|
private HashSet<PuzzleStepSO> _completedSteps = new HashSet<PuzzleStepSO>();
|
||||||
|
private HashSet<PuzzleStepSO> _unlockedSteps = new HashSet<PuzzleStepSO>();
|
||||||
// Registration for ObjectiveStepBehaviour
|
// Registration for ObjectiveStepBehaviour
|
||||||
private Dictionary<PuzzleStepSO, ObjectiveStepBehaviour> stepBehaviours = new Dictionary<PuzzleStepSO, ObjectiveStepBehaviour>();
|
private Dictionary<PuzzleStepSO, ObjectiveStepBehaviour> _stepBehaviours = new Dictionary<PuzzleStepSO, ObjectiveStepBehaviour>();
|
||||||
|
|
||||||
// Runtime dependency graph
|
// Runtime dependency graph
|
||||||
private Dictionary<PuzzleStepSO, List<PuzzleStepSO>> runtimeDependencies = new Dictionary<PuzzleStepSO, List<PuzzleStepSO>>();
|
private Dictionary<PuzzleStepSO, List<PuzzleStepSO>> _runtimeDependencies = new Dictionary<PuzzleStepSO, List<PuzzleStepSO>>();
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
@@ -66,9 +71,9 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
public void RegisterStepBehaviour(ObjectiveStepBehaviour behaviour)
|
public void RegisterStepBehaviour(ObjectiveStepBehaviour behaviour)
|
||||||
{
|
{
|
||||||
if (behaviour?.stepData == null) return;
|
if (behaviour?.stepData == null) return;
|
||||||
if (!stepBehaviours.ContainsKey(behaviour.stepData))
|
if (!_stepBehaviours.ContainsKey(behaviour.stepData))
|
||||||
{
|
{
|
||||||
stepBehaviours.Add(behaviour.stepData, behaviour);
|
_stepBehaviours.Add(behaviour.stepData, behaviour);
|
||||||
Debug.Log($"[Puzzles] Registered step: {behaviour.stepData.stepId} on {behaviour.gameObject.name}");
|
Debug.Log($"[Puzzles] Registered step: {behaviour.stepData.stepId} on {behaviour.gameObject.name}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,7 +85,7 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
public void UnregisterStepBehaviour(ObjectiveStepBehaviour behaviour)
|
public void UnregisterStepBehaviour(ObjectiveStepBehaviour behaviour)
|
||||||
{
|
{
|
||||||
if (behaviour?.stepData == null) return;
|
if (behaviour?.stepData == null) return;
|
||||||
stepBehaviours.Remove(behaviour.stepData);
|
_stepBehaviours.Remove(behaviour.stepData);
|
||||||
Debug.Log($"[Puzzles] Unregistered step: {behaviour.stepData.stepId} on {behaviour.gameObject.name}");
|
Debug.Log($"[Puzzles] Unregistered step: {behaviour.stepData.stepId} on {behaviour.gameObject.name}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,15 +94,15 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void BuildRuntimeDependencies()
|
private void BuildRuntimeDependencies()
|
||||||
{
|
{
|
||||||
runtimeDependencies = PuzzleGraphUtility.BuildDependencyGraph(stepBehaviours.Keys);
|
_runtimeDependencies = PuzzleGraphUtility.BuildDependencyGraph(_stepBehaviours.Keys);
|
||||||
foreach (var step in runtimeDependencies.Keys)
|
foreach (var step in _runtimeDependencies.Keys)
|
||||||
{
|
{
|
||||||
foreach (var dep in runtimeDependencies[step])
|
foreach (var dep in _runtimeDependencies[step])
|
||||||
{
|
{
|
||||||
Debug.Log($"[Puzzles] Step {step.stepId} depends on {dep.stepId}");
|
Debug.Log($"[Puzzles] Step {step.stepId} depends on {dep.stepId}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Debug.Log($"[Puzzles] Runtime dependencies built. Total steps: {stepBehaviours.Count}");
|
Debug.Log($"[Puzzles] Runtime dependencies built. Total steps: {_stepBehaviours.Count}");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -105,7 +110,7 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void UnlockInitialSteps()
|
private void UnlockInitialSteps()
|
||||||
{
|
{
|
||||||
var initialSteps = PuzzleGraphUtility.FindInitialSteps(runtimeDependencies);
|
var initialSteps = PuzzleGraphUtility.FindInitialSteps(_runtimeDependencies);
|
||||||
foreach (var step in initialSteps)
|
foreach (var step in initialSteps)
|
||||||
{
|
{
|
||||||
Debug.Log($"[Puzzles] Initial step unlocked: {step.stepId}");
|
Debug.Log($"[Puzzles] Initial step unlocked: {step.stepId}");
|
||||||
@@ -117,11 +122,15 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// Called when a step is completed. Unlocks dependent steps if their dependencies are met.
|
/// Called when a step is completed. Unlocks dependent steps if their dependencies are met.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="step">The completed step.</param>
|
/// <param name="step">The completed step.</param>
|
||||||
public void OnStepCompleted(PuzzleStepSO step)
|
public void MarkPuzzleStepCompleted(PuzzleStepSO step)
|
||||||
{
|
{
|
||||||
if (completedSteps.Contains(step)) return;
|
if (_completedSteps.Contains(step)) return;
|
||||||
completedSteps.Add(step);
|
_completedSteps.Add(step);
|
||||||
Debug.Log($"[Puzzles] Step completed: {step.stepId}");
|
Debug.Log($"[Puzzles] Step completed: {step.stepId}");
|
||||||
|
|
||||||
|
// Broadcast completion
|
||||||
|
OnStepCompleted?.Invoke(step);
|
||||||
|
|
||||||
foreach (var unlock in step.unlocks)
|
foreach (var unlock in step.unlocks)
|
||||||
{
|
{
|
||||||
if (AreRuntimeDependenciesMet(unlock))
|
if (AreRuntimeDependenciesMet(unlock))
|
||||||
@@ -144,10 +153,10 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// <returns>True if all dependencies are met, false otherwise.</returns>
|
/// <returns>True if all dependencies are met, false otherwise.</returns>
|
||||||
private bool AreRuntimeDependenciesMet(PuzzleStepSO step)
|
private bool AreRuntimeDependenciesMet(PuzzleStepSO step)
|
||||||
{
|
{
|
||||||
if (!runtimeDependencies.ContainsKey(step) || runtimeDependencies[step].Count == 0) return true;
|
if (!_runtimeDependencies.ContainsKey(step) || _runtimeDependencies[step].Count == 0) return true;
|
||||||
foreach (var dep in runtimeDependencies[step])
|
foreach (var dep in _runtimeDependencies[step])
|
||||||
{
|
{
|
||||||
if (!completedSteps.Contains(dep)) return false;
|
if (!_completedSteps.Contains(dep)) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -158,13 +167,16 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// <param name="step">The step to unlock.</param>
|
/// <param name="step">The step to unlock.</param>
|
||||||
private void UnlockStep(PuzzleStepSO step)
|
private void UnlockStep(PuzzleStepSO step)
|
||||||
{
|
{
|
||||||
if (unlockedSteps.Contains(step)) return;
|
if (_unlockedSteps.Contains(step)) return;
|
||||||
unlockedSteps.Add(step);
|
_unlockedSteps.Add(step);
|
||||||
if (stepBehaviours.TryGetValue(step, out var behaviour))
|
if (_stepBehaviours.TryGetValue(step, out var behaviour))
|
||||||
{
|
{
|
||||||
behaviour.UnlockStep();
|
behaviour.UnlockStep();
|
||||||
}
|
}
|
||||||
Debug.Log($"[Puzzles] Step unlocked: {step.stepId}");
|
Debug.Log($"[Puzzles] Step unlocked: {step.stepId}");
|
||||||
|
|
||||||
|
// Broadcast unlock
|
||||||
|
OnStepUnlocked?.Invoke(step);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -172,7 +184,7 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void CheckPuzzleCompletion()
|
private void CheckPuzzleCompletion()
|
||||||
{
|
{
|
||||||
if (completedSteps.Count == stepBehaviours.Count)
|
if (_completedSteps.Count == _stepBehaviours.Count)
|
||||||
{
|
{
|
||||||
Debug.Log("[Puzzles] Puzzle complete! All steps finished.");
|
Debug.Log("[Puzzles] Puzzle complete! All steps finished.");
|
||||||
// TODO: Fire puzzle complete event or trigger outcome logic
|
// TODO: Fire puzzle complete event or trigger outcome logic
|
||||||
@@ -186,7 +198,17 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
{
|
{
|
||||||
BuildRuntimeDependencies();
|
BuildRuntimeDependencies();
|
||||||
UnlockInitialSteps();
|
UnlockInitialSteps();
|
||||||
return unlockedSteps.Contains(step);
|
return _unlockedSteps.Contains(step);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks if a puzzle step with the specified ID has been completed
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="stepId">The ID of the puzzle step to check</param>
|
||||||
|
/// <returns>True if the step has been completed, false otherwise</returns>
|
||||||
|
public bool IsPuzzleStepCompleted(string stepId)
|
||||||
|
{
|
||||||
|
return _completedSteps.Any(step => step.stepId == stepId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnApplicationQuit()
|
void OnApplicationQuit()
|
||||||
@@ -194,3 +216,4 @@ public class PuzzleManager : MonoBehaviour
|
|||||||
_isQuitting = true;
|
_isQuitting = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
8
Assets/Scripts/Test.meta
Normal file
8
Assets/Scripts/Test.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 23fdb60880dd05846a6e0d3681a02242
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
142
Assets/Scripts/UI/PauseMenu.cs
Normal file
142
Assets/Scripts/UI/PauseMenu.cs
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
using Input;
|
||||||
|
|
||||||
|
namespace UI
|
||||||
|
{
|
||||||
|
public class PauseMenu : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("UI References")]
|
||||||
|
[SerializeField] private GameObject pauseMenuPanel;
|
||||||
|
[SerializeField] private GameObject pauseButton;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
// Subscribe to scene loaded events
|
||||||
|
SceneManagerService.Instance.SceneLoadCompleted += SetPauseMenuByLevel;
|
||||||
|
|
||||||
|
// Set initial state based on current scene
|
||||||
|
SetPauseMenuByLevel(SceneManager.GetActiveScene().name);
|
||||||
|
|
||||||
|
// Initialize pause menu state
|
||||||
|
HidePauseMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
// Unsubscribe when destroyed
|
||||||
|
if (SceneManagerService.Instance != null)
|
||||||
|
{
|
||||||
|
SceneManagerService.Instance.SceneLoadCompleted -= SetPauseMenuByLevel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the pause menu game object active or inactive based on the current level
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="levelName">The name of the level/scene</param>
|
||||||
|
public void SetPauseMenuByLevel(string levelName)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(levelName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
bool isMainMenu = levelName.ToLower().Contains("mainmenu");
|
||||||
|
gameObject.SetActive(!isMainMenu);
|
||||||
|
|
||||||
|
if(!isMainMenu)
|
||||||
|
HidePauseMenu(); // Ensure menu is hidden when switching to a game level
|
||||||
|
|
||||||
|
Debug.Log($"[PauseMenu] Setting pause menu active: {!isMainMenu} for scene: {levelName}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Shows the pause menu and hides the pause button. Sets input mode to UI.
|
||||||
|
/// </summary>
|
||||||
|
public void ShowPauseMenu()
|
||||||
|
{
|
||||||
|
if (pauseMenuPanel != null)
|
||||||
|
pauseMenuPanel.SetActive(true);
|
||||||
|
|
||||||
|
if (pauseButton != null)
|
||||||
|
pauseButton.SetActive(false);
|
||||||
|
|
||||||
|
// Change input mode to UI when menu is open
|
||||||
|
InputManager.Instance.SetInputMode(InputMode.UI);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hides the pause menu and shows the pause button. Sets input mode to Game.
|
||||||
|
/// </summary>
|
||||||
|
public void HidePauseMenu()
|
||||||
|
{
|
||||||
|
if (pauseMenuPanel != null)
|
||||||
|
pauseMenuPanel.SetActive(false);
|
||||||
|
|
||||||
|
if (pauseButton != null)
|
||||||
|
pauseButton.SetActive(true);
|
||||||
|
|
||||||
|
// Change input mode back to Game when menu is closed
|
||||||
|
InputManager.Instance.SetInputMode(InputMode.Game);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resumes the game by hiding the pause menu.
|
||||||
|
/// </summary>
|
||||||
|
public void ResumeGame()
|
||||||
|
{
|
||||||
|
HidePauseMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Exits to the main menu scene.
|
||||||
|
/// </summary>
|
||||||
|
public async void ExitToMainMenu()
|
||||||
|
{
|
||||||
|
// Replace with the actual scene name as set in Build Settings
|
||||||
|
var progress = new Progress<float>(p => Debug.Log($"Loading progress: {p * 100:F0}%"));
|
||||||
|
await SceneManagerService.Instance.SwitchSceneAsync("MainMenu", progress);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Exits the application.
|
||||||
|
/// </summary>
|
||||||
|
public void ExitGame()
|
||||||
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
UnityEditor.EditorApplication.isPlaying = false;
|
||||||
|
#else
|
||||||
|
Application.Quit();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Loads a level based on the selection from a dropdown menu.
|
||||||
|
/// Connect this to a Dropdown's onValueChanged event and pass the selected option text.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="levelSelection">The selected level name or identifier from the dropdown</param>
|
||||||
|
public async void LoadLevel(int levelSelection)
|
||||||
|
{
|
||||||
|
// Hide the pause menu before loading a new level
|
||||||
|
HidePauseMenu();
|
||||||
|
|
||||||
|
// Replace with the actual scene name as set in Build Settings
|
||||||
|
var progress = new Progress<float>(p => Debug.Log($"Loading progress: {p * 100:F0}%"));
|
||||||
|
switch (levelSelection)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
await SceneManagerService.Instance.SwitchSceneAsync("MainMenu", progress);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
await SceneManagerService.Instance.SwitchSceneAsync("AppleHillsOverworld", progress);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
await SceneManagerService.Instance.SwitchSceneAsync("Quarry", progress);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
await SceneManagerService.Instance.SwitchSceneAsync("DivingForPictures", progress);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts/UI/PauseMenu.cs.meta
Normal file
2
Assets/Scripts/UI/PauseMenu.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cb36c2845dc855a4c980ef9dec6ca127
|
||||||
@@ -31,7 +31,7 @@ MonoBehaviour:
|
|||||||
surfacingSpawnDelay: 5
|
surfacingSpawnDelay: 5
|
||||||
initialTileCount: 3
|
initialTileCount: 3
|
||||||
tileSpawnBuffer: 1
|
tileSpawnBuffer: 1
|
||||||
moveSpeed: 2
|
moveSpeed: 1
|
||||||
speedUpFactor: 0
|
speedUpFactor: 0
|
||||||
speedUpInterval: 10
|
speedUpInterval: 10
|
||||||
maxMoveSpeed: 12
|
maxMoveSpeed: 12
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ MonoBehaviour:
|
|||||||
basePickupPrefab: {fileID: 7447346505753002421, guid: bf4b9d7045397f946b2125b1ad4a3fbd, type: 3}
|
basePickupPrefab: {fileID: 7447346505753002421, guid: bf4b9d7045397f946b2125b1ad4a3fbd, type: 3}
|
||||||
levelSwitchMenuPrefab: {fileID: 4062459998181038721, guid: de2ed28e4200a4340a5af4086c98a0dc, type: 3}
|
levelSwitchMenuPrefab: {fileID: 4062459998181038721, guid: de2ed28e4200a4340a5af4086c98a0dc, type: 3}
|
||||||
combinationRules:
|
combinationRules:
|
||||||
- itemA: {fileID: 11400000, guid: 33e7ca06b22108d4e802486e08bcdfd1, type: 2}
|
- itemA: {fileID: 11400000, guid: 8b2616beb14825a46b9b1ed85ad3cb25, type: 2}
|
||||||
itemB: {fileID: 11400000, guid: 8b2616beb14825a46b9b1ed85ad3cb25, type: 2}
|
itemB: {fileID: 11400000, guid: 33e7ca06b22108d4e802486e08bcdfd1, type: 2}
|
||||||
resultPrefab: {fileID: 1610562450228973293, guid: 58654125374567147839eb382fcde422, type: 3}
|
resultPrefab: {fileID: 1610562450228973293, guid: 58654125374567147839eb382fcde422, type: 3}
|
||||||
- itemA: {fileID: 11400000, guid: 983414276ae3f004c854e9c450f27f88, type: 2}
|
- itemA: {fileID: 11400000, guid: 983414276ae3f004c854e9c450f27f88, type: 2}
|
||||||
itemB: {fileID: 11400000, guid: 0c6986639ca176a419c92f5a327d95ce, type: 2}
|
itemB: {fileID: 11400000, guid: 0c6986639ca176a419c92f5a327d95ce, type: 2}
|
||||||
|
|||||||
@@ -61,19 +61,9 @@ MonoBehaviour:
|
|||||||
- rid: 7785851992983994371
|
- rid: 7785851992983994371
|
||||||
- rid: 7785851992983994372
|
- rid: 7785851992983994372
|
||||||
- rid: 7785851992983994373
|
- rid: 7785851992983994373
|
||||||
|
- rid: 1219994508087787520
|
||||||
m_RuntimeSettings:
|
m_RuntimeSettings:
|
||||||
m_List:
|
m_List: []
|
||||||
- rid: 7752762179098771456
|
|
||||||
- rid: 7752762179098771457
|
|
||||||
- rid: 7752762179098771459
|
|
||||||
- rid: 7752762179098771461
|
|
||||||
- rid: 7752762179098771462
|
|
||||||
- rid: 7752762179098771464
|
|
||||||
- rid: 7752762179098771466
|
|
||||||
- rid: 7752762179098771468
|
|
||||||
- rid: 7752762179098771472
|
|
||||||
- rid: 7752762179098771476
|
|
||||||
- rid: 7785851992983994373
|
|
||||||
m_AssetVersion: 8
|
m_AssetVersion: 8
|
||||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||||
m_RenderingLayerNames:
|
m_RenderingLayerNames:
|
||||||
@@ -97,6 +87,10 @@ MonoBehaviour:
|
|||||||
references:
|
references:
|
||||||
version: 2
|
version: 2
|
||||||
RefIds:
|
RefIds:
|
||||||
|
- rid: 1219994508087787520
|
||||||
|
type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime}
|
||||||
|
data:
|
||||||
|
m_version: 0
|
||||||
- rid: 3958521779966443520
|
- rid: 3958521779966443520
|
||||||
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
|
||||||
data:
|
data:
|
||||||
@@ -129,9 +123,6 @@ MonoBehaviour:
|
|||||||
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3}
|
||||||
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
|
m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3}
|
||||||
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
|
m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3}
|
||||||
m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3}
|
|
||||||
m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3}
|
|
||||||
m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3}
|
|
||||||
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3}
|
||||||
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3}
|
||||||
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3}
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.2d.spriteshape": "11.0.0",
|
"com.unity.2d.spriteshape": "12.0.1",
|
||||||
"com.unity.addressables": "2.6.0",
|
"com.unity.addressables": "2.7.3",
|
||||||
"com.unity.addressables.android": "1.0.7",
|
"com.unity.addressables.android": "1.0.7",
|
||||||
"com.unity.cinemachine": "3.1.4",
|
"com.unity.cinemachine": "3.1.4",
|
||||||
"com.unity.feature.2d": "2.0.1",
|
"com.unity.feature.2d": "2.0.1",
|
||||||
"com.unity.film-internal-utilities": "0.18.4-preview",
|
"com.unity.film-internal-utilities": "0.18.4-preview",
|
||||||
|
"com.unity.graphtoolkit": "0.4.0-exp.2",
|
||||||
"com.unity.ide.rider": "3.0.38",
|
"com.unity.ide.rider": "3.0.38",
|
||||||
"com.unity.ide.visualstudio": "2.0.23",
|
"com.unity.ide.visualstudio": "2.0.23",
|
||||||
"com.unity.inputsystem": "1.14.2",
|
"com.unity.inputsystem": "1.14.2",
|
||||||
"com.unity.multiplayer.center": "1.0.0",
|
"com.unity.multiplayer.center": "1.0.0",
|
||||||
"com.unity.render-pipelines.universal": "17.1.0",
|
"com.unity.render-pipelines.universal": "17.2.0",
|
||||||
"com.unity.timeline": "1.8.9",
|
"com.unity.timeline": "1.8.9",
|
||||||
"com.unity.ugui": "2.0.0",
|
"com.unity.ugui": "2.0.0",
|
||||||
"com.unity.modules.accessibility": "1.0.0",
|
"com.unity.modules.accessibility": "1.0.0",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.animation": {
|
"com.unity.2d.animation": {
|
||||||
"version": "11.0.0",
|
"version": "12.0.2",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.common": "10.0.0",
|
"com.unity.2d.common": "11.0.1",
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.collections": "1.2.4",
|
"com.unity.collections": "1.2.4",
|
||||||
"com.unity.modules.animation": "1.0.0",
|
"com.unity.modules.animation": "1.0.0",
|
||||||
@@ -14,11 +14,11 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.2d.aseprite": {
|
"com.unity.2d.aseprite": {
|
||||||
"version": "1.2.5",
|
"version": "2.0.1",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.common": "10.0.0",
|
"com.unity.2d.common": "11.0.1",
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.2d.tilemap": "1.0.0",
|
"com.unity.2d.tilemap": "1.0.0",
|
||||||
"com.unity.mathematics": "1.2.6",
|
"com.unity.mathematics": "1.2.6",
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.2d.common": {
|
"com.unity.2d.common": {
|
||||||
"version": "10.0.0",
|
"version": "11.0.1",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -49,11 +49,11 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.2d.psdimporter": {
|
"com.unity.2d.psdimporter": {
|
||||||
"version": "10.1.1",
|
"version": "11.0.1",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.common": "10.0.0",
|
"com.unity.2d.common": "11.0.1",
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.2d.tilemap": "1.0.0"
|
"com.unity.2d.tilemap": "1.0.0"
|
||||||
},
|
},
|
||||||
@@ -66,11 +66,11 @@
|
|||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
},
|
},
|
||||||
"com.unity.2d.spriteshape": {
|
"com.unity.2d.spriteshape": {
|
||||||
"version": "11.0.0",
|
"version": "12.0.1",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.common": "10.0.0",
|
"com.unity.2d.common": "11.0.1",
|
||||||
"com.unity.mathematics": "1.1.0",
|
"com.unity.mathematics": "1.1.0",
|
||||||
"com.unity.modules.physics2d": "1.0.0"
|
"com.unity.modules.physics2d": "1.0.0"
|
||||||
},
|
},
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.2d.tilemap.extras": {
|
"com.unity.2d.tilemap.extras": {
|
||||||
"version": "4.3.1",
|
"version": "5.0.1",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.addressables": {
|
"com.unity.addressables": {
|
||||||
"version": "2.6.0",
|
"version": "2.7.3",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
"com.unity.modules.jsonserialize": "1.0.0",
|
"com.unity.modules.jsonserialize": "1.0.0",
|
||||||
"com.unity.modules.imageconversion": "1.0.0",
|
"com.unity.modules.imageconversion": "1.0.0",
|
||||||
"com.unity.modules.unitywebrequest": "1.0.0",
|
"com.unity.modules.unitywebrequest": "1.0.0",
|
||||||
"com.unity.scriptablebuildpipeline": "2.4.0",
|
"com.unity.scriptablebuildpipeline": "2.4.2",
|
||||||
"com.unity.modules.unitywebrequestassetbundle": "1.0.0"
|
"com.unity.modules.unitywebrequestassetbundle": "1.0.0"
|
||||||
},
|
},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.burst": {
|
"com.unity.burst": {
|
||||||
"version": "1.8.23",
|
"version": "1.8.24",
|
||||||
"depth": 2,
|
"depth": 2,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -143,13 +143,14 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.collections": {
|
"com.unity.collections": {
|
||||||
"version": "2.5.1",
|
"version": "2.5.7",
|
||||||
"depth": 2,
|
"depth": 2,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.burst": "1.8.17",
|
"com.unity.burst": "1.8.19",
|
||||||
"com.unity.test-framework": "1.4.5",
|
"com.unity.mathematics": "1.3.2",
|
||||||
"com.unity.nuget.mono-cecil": "1.11.4",
|
"com.unity.test-framework": "1.4.6",
|
||||||
|
"com.unity.nuget.mono-cecil": "1.11.5",
|
||||||
"com.unity.test-framework.performance": "3.0.3"
|
"com.unity.test-framework.performance": "3.0.3"
|
||||||
},
|
},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
@@ -165,14 +166,14 @@
|
|||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.2d.animation": "11.0.0",
|
"com.unity.2d.animation": "12.0.2",
|
||||||
"com.unity.2d.pixel-perfect": "5.1.0",
|
"com.unity.2d.pixel-perfect": "5.1.0",
|
||||||
"com.unity.2d.psdimporter": "10.1.1",
|
"com.unity.2d.psdimporter": "11.0.1",
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.2d.spriteshape": "11.0.0",
|
"com.unity.2d.spriteshape": "12.0.1",
|
||||||
"com.unity.2d.tilemap": "1.0.0",
|
"com.unity.2d.tilemap": "1.0.0",
|
||||||
"com.unity.2d.tilemap.extras": "4.3.1",
|
"com.unity.2d.tilemap.extras": "5.0.1",
|
||||||
"com.unity.2d.aseprite": "1.2.5"
|
"com.unity.2d.aseprite": "2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.film-internal-utilities": {
|
"com.unity.film-internal-utilities": {
|
||||||
@@ -185,6 +186,15 @@
|
|||||||
},
|
},
|
||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
|
"com.unity.graphtoolkit": {
|
||||||
|
"version": "0.4.0-exp.2",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.uielements": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.com"
|
||||||
|
},
|
||||||
"com.unity.ide.rider": {
|
"com.unity.ide.rider": {
|
||||||
"version": "3.0.38",
|
"version": "3.0.38",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
@@ -228,7 +238,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.nuget.mono-cecil": {
|
"com.unity.nuget.mono-cecil": {
|
||||||
"version": "1.11.4",
|
"version": "1.11.5",
|
||||||
"depth": 3,
|
"depth": 3,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
@@ -242,7 +252,7 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.render-pipelines.core": {
|
"com.unity.render-pipelines.core": {
|
||||||
"version": "17.1.0",
|
"version": "17.2.0",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -257,12 +267,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.render-pipelines.universal": {
|
"com.unity.render-pipelines.universal": {
|
||||||
"version": "17.1.0",
|
"version": "17.2.0",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.render-pipelines.core": "17.1.0",
|
"com.unity.render-pipelines.core": "17.2.0",
|
||||||
"com.unity.shadergraph": "17.1.0",
|
"com.unity.shadergraph": "17.2.0",
|
||||||
"com.unity.render-pipelines.universal-config": "17.0.3"
|
"com.unity.render-pipelines.universal-config": "17.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -285,7 +295,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.scriptablebuildpipeline": {
|
"com.unity.scriptablebuildpipeline": {
|
||||||
"version": "2.4.0",
|
"version": "2.4.2",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -309,16 +319,16 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.shadergraph": {
|
"com.unity.shadergraph": {
|
||||||
"version": "17.1.0",
|
"version": "17.2.0",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.render-pipelines.core": "17.1.0",
|
"com.unity.render-pipelines.core": "17.2.0",
|
||||||
"com.unity.searcher": "4.9.3"
|
"com.unity.searcher": "4.9.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.unity.splines": {
|
"com.unity.splines": {
|
||||||
"version": "2.8.1",
|
"version": "2.8.2",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "registry",
|
"source": "registry",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -329,7 +339,7 @@
|
|||||||
"url": "https://packages.unity.com"
|
"url": "https://packages.unity.com"
|
||||||
},
|
},
|
||||||
"com.unity.test-framework": {
|
"com.unity.test-framework": {
|
||||||
"version": "1.5.1",
|
"version": "1.6.0",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
"source": "builtin",
|
"source": "builtin",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -517,7 +527,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": {
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
m_EditorVersion: 6000.1.15f1
|
m_EditorVersion: 6000.2.6f1
|
||||||
m_EditorVersionWithRevision: 6000.1.15f1 (faa32412f6c9)
|
m_EditorVersionWithRevision: 6000.2.6f1 (cc51a95c0300)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
shaderVariantLimit: 128
|
shaderVariantLimit: 128
|
||||||
|
overrideShaderVariantLimit: 0
|
||||||
customInterpolatorErrorThreshold: 32
|
customInterpolatorErrorThreshold: 32
|
||||||
customInterpolatorWarningThreshold: 16
|
customInterpolatorWarningThreshold: 16
|
||||||
customHeatmapValues: {fileID: 0}
|
customHeatmapValues: {fileID: 0}
|
||||||
|
|||||||
Reference in New Issue
Block a user