diff --git a/Assembly-CSharp-Editor.csproj.DotSettings b/Assembly-CSharp-Editor.csproj.DotSettings
index 12ac1b1..38dfe0a 100644
--- a/Assembly-CSharp-Editor.csproj.DotSettings
+++ b/Assembly-CSharp-Editor.csproj.DotSettings
@@ -1,4 +1,8 @@
True
True
+ True
+ True
+ True
+ True
True
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Demo/SampleScene.unity b/Assets/DialogueSystem/Demo/SampleScene.unity
index 3355275..1c4fd85 100644
--- a/Assets/DialogueSystem/Demo/SampleScene.unity
+++ b/Assets/DialogueSystem/Demo/SampleScene.unity
@@ -38,13 +38,13 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 705507994}
- m_IndirectSpecularColor: {r: 0.44657874, g: 0.49641258, b: 0.574817, a: 1}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
- m_GIWorkflowMode: 0
+ m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -294,20 +294,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 922203892}
m_OnClick:
m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 8786771133028197972}
- m_MethodName: PlayDialogue
- m_Mode: 2
- m_Arguments:
- m_ObjectArgument: {fileID: 11400000, guid: dd801a633ca8cda42b8ae8d25e17e64a,
- type: 2}
- m_ObjectArgumentAssemblyTypeName: lastmilegames.DialogueSystem.DialogueContainer,
- Assembly-CSharp
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
+ m_Calls: []
--- !u!114 &922203892
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -741,7 +728,7 @@ PrefabInstance:
- target: {fileID: 8786771132893712695, guid: 4d8914cb6b33dc34e86ba2b8caea414c,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: 0.000018605962
+ value: -0.00007994529
objectReference: {fileID: 0}
- target: {fileID: 8786771132936344443, guid: 4d8914cb6b33dc34e86ba2b8caea414c,
type: 3}
@@ -751,7 +738,7 @@ PrefabInstance:
- target: {fileID: 8786771132936344443, guid: 4d8914cb6b33dc34e86ba2b8caea414c,
type: 3}
propertyPath: m_AnchoredPosition.y
- value: -0.00009074141
+ value: -0.000049769158
objectReference: {fileID: 0}
- target: {fileID: 8786771132947378257, guid: 4d8914cb6b33dc34e86ba2b8caea414c,
type: 3}
@@ -1023,17 +1010,6 @@ PrefabInstance:
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- m_RemovedComponents: []
+ m_RemovedComponents:
+ - {fileID: 7560019262726077265, guid: 4d8914cb6b33dc34e86ba2b8caea414c, type: 3}
m_SourcePrefab: {fileID: 100100000, guid: 4d8914cb6b33dc34e86ba2b8caea414c, type: 3}
---- !u!114 &8786771133028197972 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 7560019262726077265, guid: 4d8914cb6b33dc34e86ba2b8caea414c,
- type: 3}
- m_PrefabInstance: {fileID: 8786771133028197971}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 661418d3488d423caf0369b884804cd9, type: 3}
- m_Name:
- m_EditorClassIdentifier:
diff --git a/Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor.meta b/Assets/DialogueSystem/Images.meta
similarity index 77%
rename from Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor.meta
rename to Assets/DialogueSystem/Images.meta
index 03cfd6e..2e3eaaa 100644
--- a/Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor.meta
+++ b/Assets/DialogueSystem/Images.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c05fd86c27504e46b184e91f7f07d7ca
+guid: f98a35686ea618d42be5ba2ab81f41d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor/Nodes.meta b/Assets/DialogueSystem/Images/GameIcons.meta
similarity index 77%
rename from Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor/Nodes.meta
rename to Assets/DialogueSystem/Images/GameIcons.meta
index ba83f90..23d7211 100644
--- a/Assets/DialogueSystem/Scripts/Editor/DialogueGraphEditor/Nodes.meta
+++ b/Assets/DialogueSystem/Images/GameIcons.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b083094664f84e65805d8cd8f8d1f0c7
+guid: 3d6eb8f53eb3ceb4998df810778a713e
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/DialogueSystem/Images/GameIcons/Attributions.md b/Assets/DialogueSystem/Images/GameIcons/Attributions.md
new file mode 100644
index 0000000..113af6a
--- /dev/null
+++ b/Assets/DialogueSystem/Images/GameIcons/Attributions.md
@@ -0,0 +1 @@
+"Hazard sign icon" (hazard-sign.png) by (Lorc)[https://lorcblog.blogspot.com/] under CC BY 3.0
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Images/GameIcons/Attributions.md.meta b/Assets/DialogueSystem/Images/GameIcons/Attributions.md.meta
new file mode 100644
index 0000000..82e38f0
--- /dev/null
+++ b/Assets/DialogueSystem/Images/GameIcons/Attributions.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a5aaf5a67104a5a49952250f1dc756c7
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png b/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png
new file mode 100644
index 0000000..a736b18
Binary files /dev/null and b/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png differ
diff --git a/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png.meta b/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png.meta
new file mode 100644
index 0000000..7bab909
--- /dev/null
+++ b/Assets/DialogueSystem/Images/GameIcons/hazard-sign.png.meta
@@ -0,0 +1,116 @@
+fileFormatVersion: 2
+guid: 31c96553f1619ae429459f237e6aad5b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ 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
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: -1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/DialogueSystem/Scripts/Characters.meta b/Assets/DialogueSystem/Scripts/Characters.meta
new file mode 100644
index 0000000..47fe125
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: eec5443e206c479aa625452e0d66e7e1
+timeCreated: 1607017854
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/Character.cs b/Assets/DialogueSystem/Scripts/Characters/Character.cs
new file mode 100644
index 0000000..e295b86
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/Character.cs
@@ -0,0 +1,57 @@
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace lastmilegames.DialogueSystem.Characters
+{
+ [CreateAssetMenu(fileName = "New Character", menuName = "Dialogue System/New Character", order = 0)]
+ public class Character : ScriptableObject
+ {
+ [SerializeField] private List characterSprites = new List();
+
+ public IEnumerable GetCharacterSprites()
+ {
+ return characterSprites;
+ }
+
+ public void AddSprite(CharacterSprite cSprite)
+ {
+ characterSprites.Add(cSprite);
+ AssetDatabase.AddObjectToAsset(cSprite, this);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+
+ public void RemoveSprite(CharacterSprite cSprite)
+ {
+ AssetDatabase.RemoveObjectFromAsset(cSprite);
+ characterSprites.Remove(cSprite);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+
+ public void RemoveAllSprites()
+ {
+ for (int i = characterSprites.Count - 1; i >= 0; i--)
+ {
+ AssetDatabase.RemoveObjectFromAsset(characterSprites[i]);
+ characterSprites.RemoveAt(i);
+ }
+
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+
+ public void RenameSubAsset(CharacterSprite cSprite)
+ {
+ // Remove the old object
+ AssetDatabase.RemoveObjectFromAsset(cSprite);
+ AssetDatabase.SaveAssets();
+
+ // Add the new object
+ AssetDatabase.AddObjectToAsset(cSprite, this);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/Character.cs.meta b/Assets/DialogueSystem/Scripts/Characters/Character.cs.meta
new file mode 100644
index 0000000..362291b
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/Character.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 27075574afdb479fb0694373243e6c78
+timeCreated: 1606948476
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs b/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs
new file mode 100644
index 0000000..f4dbea4
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs
@@ -0,0 +1,9 @@
+using UnityEngine;
+
+namespace lastmilegames.DialogueSystem.Characters
+{
+ public class CharacterSprite : ScriptableObject
+ {
+ public Sprite sprite;
+ }
+}
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs.meta b/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs.meta
new file mode 100644
index 0000000..005d62c
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/CharacterSprite.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 20a78fb41e41499188727b72bb6a083d
+timeCreated: 1607017880
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/Editor.meta b/Assets/DialogueSystem/Scripts/Characters/Editor.meta
new file mode 100644
index 0000000..7edec87
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/Editor.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 378ce32d46c641e2abcfd4f77f00274b
+timeCreated: 1607120834
\ No newline at end of file
diff --git a/Assets/DialogueSystem/Scripts/Characters/Editor/CharacterEditor.cs b/Assets/DialogueSystem/Scripts/Characters/Editor/CharacterEditor.cs
new file mode 100644
index 0000000..ae9752e
--- /dev/null
+++ b/Assets/DialogueSystem/Scripts/Characters/Editor/CharacterEditor.cs
@@ -0,0 +1,124 @@
+using System.Linq;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace lastmilegames.DialogueSystem.Characters
+{
+ [CustomEditor(typeof(Character))]
+ public class CharacterEditor : Editor
+ {
+ private Character character;
+ private VisualElement cSpriteList;
+ private VisualElement rootElement;
+
+ private void OnEnable()
+ {
+ rootElement = new VisualElement();
+ character = (Character) target;
+
+ var visualTree = AssetDatabase.LoadAssetAtPath(
+ "Assets/DialogueSystem/Scripts/AssetCreators/Editor/CharacterEditor.uxml");
+ visualTree.CloneTree(rootElement);
+
+ var styleSheet = AssetDatabase.LoadAssetAtPath(
+ "Assets/DialogueSystem/Scripts/AssetCreators/Editor/CharacterEditor.uss");
+ rootElement.styleSheets.Add(styleSheet);
+ }
+
+ public override VisualElement CreateInspectorGUI()
+ {
+ #region Fields
+
+ var characterName = rootElement.Q("characterName");
+ characterName.isDelayed = true;
+ characterName.value = character.name;
+ characterName.RegisterCallback>(evt =>
+ {
+ character.name = evt.newValue;
+ Utilities.RenameAsset(character, evt.newValue);
+
+
+ EditorUtility.SetDirty(character);
+ });
+
+ #endregion
+
+ #region Diaplay Sprite List
+
+ cSpriteList = rootElement.Q("spriteList");
+ UpdateSpriteList();
+
+ #endregion
+
+ #region Buttons
+
+ var btnAddSprite = rootElement.Q