Browse Source

no message

master
Christopher 8 years ago
parent
commit
b28d9df489
  1. 9
      Assets/Fungus/EditorResources.meta
  2. 65
      Assets/Fungus/EditorResources/FungusEditorResources.asset
  3. 4
      Assets/Fungus/EditorResources/FungusEditorResources.asset.meta
  4. 0
      Assets/Fungus/EditorResources/Icons.meta
  5. 9
      Assets/Fungus/EditorResources/Icons/Pro.meta
  6. BIN
      Assets/Fungus/EditorResources/Icons/Pro/add.png
  7. 16
      Assets/Fungus/EditorResources/Icons/Pro/add.png.meta
  8. BIN
      Assets/Fungus/EditorResources/Icons/Pro/add_small.png
  9. 16
      Assets/Fungus/EditorResources/Icons/Pro/add_small.png.meta
  10. BIN
      Assets/Fungus/EditorResources/Icons/Pro/delete.png
  11. 59
      Assets/Fungus/EditorResources/Icons/Pro/delete.png.meta
  12. BIN
      Assets/Fungus/EditorResources/Icons/Pro/down.png
  13. 59
      Assets/Fungus/EditorResources/Icons/Pro/down.png.meta
  14. BIN
      Assets/Fungus/EditorResources/Icons/Pro/duplicate.png
  15. 59
      Assets/Fungus/EditorResources/Icons/Pro/duplicate.png.meta
  16. BIN
      Assets/Fungus/EditorResources/Icons/Pro/up.png
  17. 59
      Assets/Fungus/EditorResources/Icons/Pro/up.png.meta
  18. 0
      Assets/Fungus/EditorResources/Icons/add.png
  19. 0
      Assets/Fungus/EditorResources/Icons/add.png.meta
  20. 0
      Assets/Fungus/EditorResources/Icons/add_small.png
  21. 0
      Assets/Fungus/EditorResources/Icons/add_small.png.meta
  22. 0
      Assets/Fungus/EditorResources/Icons/delete.png
  23. 0
      Assets/Fungus/EditorResources/Icons/delete.png.meta
  24. 0
      Assets/Fungus/EditorResources/Icons/down.png
  25. 0
      Assets/Fungus/EditorResources/Icons/down.png.meta
  26. 0
      Assets/Fungus/EditorResources/Icons/duplicate.png
  27. 0
      Assets/Fungus/EditorResources/Icons/duplicate.png.meta
  28. 0
      Assets/Fungus/EditorResources/Icons/up.png
  29. 0
      Assets/Fungus/EditorResources/Icons/up.png.meta
  30. 0
      Assets/Fungus/EditorResources/Textures.meta
  31. BIN
      Assets/Fungus/EditorResources/Textures/bullet_point.png
  32. 10
      Assets/Fungus/EditorResources/Textures/bullet_point.png.meta
  33. 0
      Assets/Fungus/EditorResources/Textures/choice_node_off.png
  34. 0
      Assets/Fungus/EditorResources/Textures/choice_node_off.png.meta
  35. 0
      Assets/Fungus/EditorResources/Textures/choice_node_on.png
  36. 0
      Assets/Fungus/EditorResources/Textures/choice_node_on.png.meta
  37. 0
      Assets/Fungus/EditorResources/Textures/command_background.png
  38. 0
      Assets/Fungus/EditorResources/Textures/command_background.png.meta
  39. BIN
      Assets/Fungus/EditorResources/Textures/connection_point.png
  40. 59
      Assets/Fungus/EditorResources/Textures/connection_point.png.meta
  41. 0
      Assets/Fungus/EditorResources/Textures/event_node_off.png
  42. 0
      Assets/Fungus/EditorResources/Textures/event_node_off.png.meta
  43. 0
      Assets/Fungus/EditorResources/Textures/event_node_on.png
  44. 0
      Assets/Fungus/EditorResources/Textures/event_node_on.png.meta
  45. 0
      Assets/Fungus/EditorResources/Textures/play_big.png
  46. 0
      Assets/Fungus/EditorResources/Textures/play_big.png.meta
  47. 0
      Assets/Fungus/EditorResources/Textures/play_small.png
  48. 0
      Assets/Fungus/EditorResources/Textures/play_small.png.meta
  49. 0
      Assets/Fungus/EditorResources/Textures/process_node_off.png
  50. 0
      Assets/Fungus/EditorResources/Textures/process_node_off.png.meta
  51. 0
      Assets/Fungus/EditorResources/Textures/process_node_on.png
  52. 0
      Assets/Fungus/EditorResources/Textures/process_node_on.png.meta
  53. 138
      Assets/Fungus/Resources/GLLineDraw.mat
  54. 11
      Assets/Fungus/Resources/GLLineDraw.shader
  55. 9
      Assets/Fungus/Resources/GLLineDraw.shader.meta
  56. BIN
      Assets/Fungus/Resources/Icons/ResizeHandle.png
  57. BIN
      Assets/Fungus/Resources/Icons/left.png
  58. BIN
      Assets/Fungus/Resources/Icons/right.png
  59. 6
      Assets/Fungus/Scripts/Commands/End.cs
  60. 10
      Assets/Fungus/Scripts/Editor/BlockEditor.cs
  61. 4
      Assets/Fungus/Scripts/Editor/CommandListAdaptor.cs
  62. 2
      Assets/Fungus/Scripts/Editor/FlowchartEditor.cs
  63. 853
      Assets/Fungus/Scripts/Editor/FlowchartWindow.cs
  64. 297
      Assets/Fungus/Scripts/Editor/FungusEditorResources.cs
  65. 46
      Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs
  66. 6
      Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs.meta
  67. 292
      Assets/Fungus/Scripts/Editor/GLDraw.cs
  68. 29
      Assets/Fungus/Scripts/EventHandlers/ObjectClicked.cs
  69. 572
      Assets/Tests/Scripting/Scripting.unity
  70. 4
      Docs/fungus_docs/community_tutorials.md

9
Assets/Fungus/EditorResources.meta

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5ff164265158945c18b7d438b570ba22
folderAsset: yes
timeCreated: 1478502248
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

65
Assets/Fungus/EditorResources/FungusEditorResources.asset

@ -0,0 +1,65 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d2af387304e4b454b9ce8b815799cad0, type: 3}
m_Name: FungusEditorResources
m_EditorClassIdentifier:
updateOnReloadScripts: 0
add:
free: {fileID: 2800000, guid: 24a867d6b4cdda04cb3aa3350f9ec7d0, type: 3}
pro: {fileID: 2800000, guid: 4e43c476b4a7a49a08c37378fb01ce99, type: 3}
add_small:
free: {fileID: 2800000, guid: 288aff1a0e5c14fd3a0039d24149df73, type: 3}
pro: {fileID: 2800000, guid: 64534dfaa17844231a9a9dd2df89d0db, type: 3}
delete:
free: {fileID: 2800000, guid: d6fc8a97e8a5b0947a49b780f787e504, type: 3}
pro: {fileID: 2800000, guid: 29c4d29b1678042a5b3516c732ccc507, type: 3}
down:
free: {fileID: 2800000, guid: 51a973f446c2e664582861480cce6215, type: 3}
pro: {fileID: 2800000, guid: 5a87a7d3683164a238377d948572805f, type: 3}
duplicate:
free: {fileID: 2800000, guid: c97f334c466215a4f93eff31de3c1591, type: 3}
pro: {fileID: 2800000, guid: 2f17490d993c84bd7872ef6588ffba47, type: 3}
up:
free: {fileID: 2800000, guid: 8f1242ad894201f43b2b6d52fd990f77, type: 3}
pro: {fileID: 2800000, guid: 2a76a781db2994b33b83cd84b8835da7, type: 3}
bullet_point:
free: {fileID: 2800000, guid: 4ef739c68bb234717a60a2bb83ff8602, type: 3}
pro: {fileID: 0}
choice_node_off:
free: {fileID: 2800000, guid: 7b6fc04aac74540e39e9502da5312ce7, type: 3}
pro: {fileID: 0}
choice_node_on:
free: {fileID: 2800000, guid: cfc05494b71a0446182868aab5f7febf, type: 3}
pro: {fileID: 0}
command_background:
free: {fileID: 2800000, guid: a5c9a4271b3de4e4f86eff7f8a1bd768, type: 3}
pro: {fileID: 0}
connection_point:
free: {fileID: 2800000, guid: f08a4c27d7efe4aa6a35348a4e8aec8f, type: 3}
pro: {fileID: 0}
event_node_off:
free: {fileID: 2800000, guid: 0e16a209826864df7b05f6d3901aae7a, type: 3}
pro: {fileID: 0}
event_node_on:
free: {fileID: 2800000, guid: 9434488a4efb54da5986eba5d5619baf, type: 3}
pro: {fileID: 0}
play_big:
free: {fileID: 2800000, guid: bff2ba39f5f4448589e80522ebfcd0a0, type: 3}
pro: {fileID: 0}
play_small:
free: {fileID: 2800000, guid: a48a2b9b06deb469d9da1777b094521b, type: 3}
pro: {fileID: 0}
process_node_off:
free: {fileID: 2800000, guid: ea3a4228e6c214149bfe5c741b56ae0c, type: 3}
pro: {fileID: 0}
process_node_on:
free: {fileID: 2800000, guid: c2dceb780784240ccbe8d3cde89f7671, type: 3}
pro: {fileID: 0}

4
Assets/Fungus/Resources/GLLineDraw.mat.meta → Assets/Fungus/EditorResources/FungusEditorResources.asset.meta

@ -1,6 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 4209d966cfca44792ad45389a996015e guid: 29cae11326cb84802b83fc3ff25a47e8
timeCreated: 1434115586 timeCreated: 1478978272
licenseType: Free licenseType: Free
NativeFormatImporter: NativeFormatImporter:
userData: userData:

0
Assets/Fungus/Resources/Icons.meta → Assets/Fungus/EditorResources/Icons.meta

9
Assets/Fungus/EditorResources/Icons/Pro.meta

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5e5a1319ef7f546a7affe3baabd5fba6
folderAsset: yes
timeCreated: 1478502692
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Fungus/EditorResources/Icons/Pro/add.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

16
Assets/Fungus/Resources/Icons/left.png.meta → Assets/Fungus/EditorResources/Icons/Pro/add.png.meta

@ -1,5 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: c0a7a4711d69249ab9dae1539a3247ee guid: 4e43c476b4a7a49a08c37378fb01ce99
timeCreated: 1478502692
licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName: {}
serializedVersion: 2 serializedVersion: 2
@ -15,17 +17,17 @@ TextureImporter:
bumpmap: bumpmap:
convertToNormalMap: 0 convertToNormalMap: 0
externalNormalMap: 0 externalNormalMap: 0
heightScale: .25 heightScale: 0.25
normalMapFilter: 0 normalMapFilter: 0
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0 cubemapConvolution: 0
cubemapConvolutionSteps: 8 cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5 cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 2048
textureSettings: textureSettings:
filterMode: -1 filterMode: -1
aniso: 1 aniso: 1
@ -35,18 +37,22 @@ TextureImporter:
lightmap: 0 lightmap: 0
rGBM: 0 rGBM: 0
compressionQuality: 50 compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0 spriteMode: 0
spriteExtrude: 1 spriteExtrude: 1
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: .5, y: .5} spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 1 alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2 textureType: 2
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
serializedVersion: 2
sprites: [] sprites: []
outline: []
spritePackingTag: spritePackingTag:
userData: userData:
assetBundleName: assetBundleName:

BIN
Assets/Fungus/EditorResources/Icons/Pro/add_small.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

16
Assets/Fungus/Resources/Icons/right.png.meta → Assets/Fungus/EditorResources/Icons/Pro/add_small.png.meta

@ -1,5 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b3dd8b25a62664f379cb3714060d4e33 guid: 64534dfaa17844231a9a9dd2df89d0db
timeCreated: 1478502692
licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName: {}
serializedVersion: 2 serializedVersion: 2
@ -15,17 +17,17 @@ TextureImporter:
bumpmap: bumpmap:
convertToNormalMap: 0 convertToNormalMap: 0
externalNormalMap: 0 externalNormalMap: 0
heightScale: .25 heightScale: 0.25
normalMapFilter: 0 normalMapFilter: 0
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0 cubemapConvolution: 0
cubemapConvolutionSteps: 8 cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5 cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 2048
textureSettings: textureSettings:
filterMode: -1 filterMode: -1
aniso: 1 aniso: 1
@ -35,18 +37,22 @@ TextureImporter:
lightmap: 0 lightmap: 0
rGBM: 0 rGBM: 0
compressionQuality: 50 compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0 spriteMode: 0
spriteExtrude: 1 spriteExtrude: 1
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: .5, y: .5} spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 1 alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2 textureType: 2
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
serializedVersion: 2
sprites: [] sprites: []
outline: []
spritePackingTag: spritePackingTag:
userData: userData:
assetBundleName: assetBundleName:

BIN
Assets/Fungus/EditorResources/Icons/Pro/delete.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

59
Assets/Fungus/EditorResources/Icons/Pro/delete.png.meta

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 29c4d29b1678042a5b3516c732ccc507
timeCreated: 1478502692
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Fungus/EditorResources/Icons/Pro/down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

59
Assets/Fungus/EditorResources/Icons/Pro/down.png.meta

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 5a87a7d3683164a238377d948572805f
timeCreated: 1478502692
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Fungus/EditorResources/Icons/Pro/duplicate.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

59
Assets/Fungus/EditorResources/Icons/Pro/duplicate.png.meta

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 2f17490d993c84bd7872ef6588ffba47
timeCreated: 1478502692
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Fungus/EditorResources/Icons/Pro/up.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

59
Assets/Fungus/EditorResources/Icons/Pro/up.png.meta

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 2a76a781db2994b33b83cd84b8835da7
timeCreated: 1478502692
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

0
Assets/Fungus/Resources/Icons/add.png → Assets/Fungus/EditorResources/Icons/add.png

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
Assets/Fungus/Resources/Icons/add.png.meta → Assets/Fungus/EditorResources/Icons/add.png.meta

0
Assets/Fungus/Resources/Icons/add_small.png → Assets/Fungus/EditorResources/Icons/add_small.png

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

0
Assets/Fungus/Resources/Icons/add_small.png.meta → Assets/Fungus/EditorResources/Icons/add_small.png.meta

0
Assets/Fungus/Resources/Icons/delete.png → Assets/Fungus/EditorResources/Icons/delete.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
Assets/Fungus/Resources/Icons/delete.png.meta → Assets/Fungus/EditorResources/Icons/delete.png.meta

0
Assets/Fungus/Resources/Icons/down.png → Assets/Fungus/EditorResources/Icons/down.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
Assets/Fungus/Resources/Icons/down.png.meta → Assets/Fungus/EditorResources/Icons/down.png.meta

0
Assets/Fungus/Resources/Icons/duplicate.png → Assets/Fungus/EditorResources/Icons/duplicate.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
Assets/Fungus/Resources/Icons/duplicate.png.meta → Assets/Fungus/EditorResources/Icons/duplicate.png.meta

0
Assets/Fungus/Resources/Icons/up.png → Assets/Fungus/EditorResources/Icons/up.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
Assets/Fungus/Resources/Icons/up.png.meta → Assets/Fungus/EditorResources/Icons/up.png.meta

0
Assets/Fungus/Resources/Textures.meta → Assets/Fungus/EditorResources/Textures.meta

BIN
Assets/Fungus/EditorResources/Textures/bullet_point.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

10
Assets/Fungus/Resources/Icons/ResizeHandle.png.meta → Assets/Fungus/EditorResources/Textures/bullet_point.png.meta

@ -1,5 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: c8b63a574d777374a918f2900930e540 guid: 4ef739c68bb234717a60a2bb83ff8602
timeCreated: 1479950896
licenseType: Pro
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName: {}
serializedVersion: 2 serializedVersion: 2
@ -21,13 +23,13 @@ TextureImporter:
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0 cubemapConvolution: 0
cubemapConvolutionSteps: 8 cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5 cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 2048
textureSettings: textureSettings:
filterMode: -1 filterMode: 0
aniso: 1 aniso: 1
mipBias: -1 mipBias: -1
wrapMode: 1 wrapMode: 1

0
Assets/Fungus/Resources/Textures/choice_node_off.png → Assets/Fungus/EditorResources/Textures/choice_node_off.png

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

0
Assets/Fungus/Resources/Textures/choice_node_off.png.meta → Assets/Fungus/EditorResources/Textures/choice_node_off.png.meta

0
Assets/Fungus/Resources/Textures/choice_node_on.png → Assets/Fungus/EditorResources/Textures/choice_node_on.png

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
Assets/Fungus/Resources/Textures/choice_node_on.png.meta → Assets/Fungus/EditorResources/Textures/choice_node_on.png.meta

0
Assets/Fungus/Resources/Textures/command_background.png → Assets/Fungus/EditorResources/Textures/command_background.png

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

0
Assets/Fungus/Resources/Textures/command_background.png.meta → Assets/Fungus/EditorResources/Textures/command_background.png.meta

BIN
Assets/Fungus/EditorResources/Textures/connection_point.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 B

59
Assets/Fungus/EditorResources/Textures/connection_point.png.meta

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: f08a4c27d7efe4aa6a35348a4e8aec8f
timeCreated: 1478932274
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -3
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

0
Assets/Fungus/Resources/Textures/event_node_off.png → Assets/Fungus/EditorResources/Textures/event_node_off.png

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
Assets/Fungus/Resources/Textures/event_node_off.png.meta → Assets/Fungus/EditorResources/Textures/event_node_off.png.meta

0
Assets/Fungus/Resources/Textures/event_node_on.png → Assets/Fungus/EditorResources/Textures/event_node_on.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
Assets/Fungus/Resources/Textures/event_node_on.png.meta → Assets/Fungus/EditorResources/Textures/event_node_on.png.meta

0
Assets/Fungus/Resources/Textures/play_big.png → Assets/Fungus/EditorResources/Textures/play_big.png

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

0
Assets/Fungus/Resources/Textures/play_big.png.meta → Assets/Fungus/EditorResources/Textures/play_big.png.meta

0
Assets/Fungus/Resources/Textures/play_small.png → Assets/Fungus/EditorResources/Textures/play_small.png

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

0
Assets/Fungus/Resources/Textures/play_small.png.meta → Assets/Fungus/EditorResources/Textures/play_small.png.meta

0
Assets/Fungus/Resources/Textures/process_node_off.png → Assets/Fungus/EditorResources/Textures/process_node_off.png

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
Assets/Fungus/Resources/Textures/process_node_off.png.meta → Assets/Fungus/EditorResources/Textures/process_node_off.png.meta

0
Assets/Fungus/Resources/Textures/process_node_on.png → Assets/Fungus/EditorResources/Textures/process_node_on.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
Assets/Fungus/Resources/Textures/process_node_on.png.meta → Assets/Fungus/EditorResources/Textures/process_node_on.png.meta

138
Assets/Fungus/Resources/GLLineDraw.mat

@ -1,138 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: GLLineDraw
m_Shader: {fileID: 4800000, guid: ef64b0d30343049d4a634192975fab73, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: -1
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: .5
data:
first:
name: _Parallax
second: .0199999996
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: .5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 1, g: 1, b: 1, a: 1}

11
Assets/Fungus/Resources/GLLineDraw.shader

@ -1,11 +0,0 @@
Shader "Lines/Colored Blended" {
SubShader {
Pass {
Blend SrcAlpha OneMinusSrcAlpha
ZWrite Off Cull Off Fog { Mode Off }
BindChannels {
Bind "vertex", vertex Bind "color", color
}
}
}
}

9
Assets/Fungus/Resources/GLLineDraw.shader.meta

@ -1,9 +0,0 @@
fileFormatVersion: 2
guid: ef64b0d30343049d4a634192975fab73
timeCreated: 1434114816
licenseType: Free
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Fungus/Resources/Icons/ResizeHandle.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
Assets/Fungus/Resources/Icons/left.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

BIN
Assets/Fungus/Resources/Icons/right.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

6
Assets/Fungus/Scripts/Commands/End.cs

@ -24,8 +24,10 @@ namespace Fungus
{ {
for (int i = CommandIndex - 1; i >= 0; --i) for (int i = CommandIndex - 1; i >= 0; --i)
{ {
System.Type commandType = ParentBlock.CommandList[i].GetType(); var command = ParentBlock.CommandList[i];
if (commandType == typeof(While))
if (command.IndentLevel == IndentLevel &&
command.GetType() == typeof(While))
{ {
Continue(i); Continue(i);
return; return;

10
Assets/Fungus/Scripts/Editor/BlockEditor.cs

@ -41,11 +41,11 @@ namespace Fungus.EditorUtils
protected virtual void OnEnable() protected virtual void OnEnable()
{ {
upIcon = Resources.Load("Icons/up") as Texture2D; upIcon = FungusEditorResources.Up;
downIcon = Resources.Load("Icons/down") as Texture2D; downIcon = FungusEditorResources.Down;
addIcon = Resources.Load("Icons/add") as Texture2D; addIcon = FungusEditorResources.Add;
duplicateIcon = Resources.Load("Icons/duplicate") as Texture2D; duplicateIcon = FungusEditorResources.Duplicate;
deleteIcon = Resources.Load("Icons/delete") as Texture2D; deleteIcon = FungusEditorResources.Delete;
} }
public virtual void DrawBlockName(Flowchart flowchart) public virtual void DrawBlockName(Flowchart flowchart)

4
Assets/Fungus/Scripts/Editor/CommandListAdaptor.cs

@ -213,7 +213,7 @@ namespace Fungus.EditorUtils
string commandName = commandInfoAttr.CommandName; string commandName = commandInfoAttr.CommandName;
GUIStyle commandLabelStyle = new GUIStyle(GUI.skin.box); GUIStyle commandLabelStyle = new GUIStyle(GUI.skin.box);
commandLabelStyle.normal.background = FungusEditorResources.texCommandBackground; commandLabelStyle.normal.background = FungusEditorResources.CommandBackground;
int borderSize = 5; int borderSize = 5;
commandLabelStyle.border.top = borderSize; commandLabelStyle.border.top = borderSize;
commandLabelStyle.border.bottom = borderSize; commandLabelStyle.border.bottom = borderSize;
@ -420,7 +420,7 @@ namespace Fungus.EditorUtils
alpha = Mathf.Clamp01(alpha); alpha = Mathf.Clamp01(alpha);
GUI.color = new Color(1f, 1f, 1f, alpha); GUI.color = new Color(1f, 1f, 1f, alpha);
GUI.Label(iconRect, FungusEditorResources.texPlaySmall, new GUIStyle()); GUI.Label(iconRect, FungusEditorResources.PlaySmall, new GUIStyle());
GUI.color = storeColor; GUI.color = storeColor;
} }

2
Assets/Fungus/Scripts/Editor/FlowchartEditor.cs

@ -50,7 +50,7 @@ namespace Fungus.EditorUtils
luaEnvironmentProp = serializedObject.FindProperty("luaEnvironment"); luaEnvironmentProp = serializedObject.FindProperty("luaEnvironment");
luaBindingNameProp = serializedObject.FindProperty("luaBindingName"); luaBindingNameProp = serializedObject.FindProperty("luaBindingName");
addTexture = Resources.Load("Icons/add_small") as Texture2D; addTexture = FungusEditorResources.AddSmall;
} }
public override void OnInspectorGUI() public override void OnInspectorGUI()

853
Assets/Fungus/Scripts/Editor/FlowchartWindow.cs

File diff suppressed because it is too large Load Diff

297
Assets/Fungus/Scripts/Editor/FungusEditorResources.cs

@ -1,149 +1,222 @@
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). // This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine; using UnityEngine;
using UnityEditor; using UnityEditor;
using UnityEditor.Callbacks;
using System; using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
#if UNITY_5_0 || UNITY_5_1
using System.Reflection;
#endif
namespace Fungus.EditorUtils namespace Fungus.EditorUtils
{ {
internal static class FungusEditorResources [CustomEditor(typeof(FungusEditorResources))]
internal class FungusEditorResourcesInspector : Editor
{ {
public override void OnInspectorGUI()
{
if (serializedObject.FindProperty("updateOnReloadScripts").boolValue)
{
GUILayout.Label("Updating...");
}
else
{
if (GUILayout.Button("Sync with EditorResources folder"))
{
FungusEditorResources.GenerateResourcesScript();
}
static FungusEditorResources() { DrawDefaultInspector();
GenerateSpecialTextures(); }
LoadResourceAssets();
} }
}
private enum ResourceName // Handle reimporting all assets
{ internal class EditorResourcesPostProcessor : AssetPostprocessor
command_background = 0, {
choice_node_off, private static void OnPostprocessAllAssets(string[] importedAssets, string[] _, string[] __, string[] ___)
choice_node_on,
process_node_off,
process_node_on,
event_node_off,
event_node_on,
play_big,
play_small
}
private static string[] s_LightSkin = {
"command_background",
"choice_node_off",
"choice_node_on",
"process_node_off",
"process_node_on",
"event_node_off",
"event_node_on",
"play_big",
"play_small"
};
private static string[] s_DarkSkin = {
"command_background",
"choice_node_off",
"choice_node_on",
"process_node_off",
"process_node_on",
"event_node_off",
"event_node_on",
"play_big",
"play_small"
};
public static Texture2D texCommandBackground
{ {
get { return s_Cached[(int)ResourceName.command_background]; } foreach (var path in importedAssets)
{
if (path.EndsWith("FungusEditorResources.asset"))
{
var asset = AssetDatabase.LoadAssetAtPath(path, typeof(FungusEditorResources)) as FungusEditorResources;
if (asset != null)
{
FungusEditorResources.UpdateTextureReferences(asset);
AssetDatabase.SaveAssets();
return;
}
}
}
} }
}
public static Texture2D texEventNodeOn internal partial class FungusEditorResources : ScriptableObject
{ {
get { return s_Cached[(int)ResourceName.event_node_on]; } [Serializable]
} internal class EditorTexture
public static Texture2D texEventNodeOff
{ {
get { return s_Cached[(int)ResourceName.event_node_off]; } [SerializeField] private Texture2D free;
} [SerializeField] private Texture2D pro;
public static Texture2D texProcessNodeOn public Texture2D Texture2D
{ {
get { return s_Cached[(int)ResourceName.process_node_on]; } get { return EditorGUIUtility.isProSkin && pro != null ? pro : free; }
} }
public static Texture2D texProcessNodeOff
{
get { return s_Cached[(int)ResourceName.process_node_off]; }
}
public static Texture2D texChoiceNodeOn public EditorTexture(Texture2D free, Texture2D pro)
{ {
get { return s_Cached[(int)ResourceName.choice_node_on]; } this.free = free;
} this.pro = pro;
}
public static Texture2D texChoiceNodeOff
{
get { return s_Cached[(int)ResourceName.choice_node_off]; }
} }
public static Texture2D texPlayBig private static FungusEditorResources instance;
{ private static readonly string editorResourcesFolderName = "\"EditorResources\"";
get { return s_Cached[(int)ResourceName.play_big]; } [SerializeField] [HideInInspector] private bool updateOnReloadScripts = false;
}
public static Texture2D texPlaySmall internal static FungusEditorResources Instance
{ {
get { return s_Cached[(int)ResourceName.play_small]; } get
} {
if (instance == null)
{
var guids = AssetDatabase.FindAssets("FungusEditorResources t:FungusEditorResources");
public static Texture2D texItemSplitter { get; private set; } if (guids.Length == 0)
{
private static void GenerateSpecialTextures() instance = ScriptableObject.CreateInstance(typeof(FungusEditorResources)) as FungusEditorResources;
{ AssetDatabase.CreateAsset(instance, GetRootFolder() + "/FungusEditorResources.asset");
var splitterColor = EditorGUIUtility.isProSkin }
? new Color(1f, 1f, 1f, 0.14f) else
: new Color(0.59f, 0.59f, 0.59f, 0.55f) {
; if (guids.Length > 1)
texItemSplitter = CreatePixelTexture("(Generated) Item Splitter", splitterColor); {
Debug.LogWarning("Multiple FungusEditorResources assets found!");
}
var path = AssetDatabase.GUIDToAssetPath(guids[0]);
instance = AssetDatabase.LoadAssetAtPath(path, typeof(FungusEditorResources)) as FungusEditorResources;
}
}
return instance;
}
} }
public static Texture2D CreatePixelTexture(string name, Color color) private static string GetRootFolder()
{ {
var tex = new Texture2D(1, 1, TextureFormat.ARGB32, false, true); var rootGuid = AssetDatabase.FindAssets(editorResourcesFolderName)[0];
tex.name = name; return AssetDatabase.GUIDToAssetPath(rootGuid);
tex.hideFlags = HideFlags.HideAndDontSave;
tex.filterMode = FilterMode.Point;
tex.SetPixel(0, 0, color);
tex.Apply();
return tex;
} }
private static Texture2D[] s_Cached; internal static void GenerateResourcesScript()
public static void LoadResourceAssets()
{ {
var skin = EditorGUIUtility.isProSkin ? s_DarkSkin : s_LightSkin; // Get all unique filenames
s_Cached = new Texture2D[skin.Length]; var textureNames = new HashSet<string>();
var guids = AssetDatabase.FindAssets("t:Texture2D", new [] { GetRootFolder() });
var paths = guids.Select(guid => AssetDatabase.GUIDToAssetPath(guid));
for (int i = 0; i < s_Cached.Length; ++i) foreach (var path in paths)
{ {
s_Cached[i] = Resources.Load("Textures/" + skin[i]) as Texture2D; textureNames.Add(Path.GetFileNameWithoutExtension(path));
} }
var scriptGuid = AssetDatabase.FindAssets("FungusEditorResources t:MonoScript")[0];
var relativePath = AssetDatabase.GUIDToAssetPath(scriptGuid).Replace("FungusEditorResources.cs", "FungusEditorResourcesGenerated.cs");
var absolutePath = Application.dataPath + relativePath.Substring("Assets".Length);
s_LightSkin = null; using (var writer = new StreamWriter(absolutePath))
s_DarkSkin = null; {
writer.WriteLine("// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).");
writer.WriteLine("// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)");
writer.WriteLine("");
writer.WriteLine("using UnityEngine;");
writer.WriteLine("");
writer.WriteLine("namespace Fungus.EditorUtils");
writer.WriteLine("{");
writer.WriteLine(" internal partial class FungusEditorResources : ScriptableObject");
writer.WriteLine(" {");
foreach (var name in textureNames)
{
writer.WriteLine(" [SerializeField] private EditorTexture " + name + ";");
}
writer.WriteLine("");
foreach (var name in textureNames)
{
var pascalCase = string.Join("", name.Split(new [] { '_' }, StringSplitOptions.RemoveEmptyEntries).Select(
s => s.Substring(0, 1).ToUpper() + s.Substring(1)).ToArray()
);
writer.WriteLine(" public static Texture2D " + pascalCase + " { get { return Instance." + name + ".Texture2D; } }");
}
writer.WriteLine(" }");
writer.WriteLine("}");
}
Instance.updateOnReloadScripts = true;
AssetDatabase.ImportAsset(relativePath);
} }
private static void GetImageSize(byte[] imageData, out int width, out int height) [DidReloadScripts]
private static void OnDidReloadScripts()
{ {
width = ReadInt(imageData, 3 + 15); if (Instance.updateOnReloadScripts)
height = ReadInt(imageData, 3 + 15 + 2 + 2); {
UpdateTextureReferences(Instance);
}
} }
private static int ReadInt(byte[] imageData, int offset) internal static void UpdateTextureReferences(FungusEditorResources instance)
{ {
return (imageData[offset] << 8) | imageData[offset + 1]; // Iterate through all fields in instance and set texture references
var serializedObject = new SerializedObject(instance);
var prop = serializedObject.GetIterator();
var rootFolder = new [] { GetRootFolder() };
prop.NextVisible(true);
while (prop.NextVisible(false))
{
if (prop.propertyType == SerializedPropertyType.Generic)
{
var guids = AssetDatabase.FindAssets(prop.name + " t:Texture2D", rootFolder);
var paths = guids.Select(guid => AssetDatabase.GUIDToAssetPath(guid)).Where(
path => path.Contains(prop.name + ".")
);
foreach (var path in paths)
{
var texture = AssetDatabase.LoadAssetAtPath(path, typeof(Texture2D)) as Texture2D;
if (path.ToLower().Contains("/pro/"))
{
prop.FindPropertyRelative("pro").objectReferenceValue = texture;
}
else
{
prop.FindPropertyRelative("free").objectReferenceValue = texture;
}
}
}
}
serializedObject.FindProperty("updateOnReloadScripts").boolValue = false;
// The ApplyModifiedPropertiesWithoutUndo() function wasn't documented until Unity 5.2
#if UNITY_5_0 || UNITY_5_1
var flags = BindingFlags.Instance | BindingFlags.NonPublic;
var applyMethod = typeof(SerializedObject).GetMethod("ApplyModifiedPropertiesWithoutUndo", flags);
applyMethod.Invoke(serializedObject, null);
#else
serializedObject.ApplyModifiedPropertiesWithoutUndo();
#endif
} }
} }
} }

46
Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs

@ -0,0 +1,46 @@
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine;
namespace Fungus.EditorUtils
{
internal partial class FungusEditorResources : ScriptableObject
{
[SerializeField] private EditorTexture add;
[SerializeField] private EditorTexture add_small;
[SerializeField] private EditorTexture delete;
[SerializeField] private EditorTexture down;
[SerializeField] private EditorTexture duplicate;
[SerializeField] private EditorTexture up;
[SerializeField] private EditorTexture bullet_point;
[SerializeField] private EditorTexture choice_node_off;
[SerializeField] private EditorTexture choice_node_on;
[SerializeField] private EditorTexture command_background;
[SerializeField] private EditorTexture connection_point;
[SerializeField] private EditorTexture event_node_off;
[SerializeField] private EditorTexture event_node_on;
[SerializeField] private EditorTexture play_big;
[SerializeField] private EditorTexture play_small;
[SerializeField] private EditorTexture process_node_off;
[SerializeField] private EditorTexture process_node_on;
public static Texture2D Add { get { return Instance.add.Texture2D; } }
public static Texture2D AddSmall { get { return Instance.add_small.Texture2D; } }
public static Texture2D Delete { get { return Instance.delete.Texture2D; } }
public static Texture2D Down { get { return Instance.down.Texture2D; } }
public static Texture2D Duplicate { get { return Instance.duplicate.Texture2D; } }
public static Texture2D Up { get { return Instance.up.Texture2D; } }
public static Texture2D BulletPoint { get { return Instance.bullet_point.Texture2D; } }
public static Texture2D ChoiceNodeOff { get { return Instance.choice_node_off.Texture2D; } }
public static Texture2D ChoiceNodeOn { get { return Instance.choice_node_on.Texture2D; } }
public static Texture2D CommandBackground { get { return Instance.command_background.Texture2D; } }
public static Texture2D ConnectionPoint { get { return Instance.connection_point.Texture2D; } }
public static Texture2D EventNodeOff { get { return Instance.event_node_off.Texture2D; } }
public static Texture2D EventNodeOn { get { return Instance.event_node_on.Texture2D; } }
public static Texture2D PlayBig { get { return Instance.play_big.Texture2D; } }
public static Texture2D PlaySmall { get { return Instance.play_small.Texture2D; } }
public static Texture2D ProcessNodeOff { get { return Instance.process_node_off.Texture2D; } }
public static Texture2D ProcessNodeOn { get { return Instance.process_node_on.Texture2D; } }
}
}

6
Assets/Fungus/Scripts/Editor/GLDraw.cs.meta → Assets/Fungus/Scripts/Editor/FungusEditorResourcesGenerated.cs.meta

@ -1,8 +1,12 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 5184535fd41514a0ebd42c1d70a53545 guid: f5119f9bdde234916bed657bdc751f76
timeCreated: 1478502142
licenseType: Free
MonoImporter: MonoImporter:
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []
executionOrder: 0 executionOrder: 0
icon: {instanceID: 0} icon: {instanceID: 0}
userData: userData:
assetBundleName:
assetBundleVariant:

292
Assets/Fungus/Scripts/Editor/GLDraw.cs

@ -1,292 +0,0 @@
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus).
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine;
namespace Fungus.EditorUtils
{
/// <summary>
/// Clipping code: http://forum.unity3d.com/threads/17066-How-to-draw-a-GUI-2D-quot-line-quot?p=230386#post230386
/// Thick line drawing code: http://unifycommunity.com/wiki/index.php?title=VectorLine
/// Credit: "http://cs-people.bu.edu/jalon/cs480/Oct11Lab/clip.c"
/// </summary>
public class GLDraw
{
protected static bool clippingEnabled;
protected static Rect clippingBounds;
public static Material lineMaterial = null;
protected static bool clip_test(float p, float q, ref float u1, ref float u2)
{
float r;
bool retval = true;
if (p < 0.0)
{
r = q / p;
if (r > u2)
retval = false;
else if (r > u1)
u1 = r;
}
else if (p > 0.0)
{
r = q / p;
if (r < u1)
retval = false;
else if (r < u2)
u2 = r;
}
else if (q < 0.0)
retval = false;
return retval;
}
public static bool segment_rect_intersection(Rect bounds, ref Vector2 p1, ref Vector2 p2)
{
float u1 = 0.0f, u2 = 1.0f, dx = p2.x - p1.x, dy;
if (clip_test(-dx, p1.x - bounds.xMin, ref u1, ref u2))
{
if (clip_test(dx, bounds.xMax - p1.x, ref u1, ref u2))
{
dy = p2.y - p1.y;
if (clip_test(-dy, p1.y - bounds.yMin, ref u1, ref u2))
{
if (clip_test(dy, bounds.yMax - p1.y, ref u1, ref u2))
{
if (u2 < 1.0)
{
p2.x = p1.x + u2 * dx;
p2.y = p1.y + u2 * dy;
}
if (u1 > 0.0)
{
p1.x += u1 * dx;
p1.y += u1 * dy;
}
return true;
}
}
}
}
return false;
}
public static void BeginGroup(Rect position)
{
clippingEnabled = true;
clippingBounds = new Rect(0, 0, position.width, position.height);
GUI.BeginGroup(position);
}
public static void EndGroup()
{
GUI.EndGroup();
clippingBounds = new Rect(0, 0, Screen.width, Screen.height);
clippingEnabled = false;
}
public static Vector2 BeginScrollView(Rect position, Vector2 scrollPos, Rect viewRect, Rect clipRect)
{
clippingEnabled = true;
clippingBounds = clipRect;
return GUI.BeginScrollView(position, scrollPos, viewRect, GUIStyle.none, GUIStyle.none);
}
public static void EndScrollView()
{
GUI.EndScrollView();
clippingBounds = new Rect(0, 0, Screen.width, Screen.height);
clippingEnabled = false;
}
public static void CreateMaterial()
{
if (lineMaterial != null)
return;
lineMaterial = Resources.Load("GLLineDraw", typeof(Material)) as Material;
}
public static void DrawLine(Vector2 start, Vector2 end, Color color, float width)
{
if (Event.current == null)
return;
if (Event.current.type != EventType.repaint)
return;
if (clippingEnabled)
if (!segment_rect_intersection(clippingBounds, ref start, ref end))
return;
CreateMaterial();
lineMaterial.SetPass(0);
Vector3 startPt;
Vector3 endPt;
if (width == 1)
{
GL.Begin(GL.LINES);
GL.Color(color);
startPt = new Vector3(start.x, start.y, 0);
endPt = new Vector3(end.x, end.y, 0);
GL.Vertex(startPt);
GL.Vertex(endPt);
}
else
{
GL.Begin(GL.QUADS);
GL.Color(color);
startPt = new Vector3(end.y, start.x, 0);
endPt = new Vector3(start.y, end.x, 0);
Vector3 perpendicular = (startPt - endPt).normalized * width;
Vector3 v1 = new Vector3(start.x, start.y, 0);
Vector3 v2 = new Vector3(end.x, end.y, 0);
GL.Vertex(v1 - perpendicular);
GL.Vertex(v1 + perpendicular);
GL.Vertex(v2 + perpendicular);
GL.Vertex(v2 - perpendicular);
}
GL.End();
}
public static void DrawRect(Rect rect, Color color)
{
if (Event.current == null)
return;
if (Event.current.type != EventType.repaint)
return;
CreateMaterial();
// set the current material
lineMaterial.SetPass( 0 );
GL.Begin( GL.QUADS );
GL.Color( color );
GL.Vertex3( rect.xMin, rect.yMin, 0 );
GL.Vertex3( rect.xMax, rect.yMin, 0 );
GL.Vertex3( rect.xMax, rect.yMax, 0 );
GL.Vertex3( rect.xMin, rect.yMax, 0 );
GL.End();
}
public static void DrawBox(Rect box, Color color, float width)
{
Vector2 p1 = new Vector2(box.xMin, box.yMin);
Vector2 p2 = new Vector2(box.xMax, box.yMin);
Vector2 p3 = new Vector2(box.xMax, box.yMax);
Vector2 p4 = new Vector2(box.xMin, box.yMax);
DrawLine(p1, p2, color, width);
DrawLine(p2, p3, color, width);
DrawLine(p3, p4, color, width);
DrawLine(p4, p1, color, width);
}
public static void DrawBox(Vector2 topLeftCorner, Vector2 bottomRightCorner, Color color, float width)
{
Rect box = new Rect(topLeftCorner.x, topLeftCorner.y, bottomRightCorner.x - topLeftCorner.x, bottomRightCorner.y - topLeftCorner.y);
DrawBox(box, color, width);
}
public static void DrawRoundedBox(Rect box, float radius, Color color, float width)
{
Vector2 p1, p2, p3, p4, p5, p6, p7, p8;
p1 = new Vector2(box.xMin + radius, box.yMin);
p2 = new Vector2(box.xMax - radius, box.yMin);
p3 = new Vector2(box.xMax, box.yMin + radius);
p4 = new Vector2(box.xMax, box.yMax - radius);
p5 = new Vector2(box.xMax - radius, box.yMax);
p6 = new Vector2(box.xMin + radius, box.yMax);
p7 = new Vector2(box.xMin, box.yMax - radius);
p8 = new Vector2(box.xMin, box.yMin + radius);
DrawLine(p1, p2, color, width);
DrawLine(p3, p4, color, width);
DrawLine(p5, p6, color, width);
DrawLine(p7, p8, color, width);
Vector2 t1, t2;
float halfRadius = radius / 2;
t1 = new Vector2(p8.x, p8.y + halfRadius);
t2 = new Vector2(p1.x - halfRadius, p1.y);
DrawBezier(p8, t1, p1, t2, color, width);
t1 = new Vector2(p2.x + halfRadius, p2.y);
t2 = new Vector2(p3.x, p3.y - halfRadius);
DrawBezier(p2, t1, p3, t2, color, width);
t1 = new Vector2(p4.x, p4.y + halfRadius);
t2 = new Vector2(p5.x + halfRadius, p5.y);
DrawBezier(p4, t1, p5, t2, color, width);
t1 = new Vector2(p6.x - halfRadius, p6.y);
t2 = new Vector2(p7.x, p7.y + halfRadius);
DrawBezier(p6, t1, p7, t2, color, width);
}
public static void DrawConnectingCurve(Vector2 start, Vector2 end, Color color, float width)
{
Vector2 distance = start - end;
Vector2 tangentA = start;
tangentA.x -= distance.x * 0.5f;
Vector2 tangentB = end;
tangentB.x += distance.x * 0.5f;
int segments = Mathf.FloorToInt((distance.magnitude / 20) * 3);
DrawBezier(start, tangentA, end, tangentB, color, width, segments);
Vector2 pA = CubeBezier(start, tangentA, end, tangentB, 0.6f);
Vector2 pB = CubeBezier(start, tangentA, end, tangentB, 0.7f);
float arrowHeadSize = 5;
Vector2 arrowPosA = pB;
Vector2 arrowPosB = arrowPosA;
Vector2 arrowPosC = arrowPosA;
Vector2 dir = (pB - pA).normalized;
arrowPosB.x += dir.y * arrowHeadSize;
arrowPosB.y -= dir.x * arrowHeadSize;
arrowPosB -= dir * arrowHeadSize;
arrowPosC.x -= dir.y * arrowHeadSize;
arrowPosC.y += dir.x * arrowHeadSize;
arrowPosC -= dir * arrowHeadSize;
DrawLine(arrowPosA, arrowPosB, color, 1.025f);
DrawLine(arrowPosA, arrowPosC, color, 1.025f);
}
public static void DrawBezier(Vector2 start, Vector2 startTangent, Vector2 end, Vector2 endTangent, Color color, float width)
{
int segments = Mathf.FloorToInt((start - end).magnitude / 20) * 3; // Three segments per distance of 20
DrawBezier(start, startTangent, end, endTangent, color, width, segments);
}
public static void DrawBezier(Vector2 start, Vector2 startTangent, Vector2 end, Vector2 endTangent, Color color, float width, int segments)
{
Vector2 startVector = CubeBezier(start, startTangent, end, endTangent, 0);
for (int i = 1; i <= segments; i++)
{
Vector2 endVector = CubeBezier(start, startTangent, end, endTangent, i / (float)segments);
DrawLine(startVector, endVector, color, width);
startVector = endVector;
}
}
private static Vector2 CubeBezier(Vector2 s, Vector2 st, Vector2 e, Vector2 et, float t)
{
float rt = 1 - t;
float rtt = rt * t;
return rt * rt * rt * s + 3 * rt * rtt * st + 3 * rtt * t * et + t * t * t * e;
}
}
}

29
Assets/Fungus/Scripts/EventHandlers/ObjectClicked.cs

@ -2,6 +2,7 @@
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE)
using UnityEngine; using UnityEngine;
using System.Collections;
namespace Fungus namespace Fungus
{ {
@ -17,6 +18,32 @@ namespace Fungus
[Tooltip("Object that the user can click or tap on")] [Tooltip("Object that the user can click or tap on")]
[SerializeField] protected Clickable2D clickableObject; [SerializeField] protected Clickable2D clickableObject;
[Tooltip("Wait for a number of frames before executing the block.")]
[SerializeField] protected int waitFrames = 1;
/// <summary>
/// Executing a block on the same frame that the object is clicked can cause
/// input problems (e.g. auto completing Say Dialog text). A single frame delay
/// fixes the problem.
/// </summary>
protected virtual IEnumerator DoExecuteBlock(int numFrames)
{
if (numFrames == 0)
{
ExecuteBlock();
yield break;
}
int count = Mathf.Max(waitFrames, 1);
while (count > 0)
{
count--;
yield return new WaitForEndOfFrame();
}
ExecuteBlock();
}
#region Public members #region Public members
/// <summary> /// <summary>
@ -26,7 +53,7 @@ namespace Fungus
{ {
if (clickableObject == this.clickableObject) if (clickableObject == this.clickableObject)
{ {
ExecuteBlock(); StartCoroutine(DoExecuteBlock(waitFrames));
} }
} }

572
Assets/Tests/Scripting/Scripting.unity

@ -163,6 +163,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 115525222} parentBlock: {fileID: 115525222}
waitForFrames: 1
--- !u!114 &115525222 --- !u!114 &115525222
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -181,6 +182,8 @@ MonoBehaviour:
y: 70 y: 70
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -212,7 +215,7 @@ MonoBehaviour:
y: -340 y: -340
width: 1114 width: 1114
height: 859 height: 859
selectedBlock: {fileID: 115525222} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: [] variables: []
description: description:
@ -301,6 +304,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 169310214} parentBlock: {fileID: 169310214}
waitForFrames: 1
--- !u!114 &169310214 --- !u!114 &169310214
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -319,6 +323,8 @@ MonoBehaviour:
y: 69 y: 69
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -350,7 +356,7 @@ MonoBehaviour:
y: -350 y: -350
width: 1126 width: 1126
height: 869 height: 869
selectedBlock: {fileID: 0} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: [] variables: []
description: If none of the other Flowcharts have Failed then this one will succeed description: If none of the other Flowcharts have Failed then this one will succeed
@ -404,7 +410,7 @@ MonoBehaviour:
y: -340 y: -340
width: 1114 width: 1114
height: 859 height: 859
selectedBlock: {fileID: 0} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: variables:
- {fileID: 178675537} - {fileID: 178675537}
@ -690,6 +696,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 265055379} parentBlock: {fileID: 265055379}
waitForFrames: 1
--- !u!114 &265055379 --- !u!114 &265055379
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -707,6 +714,8 @@ MonoBehaviour:
y: 70 y: 70
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 1 itemId: 1
blockName: BlockB blockName: BlockB
description: The block that does the stopping description: The block that does the stopping
@ -733,6 +742,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 265055381} parentBlock: {fileID: 265055381}
waitForFrames: 1
--- !u!114 &265055381 --- !u!114 &265055381
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -751,6 +761,8 @@ MonoBehaviour:
y: 70 y: 70
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: BlockA blockName: BlockA
description: The block to be stopped description: The block to be stopped
@ -782,7 +794,7 @@ MonoBehaviour:
y: -350 y: -350
width: 1121 width: 1121
height: 869 height: 869
selectedBlock: {fileID: 265055379} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: variables:
- {fileID: 265055376} - {fileID: 265055376}
@ -890,7 +902,7 @@ MonoBehaviour:
y: -340 y: -340
width: 1114 width: 1114
height: 892 height: 892
selectedBlock: {fileID: 396492930} selectedBlocks: []
selectedCommands: selectedCommands:
- {fileID: 396492940} - {fileID: 396492940}
variables: variables:
@ -967,6 +979,8 @@ MonoBehaviour:
y: 111 y: 111
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -1035,6 +1049,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 396492930} parentBlock: {fileID: 396492930}
waitForFrames: 1
--- !u!114 &396492934 --- !u!114 &396492934
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1357,6 +1372,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 491823362} parentBlock: {fileID: 491823362}
waitForFrames: 1
--- !u!114 &491823362 --- !u!114 &491823362
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1375,6 +1391,8 @@ MonoBehaviour:
y: 70 y: 70
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -1412,7 +1430,8 @@ MonoBehaviour:
y: -340 y: -340
width: 1114 width: 1114
height: 859 height: 859
selectedBlock: {fileID: 491823362} selectedBlocks:
- {fileID: 491823362}
selectedCommands: [] selectedCommands: []
variables: variables:
- {fileID: 491823359} - {fileID: 491823359}
@ -1523,6 +1542,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 575910004} parentBlock: {fileID: 575910004}
waitForFrames: 1
--- !u!114 &575910004 --- !u!114 &575910004
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1540,6 +1560,8 @@ MonoBehaviour:
y: 75 y: 75
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 2 itemId: 2
blockName: New Block blockName: New Block
description: description:
@ -1585,6 +1607,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 575910007} parentBlock: {fileID: 575910007}
waitForFrames: 1
--- !u!114 &575910007 --- !u!114 &575910007
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1603,6 +1626,8 @@ MonoBehaviour:
y: 69 y: 69
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -1634,7 +1659,7 @@ MonoBehaviour:
y: -350 y: -350
width: 1126 width: 1126
height: 869 height: 869
selectedBlock: {fileID: 575910007} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: [] variables: []
description: Test if interupting a Say command works description: Test if interupting a Say command works
@ -1763,6 +1788,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 590474778} parentBlock: {fileID: 590474778}
waitForFrames: 1
--- !u!114 &590474778 --- !u!114 &590474778
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1780,6 +1806,8 @@ MonoBehaviour:
y: 75 y: 75
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 2 itemId: 2
blockName: New Block blockName: New Block
description: description:
@ -1800,6 +1828,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 590474780} parentBlock: {fileID: 590474780}
waitForFrames: 1
--- !u!114 &590474780 --- !u!114 &590474780
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1818,6 +1847,8 @@ MonoBehaviour:
y: 69 y: 69
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -1850,7 +1881,7 @@ MonoBehaviour:
y: -350 y: -350
width: 1126 width: 1126
height: 869 height: 869
selectedBlock: {fileID: 590474780} selectedBlocks: []
selectedCommands: selectedCommands:
- {fileID: 590474773} - {fileID: 590474773}
variables: [] variables: []
@ -1933,6 +1964,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 636123607} parentBlock: {fileID: 636123607}
waitForFrames: 1
--- !u!114 &636123607 --- !u!114 &636123607
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -1951,6 +1983,8 @@ MonoBehaviour:
y: 69 y: 69
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -1983,7 +2017,7 @@ MonoBehaviour:
y: -350 y: -350
width: 1126 width: 1126
height: 869 height: 869
selectedBlock: {fileID: 636123607} selectedBlocks: []
selectedCommands: selectedCommands:
- {fileID: 636123614} - {fileID: 636123614}
variables: [] variables: []
@ -2054,6 +2088,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 636123613} parentBlock: {fileID: 636123613}
waitForFrames: 1
--- !u!114 &636123613 --- !u!114 &636123613
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -2071,6 +2106,8 @@ MonoBehaviour:
y: 75 y: 75
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 2 itemId: 2
blockName: New Block blockName: New Block
description: description:
@ -2152,7 +2189,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3} m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
selectedFlowchart: {fileID: 178675536} selectedFlowchart: {fileID: 675090867}
--- !u!4 &646902075 --- !u!4 &646902075
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
@ -2166,6 +2203,455 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
--- !u!1 &675090853
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 142980, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 675090854}
- 114: {fileID: 675090867}
- 114: {fileID: 675090866}
- 114: {fileID: 675090865}
- 114: {fileID: 675090864}
- 114: {fileID: 675090863}
- 114: {fileID: 675090862}
- 114: {fileID: 675090861}
- 114: {fileID: 675090860}
- 114: {fileID: 675090859}
- 114: {fileID: 675090858}
- 114: {fileID: 675090857}
- 114: {fileID: 675090856}
- 114: {fileID: 675090873}
- 114: {fileID: 675090872}
- 114: {fileID: 675090871}
- 114: {fileID: 675090870}
- 114: {fileID: 675090869}
- 114: {fileID: 675090868}
- 114: {fileID: 675090855}
m_Layer: 0
m_Name: Flowchart
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &675090854
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 467082, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 1220349165}
m_RootOrder: 0
--- !u!114 &675090855
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4920f47cde1a84b11ad07b7317568494, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 15
indentLevel: 0
--- !u!114 &675090856
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 7
indentLevel: 1
variable: {fileID: 675090859}
setOperator: 0
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 0
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090857
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 6
indentLevel: 2
variable: {fileID: 675090859}
setOperator: 2
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 1
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090858
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fb77d0ce495044f6e9feb91b31798e8c, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 5
indentLevel: 1
variable: {fileID: 675090860}
setOperator: 2
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 1
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090859
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3}
m_Name:
m_EditorClassIdentifier:
scope: 0
key: j
value: 0
--- !u!114 &675090860
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: afb91b566ceda411bad1e9d3c3243ecc, type: 3}
m_Name:
m_EditorClassIdentifier:
scope: 0
key: i
value: 0
--- !u!114 &675090861
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 4
indentLevel: 0
--- !u!114 &675090862
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 663c8a7831a104d16ad7078a4dc2bd10, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 3
indentLevel: 1
compareOperator: 2
variable: {fileID: 675090859}
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 3
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090863
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 2
indentLevel: 1
--- !u!114 &675090864
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 663c8a7831a104d16ad7078a4dc2bd10, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 1
indentLevel: 0
compareOperator: 2
variable: {fileID: 675090860}
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 3
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090865
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 11462346, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3}
m_Name:
m_EditorClassIdentifier:
parentBlock: {fileID: 675090866}
waitForFrames: 1
--- !u!114 &675090866
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 11433304, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3}
m_Name:
m_EditorClassIdentifier:
nodeRect:
serializedVersion: 2
x: 67
y: 70
width: 120
height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0
blockName: Start
description:
eventHandler: {fileID: 675090865}
commandList:
- {fileID: 675090864}
- {fileID: 675090856}
- {fileID: 675090858}
- {fileID: 675090862}
- {fileID: 675090857}
- {fileID: 675090863}
- {fileID: 675090861}
- {fileID: 675090873}
- {fileID: 675090871}
- {fileID: 675090872}
- {fileID: 675090870}
- {fileID: 675090869}
- {fileID: 675090868}
- {fileID: 675090855}
--- !u!114 &675090867
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11430050, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
scrollPos: {x: 0, y: 0}
variablesScrollPos: {x: 0, y: 0}
variablesExpanded: 1
blockViewHeight: 400
zoom: 1
scrollViewRect:
serializedVersion: 2
x: -343
y: -340
width: 1114
height: 859
selectedBlocks: []
selectedCommands: []
variables:
- {fileID: 675090860}
- {fileID: 675090859}
description: Check if nested while loops work correctly
stepPause: 0
colorCommands: 1
hideComponents: 1
saveSelection: 1
localizationId:
showLineNumbers: 0
hideCommands: []
luaEnvironment: {fileID: 0}
luaBindingName: flowchart
--- !u!114 &675090868
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 14
indentLevel: 0
--- !u!114 &675090869
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2dcb71131f45b47fead560a97ef55f1c, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 13
indentLevel: 1
failMessage:
--- !u!114 &675090870
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 12
indentLevel: 0
compareOperator: 1
variable: {fileID: 675090859}
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 3
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!114 &675090871
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2dcb71131f45b47fead560a97ef55f1c, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 11
indentLevel: 1
failMessage:
--- !u!114 &675090872
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 93cb9773f2ca04e2bbf7a68ccfc23267, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 10
indentLevel: 0
--- !u!114 &675090873
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 675090853}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 70c5622b8a80845c980954170295f292, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 9
indentLevel: 0
compareOperator: 1
variable: {fileID: 675090860}
booleanData:
booleanRef: {fileID: 0}
booleanVal: 0
integerData:
integerRef: {fileID: 0}
integerVal: 3
floatData:
floatRef: {fileID: 0}
floatVal: 0
stringData:
stringRef: {fileID: 0}
stringVal:
--- !u!1 &676156674 --- !u!1 &676156674
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2613,6 +3099,57 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1141004796} m_GameObject: {fileID: 1141004796}
--- !u!1 &1220349163
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1220349165}
- 114: {fileID: 1220349164}
m_Layer: 0
m_Name: NestedWhileTest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1220349164
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1220349163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3}
m_Name:
m_EditorClassIdentifier:
timeout: 5
ignored: 0
succeedAfterAllAssertionsAreExecuted: 0
expectException: 0
expectedExceptionList:
succeedWhenExceptionIsThrown: 0
includedPlatforms: -1
platformsToIgnore: []
dynamic: 0
dynamicTypeName:
--- !u!4 &1220349165
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1220349163}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 675090854}
m_Father: {fileID: 0}
m_RootOrder: 12
--- !u!1 &1314799789 --- !u!1 &1314799789
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2628,7 +3165,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!114 &1314799790 --- !u!114 &1314799790
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2892,7 +3429,7 @@ MonoBehaviour:
y: -351 y: -351
width: 1161 width: 1161
height: 873 height: 873
selectedBlock: {fileID: 1618689131} selectedBlocks: []
selectedCommands: selectedCommands:
- {fileID: 1618689150} - {fileID: 1618689150}
variables: variables:
@ -3022,6 +3559,8 @@ MonoBehaviour:
y: 69 y: 69
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Test Invoke blockName: Test Invoke
description: description:
@ -3050,6 +3589,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 1618689131} parentBlock: {fileID: 1618689131}
waitForFrames: 1
--- !u!4 &1618689133 --- !u!4 &1618689133
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3427,6 +3967,8 @@ MonoBehaviour:
y: 68 y: 68
width: 156 width: 156
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 11 itemId: 11
blockName: Test Delayed Invoke blockName: Test Delayed Invoke
description: This block gets executed by last command in Test Invoke description: This block gets executed by last command in Test Invoke
@ -3664,7 +4206,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ba19c26c1ba7243d2b57ebc4329cc7c6, type: 3} m_Script: {fileID: 11500000, guid: ba19c26c1ba7243d2b57ebc4329cc7c6, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
remoteDebugger: 0
--- !u!114 &1753646198 --- !u!114 &1753646198
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4103,6 +4644,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
parentBlock: {fileID: 1982550313} parentBlock: {fileID: 1982550313}
waitForFrames: 1
--- !u!114 &1982550313 --- !u!114 &1982550313
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 2 m_ObjectHideFlags: 2
@ -4121,6 +4663,8 @@ MonoBehaviour:
y: 70 y: 70
width: 120 width: 120
height: 40 height: 40
tint: {r: 1, g: 1, b: 1, a: 1}
useCustomTint: 0
itemId: 0 itemId: 0
blockName: Start blockName: Start
description: description:
@ -4156,7 +4700,7 @@ MonoBehaviour:
y: -340 y: -340
width: 1114 width: 1114
height: 859 height: 859
selectedBlock: {fileID: 1982550313} selectedBlocks: []
selectedCommands: [] selectedCommands: []
variables: variables:
- {fileID: 1982550310} - {fileID: 1982550310}

4
Docs/fungus_docs/community_tutorials.md

@ -3,6 +3,10 @@
If you've created an article or video about %Fungus let us know on the forum and we'll add it here. If you've created an article or video about %Fungus let us know on the forum and we'll add it here.
# Marco Secchi #
- [Interacting with a GameObject in Fungus](http://www.marcosecchi.it/2016/11/26/interacting-with-a-gameobject-in-fungus/?lang=en)
# Morning Fun Games # {#morning_fun} # Morning Fun Games # {#morning_fun}
- [Custom Dialog Like A Comic](https://www.youtube.com/watch?v=RdCAjpQ3iGE) - [Custom Dialog Like A Comic](https://www.youtube.com/watch?v=RdCAjpQ3iGE)

Loading…
Cancel
Save