패키지 업그레이드
This commit is contained in:
parent
4a65eabca7
commit
95a5922df4
File diff suppressed because it is too large
Load Diff
@ -88,7 +88,7 @@ namespace BlueWater
|
||||
{
|
||||
SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||
}
|
||||
else if (currentSceneName == SceneName.Tycoon)
|
||||
else if (currentSceneName == SceneName.Tycoon || currentSceneName == SceneName.TycoonTest)
|
||||
{
|
||||
SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ namespace BlueWater
|
||||
public static string TycoonTile = "00.TycoonTitle";
|
||||
public static string Tycoon = "01.Tycoon";
|
||||
public static string Combat = "02.Combat";
|
||||
public static string TycoonTest = "04.TycoonTest";
|
||||
}
|
||||
|
||||
public class SceneController : Singleton<SceneController>
|
||||
|
@ -90,6 +90,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/Conditions.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -47,7 +47,7 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/DialogueManager Inspector
|
||||
Dark.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -47,7 +47,7 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/DialogueManager Inspector
|
||||
Light.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -60,6 +60,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/EditorNode.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -90,6 +90,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/Event.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -90,6 +90,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/Resize.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -90,6 +90,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/Script.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -90,6 +90,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Editor Default Resources/Dialogue System/Sequence.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -47,6 +47,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Gizmos/DialogueDatabase Icon.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -49,6 +49,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Gizmos/StringAsset Icon.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -49,6 +49,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Gizmos/TextTable Icon.png
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
8
Assets/Pixel Crushers.meta
Normal file
8
Assets/Pixel Crushers.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eddf9e762d3f77340b96ee9bbaaa8f46
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Pixel Crushers/Dialogue System.meta
Normal file
8
Assets/Pixel Crushers/Dialogue System.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af2461860408d964bbbce14dcd69394c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 837186c5c1ecb814196fadc0a82adb2f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfb9a113097a6654182aaeac30900e39
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
userData:
|
@ -0,0 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78aea659239908d4f9c8609ce8b27a7a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
userData:
|
@ -0,0 +1,70 @@
|
||||
%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: 7d44a0b778e51584a8b00171e38b0bce, type: 3}
|
||||
m_Name: BehaviorDesignLuaFunctionInfo
|
||||
m_EditorClassIdentifier:
|
||||
conditionFunctions:
|
||||
- functionName: BD/bdGetBool
|
||||
parameters: 0200000002000000
|
||||
returnValue: 1
|
||||
- functionName: BD/bdGetFloat
|
||||
parameters: 0200000002000000
|
||||
returnValue: 2
|
||||
- functionName: BD/bdGetInt
|
||||
parameters: 0200000002000000
|
||||
returnValue: 2
|
||||
- functionName: BD/bdGetString
|
||||
parameters: 0200000002000000
|
||||
returnValue: 3
|
||||
- functionName: BD/Group/bdGetBoolGroup
|
||||
parameters: 020000000100000002000000
|
||||
returnValue: 1
|
||||
- functionName: BD/Group/bdGetFloatGroup
|
||||
parameters: 020000000100000002000000
|
||||
returnValue: 2
|
||||
- functionName: BD/Group/bdGetIntGroup
|
||||
parameters: 020000000100000002000000
|
||||
returnValue: 2
|
||||
- functionName: BD/Group/bdGetStringGroup
|
||||
parameters: 020000000100000002000000
|
||||
returnValue: 3
|
||||
scriptFunctions:
|
||||
- functionName: BD/bdSyncToLua
|
||||
parameters: 02000000
|
||||
returnValue: 0
|
||||
- functionName: BD/bdSyncFromLua
|
||||
parameters: 02000000
|
||||
returnValue: 0
|
||||
- functionName: BD/bdSetBool
|
||||
parameters: 020000000200000000000000
|
||||
returnValue: 0
|
||||
- functionName: BD/bdSetFloat
|
||||
parameters: 020000000200000001000000
|
||||
returnValue: 0
|
||||
- functionName: BD/bdSetInt
|
||||
parameters: 020000000200000001000000
|
||||
returnValue: 0
|
||||
- functionName: BD/bdSetString
|
||||
parameters: 020000000200000002000000
|
||||
returnValue: 0
|
||||
- functionName: BD/Group/bdSetBoolGroup
|
||||
parameters: 02000000010000000200000000000000
|
||||
returnValue: 0
|
||||
- functionName: BD/Group/bdSetFloatGroup
|
||||
parameters: 02000000010000000200000001000000
|
||||
returnValue: 0
|
||||
- functionName: BD/Group/bdSetIntGroup
|
||||
parameters: 02000000010000000200000001000000
|
||||
returnValue: 0
|
||||
- functionName: BD/Group/bdSetStringGroup
|
||||
parameters: 02000000010000000200000002000000
|
||||
returnValue: 0
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3890b0e0a1424b7468da16f8e3cca4c6
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,314 @@
|
||||
using BehaviorDesigner.Runtime;
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.BehaviorDesignerSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This script synchronizes a behavior tree's shared variables with the
|
||||
/// Dialogue System's Lua environment. Attach it to the GameObject that
|
||||
/// contains the behavior tree. Synchronization occurs automatically at
|
||||
/// the beginning and end of conversations. You can also synchronize manually
|
||||
/// by calling SyncToLua() or SyncFromLua().
|
||||
///
|
||||
/// The Lua variables will have the name <em>gameObjectName_variableName</em>.
|
||||
/// All blank spaces and hyphens will be converted to underscores.
|
||||
/// For example, say an NPC named Private Hart has a behavior tree with a shared
|
||||
/// variable named Angry. The Lua variable will be <c>Variable["Private_Hart_Angry"]</c>.
|
||||
///
|
||||
/// Only bools, floats, ints, and strings are synchronized.
|
||||
///
|
||||
/// This script also adds some Lua functions:
|
||||
/// - bdSyncToLua(gameObject)
|
||||
/// - bdSyncFromLua(gameObject)
|
||||
/// where gameObject is the name of a GameObject with a behavior tree.
|
||||
/// </summary>
|
||||
[AddComponentMenu("Pixel Crushers/Dialogue System/Third Party/Behavior Designer/Behavior Tree Lua Bridge")]
|
||||
public class BehaviorTreeLuaBridge : MonoBehaviour
|
||||
{
|
||||
|
||||
// The behavior tree on this GameObject:
|
||||
private Behavior behavior = null;
|
||||
|
||||
private static bool hasRegisteredLuaFunctions = false;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
behavior = GetComponentInChildren<Behavior>();
|
||||
RegisterLuaFunctions();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When a conversation starts, sync to Lua. This makes the behavior
|
||||
/// tree data available to conversations in Conditions and User Scripts.
|
||||
/// </summary>
|
||||
/// <param name="actor">The other actor.</param>
|
||||
public void OnConversationStart(Transform actor)
|
||||
{
|
||||
SyncToLua();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// When a conversation ends, sync from Lua back into the behavior
|
||||
/// tree. If the conversation has changed any values, the changes
|
||||
/// will be reflected in the behavior tree.
|
||||
/// </summary>
|
||||
/// <param name="actor">The other actor.</param>
|
||||
public void OnConversationEnd(Transform actor)
|
||||
{
|
||||
SyncFromLua();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Syncs the behavior tree's shared variables to the Dialogue System's
|
||||
/// Lua environment.
|
||||
/// </summary>
|
||||
public void SyncToLua()
|
||||
{
|
||||
if (behavior == null) return;
|
||||
foreach (SharedVariable variable in behavior.GetBehaviorSource().Variables)
|
||||
{
|
||||
if (IsSyncableType(variable))
|
||||
{
|
||||
DialogueLua.SetVariable(GetLuaVariableName(variable.Name), variable.GetValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Syncs the Dialogue System's Lua environment back into the behavior tree's
|
||||
/// shared variables.
|
||||
/// </summary>
|
||||
public void SyncFromLua()
|
||||
{
|
||||
if (behavior == null) return;
|
||||
foreach (SharedVariable variable in behavior.GetBehaviorSource().Variables)
|
||||
{
|
||||
if (IsSyncableType(variable))
|
||||
{
|
||||
Lua.Result result = DialogueLua.GetVariable(GetLuaVariableName(variable.Name));
|
||||
if (result.HasReturnValue)
|
||||
{
|
||||
variable.SetValue(CastLuaResult(variable, result));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsSyncableType(SharedVariable variable)
|
||||
{
|
||||
return (variable is SharedBool) ||
|
||||
(variable is SharedFloat) ||
|
||||
(variable is SharedInt) ||
|
||||
(variable is SharedString);
|
||||
}
|
||||
|
||||
private string GetLuaVariableName(string variableName)
|
||||
{
|
||||
return string.Format("{0}_{1}", name, variableName);
|
||||
}
|
||||
|
||||
private object CastLuaResult(SharedVariable variable, Lua.Result result)
|
||||
{
|
||||
if (variable is SharedBool) return result.AsBool;
|
||||
if (variable is SharedFloat) return result.AsFloat;
|
||||
if (variable is SharedInt) return result.AsInt;
|
||||
if (variable is SharedString) return result.AsString;
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void RegisterLuaFunctions()
|
||||
{
|
||||
if (hasRegisteredLuaFunctions) return;
|
||||
hasRegisteredLuaFunctions = true;
|
||||
Lua.RegisterFunction("bdSyncToLua", null, SymbolExtensions.GetMethodInfo(() => bdSyncToLua(string.Empty)));
|
||||
Lua.RegisterFunction("bdSyncToFrom", null, SymbolExtensions.GetMethodInfo(() => bdSyncFromLua(string.Empty)));
|
||||
|
||||
Lua.RegisterFunction("bdGetBool", null, SymbolExtensions.GetMethodInfo(() => bdGetBool(string.Empty, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetFloat", null, SymbolExtensions.GetMethodInfo(() => bdGetFloat(string.Empty, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetInt", null, SymbolExtensions.GetMethodInfo(() => bdGetInt(string.Empty, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetString", null, SymbolExtensions.GetMethodInfo(() => bdGetString(string.Empty, string.Empty)));
|
||||
Lua.RegisterFunction("bdSetBool", null, SymbolExtensions.GetMethodInfo(() => bdSetBool(string.Empty, string.Empty, false)));
|
||||
Lua.RegisterFunction("bdSetFloat", null, SymbolExtensions.GetMethodInfo(() => bdSetFloat(string.Empty, string.Empty, (double)0)));
|
||||
Lua.RegisterFunction("bdSetInt", null, SymbolExtensions.GetMethodInfo(() => bdSetInt(string.Empty, string.Empty, (double)0)));
|
||||
Lua.RegisterFunction("bdSetString", null, SymbolExtensions.GetMethodInfo(() => bdSetString(string.Empty, string.Empty, string.Empty)));
|
||||
|
||||
Lua.RegisterFunction("bdGetBoolGroup", null, SymbolExtensions.GetMethodInfo(() => bdGetBoolGroup(string.Empty, (double)0, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetFloatGroup", null, SymbolExtensions.GetMethodInfo(() => bdGetFloatGroup(string.Empty, (double)0, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetIntGroup", null, SymbolExtensions.GetMethodInfo(() => bdGetIntGroup(string.Empty, (double)0, string.Empty)));
|
||||
Lua.RegisterFunction("bdGetStringGroup", null, SymbolExtensions.GetMethodInfo(() => bdGetStringGroup(string.Empty, (double)0, string.Empty)));
|
||||
Lua.RegisterFunction("bdSetBoolGroup", null, SymbolExtensions.GetMethodInfo(() => bdSetBoolGroup(string.Empty, (double)0, string.Empty, false)));
|
||||
Lua.RegisterFunction("bdSetFloatGroup", null, SymbolExtensions.GetMethodInfo(() => bdSetFloatGroup(string.Empty, (double)0, string.Empty, (double)0)));
|
||||
Lua.RegisterFunction("bdSetIntGroup", null, SymbolExtensions.GetMethodInfo(() => bdSetIntGroup(string.Empty, (double)0, string.Empty, (double)0)));
|
||||
Lua.RegisterFunction("bdSetStringGroup", null, SymbolExtensions.GetMethodInfo(() => bdSetStringGroup(string.Empty, (double)0, string.Empty, string.Empty)));
|
||||
}
|
||||
|
||||
public static void bdSyncToLua(string gameObjectName)
|
||||
{
|
||||
var bridge = FindBridge(gameObjectName);
|
||||
if (bridge != null) bridge.SyncToLua();
|
||||
}
|
||||
|
||||
public static void bdSyncFromLua(string gameObjectName)
|
||||
{
|
||||
var bridge = FindBridge(gameObjectName);
|
||||
if (bridge != null) bridge.SyncFromLua();
|
||||
}
|
||||
|
||||
public static T bdGetVariableValue<T>(string gameObjectName, string variableName, int group = -1)
|
||||
{
|
||||
var behavior = FindBehavior(gameObjectName, group);
|
||||
if (behavior != null)
|
||||
{
|
||||
foreach (SharedVariable variable in behavior.GetBehaviorSource().Variables)
|
||||
{
|
||||
if (variable.Name == variableName)
|
||||
{
|
||||
var value = variable.GetValue();
|
||||
if (value.GetType() == typeof(T)) return (T)value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return default(T);
|
||||
}
|
||||
|
||||
public static void bdSetVariableValue<T>(string gameObjectName, string variableName, T variableValue, int group = -1)
|
||||
{
|
||||
var behavior = FindBehavior(gameObjectName, group);
|
||||
if (behavior != null)
|
||||
{
|
||||
foreach (SharedVariable variable in behavior.GetBehaviorSource().Variables)
|
||||
{
|
||||
if (variable.Name == variableName)
|
||||
{
|
||||
variable.SetValue(variableValue);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool bdGetBool(string gameObjectName, string variableName)
|
||||
{
|
||||
return bdGetVariableValue<bool>(gameObjectName, variableName);
|
||||
}
|
||||
|
||||
public static double bdGetFloat(string gameObjectName, string variableName)
|
||||
{
|
||||
return (double)bdGetVariableValue<float>(gameObjectName, variableName);
|
||||
}
|
||||
|
||||
public static double bdGetInt(string gameObjectName, string variableName)
|
||||
{
|
||||
return (double)bdGetVariableValue<int>(gameObjectName, variableName);
|
||||
}
|
||||
|
||||
public static string bdGetString(string gameObjectName, string variableName)
|
||||
{
|
||||
return bdGetVariableValue<string>(gameObjectName, variableName);
|
||||
}
|
||||
|
||||
public static void bdSetBool(string gameObjectName, string variableName, bool variableValue)
|
||||
{
|
||||
bdSetVariableValue<bool>(gameObjectName, variableName, variableValue);
|
||||
}
|
||||
|
||||
public static void bdSetFloat(string gameObjectName, string variableName, double variableValue)
|
||||
{
|
||||
bdSetVariableValue<float>(gameObjectName, variableName, (float)variableValue);
|
||||
}
|
||||
|
||||
public static void bdSetInt(string gameObjectName, string variableName, double variableValue)
|
||||
{
|
||||
bdSetVariableValue<int>(gameObjectName, variableName, (int)variableValue);
|
||||
}
|
||||
|
||||
public static void bdSetString(string gameObjectName, string variableName, string variableValue)
|
||||
{
|
||||
bdSetVariableValue<string>(gameObjectName, variableName, variableValue);
|
||||
}
|
||||
|
||||
public static bool bdGetBoolGroup(string gameObjectName, double group, string variableName)
|
||||
{
|
||||
return bdGetVariableValue<bool>(gameObjectName, variableName, (int)group);
|
||||
}
|
||||
|
||||
public static double bdGetFloatGroup(string gameObjectName, double group, string variableName)
|
||||
{
|
||||
return (double)bdGetVariableValue<float>(gameObjectName, variableName, (int)group);
|
||||
}
|
||||
|
||||
public static double bdGetIntGroup(string gameObjectName, double group, string variableName)
|
||||
{
|
||||
return (double)bdGetVariableValue<int>(gameObjectName, variableName, (int)group);
|
||||
}
|
||||
|
||||
public static string bdGetStringGroup(string gameObjectName, double group, string variableName)
|
||||
{
|
||||
return bdGetVariableValue<string>(gameObjectName, variableName, (int)group);
|
||||
}
|
||||
|
||||
public static void bdSetBoolGroup(string gameObjectName, double group, string variableName, bool variableValue)
|
||||
{
|
||||
bdSetVariableValue<bool>(gameObjectName, variableName, variableValue, (int)group);
|
||||
}
|
||||
|
||||
public static void bdSetFloatGroup(string gameObjectName, double group, string variableName, double variableValue)
|
||||
{
|
||||
bdSetVariableValue<float>(gameObjectName, variableName, (float)variableValue, (int)group);
|
||||
}
|
||||
|
||||
public static void bdSetIntGroup(string gameObjectName, double group, string variableName, double variableValue)
|
||||
{
|
||||
bdSetVariableValue<int>(gameObjectName, variableName, (int)variableValue, (int)group);
|
||||
}
|
||||
|
||||
public static void bdSetStringGroup(string gameObjectName, double group, string variableName, string variableValue)
|
||||
{
|
||||
bdSetVariableValue<string>(gameObjectName, variableName, variableValue, (int)group);
|
||||
}
|
||||
|
||||
public static BehaviorTreeLuaBridge FindBridge(string gameObjectName)
|
||||
{
|
||||
var go = GameObject.Find(gameObjectName);
|
||||
if (go == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: BehaviorTreeLuaBridge can't find GameObject named " + gameObjectName);
|
||||
return null;
|
||||
}
|
||||
var bridge = go.GetComponent<BehaviorTreeLuaBridge>();
|
||||
if (bridge == null)
|
||||
{
|
||||
var behavior = go.GetComponentInChildren<Behavior>();
|
||||
if (behavior == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: GameObject " + go.name + " doesn't have a Behavior tree in its hierarchy.", go);
|
||||
return null;
|
||||
}
|
||||
bridge = go.AddComponent<BehaviorTreeLuaBridge>();
|
||||
bridge.behavior = behavior;
|
||||
}
|
||||
return bridge;
|
||||
}
|
||||
|
||||
public static Behavior FindBehavior(string gameObjectName, int group = -1)
|
||||
{
|
||||
var go = GameObject.Find(gameObjectName);
|
||||
if (go == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: BehaviorTreeLuaBridge can't find GameObject named " + gameObjectName);
|
||||
return null;
|
||||
}
|
||||
foreach (var behavior in go.GetComponentsInChildren<Behavior>())
|
||||
{
|
||||
if (group == -1 || behavior.Group == group)
|
||||
{
|
||||
return behavior;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c4a8a1d80c1da4c4083f535796da4df9
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
@ -0,0 +1,104 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using PixelCrushers.DialogueSystem;
|
||||
using PixelCrushers.DialogueSystem.BehaviorDesignerSupport;
|
||||
using BehaviorDesigner.Runtime;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SequencerCommands
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Implements the Behavior Designer sequencer command Behavior(subject, start|stop|pause|resume, [group]).
|
||||
/// - <em>subject</em>: The name of a GameObject containing a behavior tree, or <c>speaker<c> or <c>listener</c>.
|
||||
/// The behavior tree can be located on a child object.
|
||||
/// - <c>start|stop|pause|resume</c>: Control action for the behavior tree.
|
||||
/// - <c>start</c>: Starts or restarts the behavior tree.
|
||||
/// - <c>stop</c>: Stops the behavior tree.
|
||||
/// - <c>pause</c>: Pauses the behavior tree.
|
||||
/// - <c>resume</c>: Resumes the behavior tree if paused.
|
||||
/// - group: (Optional) Apply to behavior trees with a specific group ID. If omitted,
|
||||
/// apply to all behavior trees on subject.
|
||||
/// </summary>
|
||||
public class SequencerCommandBehavior : SequencerCommand
|
||||
{
|
||||
|
||||
// Translate the control string into an enum to make it easier to work with in code:
|
||||
private enum ControlCommand { Start, Stop, Pause, Resume, Undefined }
|
||||
|
||||
private ControlCommand GetControlCommand(string s)
|
||||
{
|
||||
if (string.Equals("start", s, System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return ControlCommand.Start;
|
||||
}
|
||||
else if (string.Equals("stop", s, System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return ControlCommand.Stop;
|
||||
}
|
||||
else if (string.Equals("pause", s, System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return ControlCommand.Pause;
|
||||
}
|
||||
else if (string.Equals("resume", s, System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return ControlCommand.Resume;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ControlCommand.Undefined;
|
||||
}
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
Transform subject = GetSubject(0);
|
||||
ControlCommand command = GetControlCommand(GetParameter(1));
|
||||
int group = GetParameterAsInt(2, -1);
|
||||
if (subject == null)
|
||||
{
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: Behavior({1}, {2}) subject is null", DialogueDebug.Prefix, GetParameter(0), GetParameter(1)));
|
||||
}
|
||||
else if (command == ControlCommand.Undefined)
|
||||
{
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: Behavior({1}, {2}) command must be 'start', 'stop', or 'resume'", DialogueDebug.Prefix, GetParameter(0), GetParameter(1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
var foundOne = false;
|
||||
foreach (var behavior in subject.GetComponentsInChildren<Behavior>())
|
||||
{
|
||||
if (group == -1 || behavior.Group == group)
|
||||
{
|
||||
foundOne = true;
|
||||
switch (command)
|
||||
{
|
||||
case ControlCommand.Start:
|
||||
case ControlCommand.Resume:
|
||||
behavior.EnableBehavior();
|
||||
break;
|
||||
case ControlCommand.Stop:
|
||||
behavior.DisableBehavior(false);
|
||||
break;
|
||||
case ControlCommand.Pause:
|
||||
behavior.DisableBehavior(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (foundOne)
|
||||
{
|
||||
if (DialogueDebug.LogInfo) Debug.Log(string.Format("{0}: Sequencer: Behavior({1}, {2})", DialogueDebug.Prefix, GetParameter(0), GetParameter(1)));
|
||||
}
|
||||
else if (group == -1)
|
||||
{
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: Behavior({1}, {2}): {1} does not have a Behavior[Tree] component", DialogueDebug.Prefix, GetParameter(0), GetParameter(1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: Behavior({1}, {2}, {3}): {1} does not have a Behavior[Tree] component with matching group ID", DialogueDebug.Prefix, GetParameter(0), GetParameter(1), group));
|
||||
}
|
||||
}
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 10831438027c88d42a409c165435bc9e
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
@ -0,0 +1,71 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using PixelCrushers.DialogueSystem;
|
||||
using PixelCrushers.DialogueSystem.BehaviorDesignerSupport;
|
||||
using BehaviorDesigner.Runtime;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SequencerCommands {
|
||||
|
||||
/// <summary>
|
||||
/// Implements the Behavior Designer sequencer command BehaviorVariable(subject, variableName, value).
|
||||
/// - <em>subject</em>: The name of a GameObject containing a behavior tree, or <c>speaker<c> or <c>listener</c>.
|
||||
/// The behavior tree can be located on a child object.
|
||||
/// - <em>variableName</em>: The name of a shared variable on the behavior tree. These
|
||||
/// variable types are supported: Bool, Float, Int, String, GameObject, Object, Transform, Vector3.
|
||||
/// - <em>value</em>: The new value of the variable.
|
||||
/// </summary>
|
||||
public class SequencerCommandBehaviorVariable : SequencerCommand {
|
||||
|
||||
public void Start() {
|
||||
Transform subject = GetSubject(0);
|
||||
string variableName = GetParameter(1);
|
||||
string value = GetParameter(2);
|
||||
if (subject == null) {
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3}) subject is null", DialogueDebug.Prefix, GetParameter(0), variableName, value));
|
||||
} else {
|
||||
Behavior behavior = subject.GetComponentInChildren<Behavior>();
|
||||
if (behavior == null) {
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3}): {1} does not have a Behavior[Tree] component", DialogueDebug.Prefix, GetParameter(0), variableName, value));
|
||||
} else {
|
||||
if (DialogueDebug.LogInfo) Debug.Log(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3})", DialogueDebug.Prefix, GetParameter(0), variableName, value));
|
||||
var variable = behavior.GetVariable(variableName);
|
||||
if (variable == null) {
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3}): variable '{2}' not found on {1}", DialogueDebug.Prefix, GetParameter(0), variableName, value));
|
||||
} else if (variable is SharedBool) {
|
||||
(variable as SharedBool).Value = string.Equals(value, "true", System.StringComparison.OrdinalIgnoreCase);
|
||||
} else if (variable is SharedFloat) {
|
||||
(variable as SharedFloat).Value = Tools.StringToFloat(value);
|
||||
} else if (variable is SharedInt) {
|
||||
(variable as SharedInt).Value = Tools.StringToInt(value);
|
||||
} else if (variable is SharedString) {
|
||||
(variable as SharedString).Value = value;
|
||||
} else if (variable is SharedGameObject) {
|
||||
Transform t = GetNamedTransform(value);
|
||||
if (t != null) (variable as SharedGameObject).Value = t.gameObject;
|
||||
} else if (variable is SharedObject) {
|
||||
Transform t = GetNamedTransform(value);
|
||||
if (t != null) (variable as SharedObject).Value = t.gameObject;
|
||||
} else if (variable is SharedTransform) {
|
||||
Transform t = GetNamedTransform(value);
|
||||
if (t != null) (variable as SharedTransform).Value = t;
|
||||
} else if (variable is SharedVector3) {
|
||||
Transform t = GetNamedTransform(value);
|
||||
if (t != null) (variable as SharedVector3).Value = t.position;
|
||||
} else {
|
||||
if (DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3}): does not support variables of type '{4}'",
|
||||
DialogueDebug.Prefix, GetParameter(0), variableName, value, variable.GetType().Name));
|
||||
}
|
||||
}
|
||||
}
|
||||
Stop();
|
||||
}
|
||||
|
||||
private Transform GetNamedTransform(string value) {
|
||||
Transform t = SequencerTools.GetSubject(value, Sequencer.Speaker, Sequencer.Listener);
|
||||
if (t == null && DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: Sequencer: BehaviorVariable({1}, {2}, {3}): couldn't find '{3}'", DialogueDebug.Prefix, GetParameter(0), GetParameter(1), GetParameter(2)));
|
||||
return t;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4343363be491e24cb793541b61d461d
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
@ -0,0 +1,6 @@
|
||||
/*
|
||||
This folder contains support files for Opsive's Behavior Designer.
|
||||
|
||||
Behavior Designer also contains a corresponding package for Dialogue System support.
|
||||
Example scenes are provided in Behavior Designer's package.
|
||||
*/
|
@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 716b36c95d0403a41a497e9db48ed0a3
|
||||
TextScriptImporter:
|
||||
userData:
|
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ba3b0f1934a43d499dac6d450d8a8d5
|
||||
folderAsset: yes
|
||||
timeCreated: 1502067828
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93a456cbe2f47004598d3510ce181dab
|
||||
folderAsset: yes
|
||||
timeCreated: 1501895283
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c25d739b39a2ca54fb7497cfa0188517
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5165d831b0ddd8a44b8d52946a45c2f2
|
||||
timeCreated: 1501716212
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 78702eaca14a0fd4b88c9e07b5073619
|
||||
folderAsset: yes
|
||||
timeCreated: 1501963995
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0b54fc641455e9840889dec44a78bf78
|
||||
timeCreated: 1501896087
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,115 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Point light Animator Controller
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters: []
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 1107522003540175802}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!1101 &1101832021406137228
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1102269211715083310}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1102175248821579826
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Pulse Light
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1101832021406137228}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 01182b9aa71d8444ba1aea9d35cc0d71, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
--- !u!1102 &1102269211715083310
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Idle
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_Motion: {fileID: 0}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
--- !u!1107 &1107522003540175802
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 1
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102175248821579826}
|
||||
m_Position: {x: 204, y: 288, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1102269211715083310}
|
||||
m_Position: {x: 194, y: 206, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 1102269211715083310}
|
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d5f2b313d6fd5d4aa17d17a1abb7a24
|
||||
timeCreated: 1501896204
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 9100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,116 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!74 &7400000
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_Name: Pulse Light Animation
|
||||
serializedVersion: 6
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves: []
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves: []
|
||||
m_PositionCurves: []
|
||||
m_ScaleCurves: []
|
||||
m_FloatCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1.14
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
- serializedVersion: 2
|
||||
time: 0.5
|
||||
value: 4
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
- serializedVersion: 2
|
||||
time: 1
|
||||
value: 1.14
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_Range
|
||||
path:
|
||||
classID: 108
|
||||
script: {fileID: 0}
|
||||
m_PPtrCurves: []
|
||||
m_SampleRate: 60
|
||||
m_WrapMode: 0
|
||||
m_Bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_ClipBindingConstant:
|
||||
genericBindings:
|
||||
- serializedVersion: 2
|
||||
path: 0
|
||||
attribute: 514968105
|
||||
script: {fileID: 0}
|
||||
typeID: 108
|
||||
customType: 25
|
||||
isPPtrCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 1
|
||||
m_OrientationOffsetY: 0
|
||||
m_Level: 0
|
||||
m_CycleOffset: 0
|
||||
m_HasAdditiveReferencePose: 0
|
||||
m_LoopTime: 1
|
||||
m_LoopBlend: 0
|
||||
m_LoopBlendOrientation: 0
|
||||
m_LoopBlendPositionY: 0
|
||||
m_LoopBlendPositionXZ: 0
|
||||
m_KeepOriginalOrientation: 0
|
||||
m_KeepOriginalPositionY: 1
|
||||
m_KeepOriginalPositionXZ: 0
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 2
|
||||
time: 0
|
||||
value: 1.14
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
- serializedVersion: 2
|
||||
time: 0.5
|
||||
value: 4
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
- serializedVersion: 2
|
||||
time: 1
|
||||
value: 1.14
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_Range
|
||||
path:
|
||||
classID: 108
|
||||
script: {fileID: 0}
|
||||
m_EulerEditorCurves: []
|
||||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_GenerateMotionCurves: 0
|
||||
m_Events: []
|
@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01182b9aa71d8444ba1aea9d35cc0d71
|
||||
timeCreated: 1501896204
|
||||
licenseType: Free
|
||||
NativeFormatImporter:
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,10 @@
|
||||
To play this example scene, you must:
|
||||
|
||||
1. Enable the Cinemachine and Timeline packages in Package Manager.
|
||||
In earlier versions of Unity, you may need to import Cinemachine from
|
||||
the Asset Store, and Timeline may be built in.
|
||||
|
||||
2. Select Tools > Pixel Crushers > Dialogue System > Welcome Window.
|
||||
Tick the checkboxes to enable Timeline and Cinemachine support.
|
||||
|
||||
Note: This scene was built using Cinemachine 2.
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 357fa9dd41ebf5c4dafada64e72aa751
|
||||
timeCreated: 1563737623
|
||||
licenseType: Pro
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88f966fbfcddb1d48ac126e5f270e553
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3bb36d7482cfe4429ac27a68a0b088f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af20f15422f561640806d01875cad9db
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ddcacd8980146143be110681672268d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,59 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.EasySaveSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This is an example SavedGameDataStorer for Moodkie's Easy Save 3.
|
||||
/// Add it to your Save System in place of any existing storers such as
|
||||
/// PlayerPrefsSavedGameDataStorer or DiskSavedGameDataStorer.
|
||||
/// </summary>
|
||||
public class ESSavedGameDataStorer : SavedGameDataStorer
|
||||
{
|
||||
[Tooltip("Tell Easy Save to use a separate file for each saved game.")]
|
||||
public bool useSeparateFiles = false;
|
||||
|
||||
[Tooltip("Filename to contain save data, including path. If Use Separate Files is ticked, appends slot number each file.")]
|
||||
public string filename = "save";
|
||||
|
||||
public virtual string GetFilename(int slotNumber)
|
||||
{
|
||||
return useSeparateFiles ? (filename + "_" + slotNumber) : filename;
|
||||
}
|
||||
|
||||
public virtual string GetKey(int slotNumber)
|
||||
{
|
||||
return useSeparateFiles ? "pixelCrushers" : ("pixelCrushers_" + slotNumber);
|
||||
}
|
||||
|
||||
public override bool HasDataInSlot(int slotNumber)
|
||||
{
|
||||
return ES3.KeyExists(GetKey(slotNumber), GetFilename(slotNumber));
|
||||
}
|
||||
|
||||
public override SavedGameData RetrieveSavedGameData(int slotNumber)
|
||||
{
|
||||
if (!HasDataInSlot(slotNumber)) return null;
|
||||
var s = ES3.Load<string>(GetKey(slotNumber), GetFilename(slotNumber));
|
||||
return SaveSystem.Deserialize<SavedGameData>(s);
|
||||
}
|
||||
|
||||
public override void StoreSavedGameData(int slotNumber, SavedGameData savedGameData)
|
||||
{
|
||||
var s = SaveSystem.Serialize(savedGameData);
|
||||
ES3.Save<string>(GetKey(slotNumber), s, GetFilename(slotNumber));
|
||||
}
|
||||
|
||||
public override void DeleteSavedGameData(int slotNumber)
|
||||
{
|
||||
if (useSeparateFiles)
|
||||
{
|
||||
ES3.DeleteFile(GetFilename(slotNumber));
|
||||
}
|
||||
else
|
||||
{
|
||||
ES3.DeleteKey(GetKey(slotNumber), GetFilename(slotNumber));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed6be5401816b0f46ba4641c1e124ca0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e66743bf0166fb4ca2161c6a92c451a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4183ec7452291a42a0956d57695b6e2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 32de2c52f80ef1849b6810581d83d27c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,250 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ExampleLeftSpineAnimatorController
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: Show
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Hide
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Focus
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Unfocus
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 110700000}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!1101 &110100272
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110281693}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.5
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &110147280
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110287092}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.5
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &110176745
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Hide
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110281693}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.2748797
|
||||
m_TransitionOffset: 0.2681489
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 1
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 0
|
||||
--- !u!1101 &110180422
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Show
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110200000}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.1
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 1
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 0
|
||||
--- !u!1102 &110200000
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Show
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 120, y: -192, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 8121f594245f67449b0ab1614f2d4bef, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &110213112
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Start
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 126, y: -252, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 0ba32211bb8ed944392b21a33b101791, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &110281693
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Hide
|
||||
m_Speed: -1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 120, y: -132, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 8121f594245f67449b0ab1614f2d4bef, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &110700000
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110200000}
|
||||
m_Position: {x: 120, y: -192, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110281693}
|
||||
m_Position: {x: 120, y: -132, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110213112}
|
||||
m_Position: {x: 126, y: -252, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: 110176745}
|
||||
- {fileID: 110180422}
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: -96, y: -156, z: 0}
|
||||
m_EntryPosition: {x: -84, y: -252, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 110213112}
|
@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e8f65b50894c61408e02a5b06b17fdf
|
||||
NativeFormatImporter:
|
||||
userData:
|
@ -0,0 +1,250 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ExampleRightSpineAnimatorController
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: Show
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Hide
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Focus
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: Unfocus
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
m_StateMachine: {fileID: 110700000}
|
||||
m_Mask: {fileID: 0}
|
||||
m_Motions: []
|
||||
m_Behaviours: []
|
||||
m_BlendingMode: 0
|
||||
m_SyncedLayerIndex: -1
|
||||
m_DefaultWeight: 0
|
||||
m_IKPass: 0
|
||||
m_SyncedLayerAffectsTiming: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
--- !u!1101 &110100272
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110281693}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.5
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &110147280
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 0}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.5
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &110176745
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Hide
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110281693}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.2748797
|
||||
m_TransitionOffset: 0.2681489
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 1
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 0
|
||||
--- !u!1101 &110180422
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: Show
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110200000}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.1
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 1
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 0
|
||||
--- !u!1102 &110200000
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Show
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 120, y: -192, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: c49c08cc7ba87924591a35e39b2c567a, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &110213112
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Start
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 126, y: -252, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 0ba32211bb8ed944392b21a33b101791, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &110281693
|
||||
AnimatorState:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Hide
|
||||
m_Speed: -1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions: []
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 120, y: -132, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: c49c08cc7ba87924591a35e39b2c567a, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1107 &110700000
|
||||
AnimatorStateMachine:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Base Layer
|
||||
m_ChildStates:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110200000}
|
||||
m_Position: {x: 120, y: -192, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110281693}
|
||||
m_Position: {x: 120, y: -132, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 110213112}
|
||||
m_Position: {x: 126, y: -252, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: 110176745}
|
||||
- {fileID: 110180422}
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
m_AnyStatePosition: {x: -96, y: -156, z: 0}
|
||||
m_EntryPosition: {x: -84, y: -252, z: 0}
|
||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 110213112}
|
@ -0,0 +1,4 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6376e569ebe96f54a9032c77c8b8ad9d
|
||||
NativeFormatImporter:
|
||||
userData:
|
@ -0,0 +1,169 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!74 &7400000
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ShowFromLeft
|
||||
serializedVersion: 6
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves: []
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves: []
|
||||
m_PositionCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: -16, y: -2.13, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0, y: 0, z: 0}
|
||||
outWeight: {x: 0, y: 0, z: 0}
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: {x: -6, y: -2.13, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path: SpineGameObject
|
||||
m_ScaleCurves: []
|
||||
m_FloatCurves: []
|
||||
m_PPtrCurves: []
|
||||
m_SampleRate: 60
|
||||
m_WrapMode: 0
|
||||
m_Bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_ClipBindingConstant:
|
||||
genericBindings:
|
||||
- serializedVersion: 2
|
||||
path: 1879259996
|
||||
attribute: 1
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 0.5
|
||||
m_OrientationOffsetY: 0
|
||||
m_Level: 0
|
||||
m_CycleOffset: 0
|
||||
m_HasAdditiveReferencePose: 0
|
||||
m_LoopTime: 0
|
||||
m_LoopBlend: 0
|
||||
m_LoopBlendOrientation: 0
|
||||
m_LoopBlendPositionY: 0
|
||||
m_LoopBlendPositionXZ: 0
|
||||
m_KeepOriginalOrientation: 0
|
||||
m_KeepOriginalPositionY: 1
|
||||
m_KeepOriginalPositionXZ: 0
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -16
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: -6
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.x
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -2.13
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: -2.13
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.y
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.z
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
m_EulerEditorCurves: []
|
||||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events: []
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8121f594245f67449b0ab1614f2d4bef
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,169 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!74 &7400000
|
||||
AnimationClip:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ShowFromRight
|
||||
serializedVersion: 6
|
||||
m_Legacy: 0
|
||||
m_Compressed: 0
|
||||
m_UseHighQualityCurve: 1
|
||||
m_RotationCurves: []
|
||||
m_CompressedRotationCurves: []
|
||||
m_EulerCurves: []
|
||||
m_PositionCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: {x: 16, y: -1.33, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0, y: 0, z: 0}
|
||||
outWeight: {x: 0, y: 0, z: 0}
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: {x: 6, y: -1.33, z: 0}
|
||||
inSlope: {x: 0, y: 0, z: 0}
|
||||
outSlope: {x: 0, y: 0, z: 0}
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
path: SpineGameObject
|
||||
m_ScaleCurves: []
|
||||
m_FloatCurves: []
|
||||
m_PPtrCurves: []
|
||||
m_SampleRate: 60
|
||||
m_WrapMode: 0
|
||||
m_Bounds:
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
m_Extent: {x: 0, y: 0, z: 0}
|
||||
m_ClipBindingConstant:
|
||||
genericBindings:
|
||||
- serializedVersion: 2
|
||||
path: 1879259996
|
||||
attribute: 1
|
||||
script: {fileID: 0}
|
||||
typeID: 4
|
||||
customType: 0
|
||||
isPPtrCurve: 0
|
||||
pptrCurveMapping: []
|
||||
m_AnimationClipSettings:
|
||||
serializedVersion: 2
|
||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||
m_AdditiveReferencePoseTime: 0
|
||||
m_StartTime: 0
|
||||
m_StopTime: 0.5
|
||||
m_OrientationOffsetY: 0
|
||||
m_Level: 0
|
||||
m_CycleOffset: 0
|
||||
m_HasAdditiveReferencePose: 0
|
||||
m_LoopTime: 0
|
||||
m_LoopBlend: 0
|
||||
m_LoopBlendOrientation: 0
|
||||
m_LoopBlendPositionY: 0
|
||||
m_LoopBlendPositionXZ: 0
|
||||
m_KeepOriginalOrientation: 0
|
||||
m_KeepOriginalPositionY: 1
|
||||
m_KeepOriginalPositionXZ: 0
|
||||
m_HeightFromFeet: 0
|
||||
m_Mirror: 0
|
||||
m_EditorCurves:
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 16
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: 6
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.x
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: -1.33
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: -1.33
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.y
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
- curve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0
|
||||
outWeight: 0
|
||||
- serializedVersion: 3
|
||||
time: 0.5
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 136
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
attribute: m_LocalPosition.z
|
||||
path: SpineGameObject
|
||||
classID: 4
|
||||
script: {fileID: 0}
|
||||
m_EulerEditorCurves: []
|
||||
m_HasGenericRootTransform: 0
|
||||
m_HasMotionFloatCurves: 0
|
||||
m_Events: []
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c49c08cc7ba87924591a35e39b2c567a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1 @@
|
||||
This example requires the example characters in Esoteric Software's Spine Examples.
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb7010933037240499c2d98311832dd9
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,523 @@
|
||||
%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: 935899b62f48ae5498594680ed17d133, type: 3}
|
||||
m_Name: Spine Example Database
|
||||
m_EditorClassIdentifier:
|
||||
version:
|
||||
author:
|
||||
description:
|
||||
globalUserScript:
|
||||
emphasisSettings:
|
||||
- color: {r: 1, g: 1, b: 1, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 1, g: 0, b: 0, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 0, g: 1, b: 0, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 0, g: 0, b: 1, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
actors:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Name
|
||||
value: Player
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: IsPlayer
|
||||
value: True
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 0}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
- id: 2
|
||||
fields:
|
||||
- title: Name
|
||||
value: NPC1
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: IsPlayer
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 0}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
- id: 3
|
||||
fields:
|
||||
- title: Name
|
||||
value: NPC2
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: IsPlayer
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 0}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
items: []
|
||||
locations: []
|
||||
variables:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Name
|
||||
value: Alert
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Initial Value
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversations:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value: Example Conversation
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
overrideSettings:
|
||||
useOverrides: 0
|
||||
overrideSubtitleSettings: 0
|
||||
showNPCSubtitlesDuringLine: 1
|
||||
showNPCSubtitlesWithResponses: 1
|
||||
showPCSubtitlesDuringLine: 0
|
||||
skipPCSubtitleAfterResponseMenu: 0
|
||||
subtitleCharsPerSecond: 30
|
||||
minSubtitleSeconds: 2
|
||||
continueButton: 0
|
||||
overrideSequenceSettings: 0
|
||||
defaultSequence:
|
||||
defaultPlayerSequence:
|
||||
defaultResponseMenuSequence:
|
||||
overrideInputSettings: 0
|
||||
alwaysForceResponseMenu: 1
|
||||
includeInvalidEntries: 0
|
||||
responseTimeout: 0
|
||||
nodeColor:
|
||||
dialogueEntries:
|
||||
- id: 0
|
||||
fields:
|
||||
- title: Title
|
||||
value: START
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Dialogue Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Sequence
|
||||
value: None()
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction:
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 0
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 1
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 30
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm NPC1.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 1
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 2
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 80
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 2
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: This is another line spoken by NPC1.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 2
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 3
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 130
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 3
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm the player.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 3
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 4
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 180
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 4
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: Hi, player. (Spoken by NPC1)
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 4
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 5
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 230
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 5
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 3
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: Freeze! I'm NPC 2!!!
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value: '{{default}};
|
||||
|
||||
SpineAnimation(frozen, listener, 0, false)@1.5'
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Choice
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks: []
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 280
|
||||
width: 160
|
||||
height: 30
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 1
|
||||
syncInfo:
|
||||
syncActors: 0
|
||||
syncItems: 0
|
||||
syncLocations: 0
|
||||
syncVariables: 0
|
||||
syncActorsDatabase: {fileID: 0}
|
||||
syncItemsDatabase: {fileID: 0}
|
||||
syncLocationsDatabase: {fileID: 0}
|
||||
syncVariablesDatabase: {fileID: 0}
|
||||
templateJson: '{"treatItemsAsQuests":true,"actorFields":[{"title":"Name","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"IsPlayer","value":"False","type":2,"typeString":"CustomFieldType_Boolean"}],"itemFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""},{"title":"Is
|
||||
Item","value":"True","type":2,"typeString":"CustomFieldType_Boolean"}],"questFields":[{"title":"Name","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Success
|
||||
Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Failure
|
||||
Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"State","value":"unassigned","type":0,"typeString":"CustomFieldType_QuestState"},{"title":"Is
|
||||
Item","value":"False","type":2,"typeString":"CustomFieldType_Boolean"}],"locationFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""}],"variableFields":[{"title":"Name","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Initial
|
||||
Value","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"}],"conversationFields":[{"title":"Title","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Actor","value":"0","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Conversant","value":"0","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Lua_Weight","value":"return
|
||||
1","type":0,"typeString":"CustomFieldType_Text"},{"title":"Lua_Repeat_Weight","value":"return
|
||||
1","type":0,"typeString":"CustomFieldType_Text"}],"dialogueEntryFields":[{"title":"Title","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Actor","value":"","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Conversant","value":"","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Menu
|
||||
Text","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Dialogue
|
||||
Text","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Parenthetical","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Audio
|
||||
Files","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Video
|
||||
File","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Sequence","value":"","type":0,"typeString":"CustomFieldType_Text"}],"actorPrimaryFieldTitles":[],"itemPrimaryFieldTitles":[],"questPrimaryFieldTitles":[],"locationPrimaryFieldTitles":[],"variablePrimaryFieldTitles":[],"conversationPrimaryFieldTitles":[],"dialogueEntryPrimaryFieldTitles":[],"npcLineColor":{"r":1.0,"g":0.0,"b":0.0,"a":1.0},"pcLineColor":{"r":0.0,"g":0.0,"b":1.0,"a":1.0},"repeatLineColor":{"r":0.5,"g":0.5,"b":0.5,"a":1.0}}'
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfc4ddc2a504dae49ac827023f4e62ea
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b07529b26c02a6944912337c7b290fc2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0cd5ee337633bdf4cb947177eaa97dfc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
||||
The default Spine integration uses SkeletonAnimations, which exist in world space.
|
||||
This example shows how to use Spine SkeletonGraphics in Unity UI.
|
||||
|
||||
It uses two custom scripts:
|
||||
|
||||
SpineDialogueUI: A subclass of StandardDialogueUI that observes these custom conversation fields:
|
||||
- "Panel # Actor" specifies the actor in panel #.
|
||||
- "Panel # Start Visible" specifies whether panel # should start visible.
|
||||
|
||||
(Make sure the dialogue UI uses SpineDialogueUI and SpineSubtitlePanel.)
|
||||
|
||||
SpineDialogueActorUI: A subclass of SpineDialogueActor that handles SkeletonGraphics.
|
||||
|
||||
In the Dialogue Editor, give each actor a portrait image, even though it won't be used.
|
||||
This is how the Dialogue System knows to show portrait info for the actor.
|
||||
|
||||
Add a SpineDialogueActor to each actor, and assign its SkeletonGraphic. During conversations,
|
||||
the SkeletonGraphic will be moved to the appropriate subtitle panel.
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6ec6ad5d3db70c4eac562ab5a505c1f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c499023f79dcd34d86e6ecc34b9687e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,40 @@
|
||||
using Spine.Unity;
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This addon for the DialogueActor component is a subclass of SpineDialogueActor
|
||||
/// for Spine SkeletonGraphics (UI elements). It puts the Spine character inside
|
||||
/// the subtitle panel's portrait image.
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(DialogueActor))]
|
||||
public class SpineDialogueActorUI : SpineDialogueActor
|
||||
{
|
||||
public override void Show(StandardUISubtitlePanel subtitlePanel)
|
||||
{
|
||||
if (spineGameObject == null || subtitlePanel == null || subtitlePanel.portraitImage == null) return;
|
||||
wasInactive = !spineGameObject.activeSelf;
|
||||
|
||||
// Deactivate any old SkeletonGraphics that were in this panel's portrait image area:
|
||||
foreach (Transform child in subtitlePanel.transform)
|
||||
{
|
||||
var otherSkeletonGraphic = child.GetComponent<SkeletonGraphic>();
|
||||
if (otherSkeletonGraphic != null) otherSkeletonGraphic.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
// Put my SkeletonGraphic in the portrait image area:
|
||||
spineGameObject.SetActive(true);
|
||||
spineGameObject.transform.SetParent(subtitlePanel.transform, false);
|
||||
if (subtitlePanel.portraitName != null)
|
||||
{ // Place behind portrait name:
|
||||
spineGameObject.transform.SetSiblingIndex(subtitlePanel.portraitName.gameObject.transform.GetSiblingIndex());
|
||||
}
|
||||
spineGameObject.GetComponent<RectTransform>().anchoredPosition = subtitlePanel.portraitImage.GetComponent<RectTransform>().anchoredPosition;
|
||||
subtitlePanel.GetComponent<Animator>().Rebind();
|
||||
subtitlePanel.GetComponent<Animator>().SetTrigger(subtitlePanel.showAnimationTrigger);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d71d6a983531b447bb0fbbf881756e4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,39 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the StandardDialogueUI Open() method to read the conversation's custom fields.
|
||||
/// - "Panel # Actor" specifies the actor in panel #.
|
||||
/// - "Panel # Start Visible" specifies whether panel # should start visible.
|
||||
/// </summary>
|
||||
public class SpineDialogueUI : StandardDialogueUI
|
||||
{
|
||||
public override void Open()
|
||||
{
|
||||
var conversation = DialogueManager.masterDatabase.GetConversation(DialogueManager.lastConversationID);
|
||||
for (int i = 0; i < conversationUIElements.subtitlePanels.Length; i++)
|
||||
{
|
||||
// Set panel visibility according to "Panel # Start Visible":
|
||||
var startVisible = conversation.LookupBool("Panel " + i + " Start Visible");
|
||||
var panel = conversationUIElements.subtitlePanels[i];
|
||||
panel.visibility = startVisible ? UIVisibility.AlwaysFromStart : UIVisibility.AlwaysOnceShown;
|
||||
|
||||
// Setup the Spine dialogue actor that should appear in this panel:
|
||||
if (!(panel is SpineSubtitlePanel)) continue;
|
||||
var actorID = conversation.LookupInt("Panel " + i + " Actor");
|
||||
var actor = DialogueManager.masterDatabase.GetActor(actorID);
|
||||
if (actor == null) continue;
|
||||
var actorTransform = CharacterInfo.GetRegisteredActorTransform(actor.Name);
|
||||
if (actorTransform == null) continue;
|
||||
var dialogueActor = actorTransform.GetComponent<DialogueActor>();
|
||||
if (dialogueActor == null) continue;
|
||||
dialogueActor.SetSubtitlePanelNumber(PanelNumberUtility.IntToSubtitlePanelNumber(i));
|
||||
(panel as SpineSubtitlePanel).ShowSpineDialogueActor(actorTransform);
|
||||
}
|
||||
|
||||
base.Open();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7b1ae8dcb120ee41902b27a13c3e884
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,678 @@
|
||||
%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: 935899b62f48ae5498594680ed17d133, type: 3}
|
||||
m_Name: Spine Subtitle Panels Example Database
|
||||
m_EditorClassIdentifier:
|
||||
version:
|
||||
author:
|
||||
description:
|
||||
globalUserScript:
|
||||
emphasisSettings:
|
||||
- color: {r: 1, g: 1, b: 1, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 1, g: 0, b: 0, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 0, g: 1, b: 0, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
- color: {r: 0, g: 0, b: 1, a: 1}
|
||||
bold: 0
|
||||
italic: 0
|
||||
underline: 0
|
||||
actors:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Name
|
||||
value: Player
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: IsPlayer
|
||||
value: True
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 21300000, guid: 8fbfa1bc77a0388499f83f32b410eea3, type: 3}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
- id: 2
|
||||
fields:
|
||||
- title: Name
|
||||
value: NPC1
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: IsPlayer
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 21300000, guid: 8fbfa1bc77a0388499f83f32b410eea3, type: 3}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
- id: 3
|
||||
fields:
|
||||
- title: Name
|
||||
value: NPC2
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: IsPlayer
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 21300000, guid: 8fbfa1bc77a0388499f83f32b410eea3, type: 3}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
- id: 4
|
||||
fields:
|
||||
- title: Name
|
||||
value: NPC3
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: IsPlayer
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
portrait: {fileID: 0}
|
||||
spritePortrait: {fileID: 21300000, guid: 8fbfa1bc77a0388499f83f32b410eea3, type: 3}
|
||||
alternatePortraits: []
|
||||
spritePortraits: []
|
||||
items: []
|
||||
locations: []
|
||||
variables:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Name
|
||||
value: Alert
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Initial Value
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversations:
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value: Example Conversation
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value: This conversation has custom fields that specify which actor is in each
|
||||
subtitle panel at start.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Panel 0 Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Panel 1 Actor
|
||||
value: 3
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Panel 2 Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Panel 3 Actor
|
||||
value: 4
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Panel 0 Start Visible
|
||||
value: True
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
- title: Panel 1 Start Visible
|
||||
value: True
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
- title: Panel 2 Start Visible
|
||||
value: True
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
- title: Panel 3 Start Visible
|
||||
value: False
|
||||
type: 2
|
||||
typeString: CustomFieldType_Boolean
|
||||
overrideSettings:
|
||||
useOverrides: 0
|
||||
overrideSubtitleSettings: 0
|
||||
showNPCSubtitlesDuringLine: 1
|
||||
showNPCSubtitlesWithResponses: 1
|
||||
showPCSubtitlesDuringLine: 0
|
||||
skipPCSubtitleAfterResponseMenu: 0
|
||||
subtitleCharsPerSecond: 30
|
||||
minSubtitleSeconds: 2
|
||||
continueButton: 0
|
||||
overrideSequenceSettings: 0
|
||||
defaultSequence:
|
||||
defaultPlayerSequence:
|
||||
defaultResponseMenuSequence:
|
||||
overrideInputSettings: 0
|
||||
alwaysForceResponseMenu: 1
|
||||
includeInvalidEntries: 0
|
||||
responseTimeout: 0
|
||||
cancelSubtitle:
|
||||
key: 27
|
||||
buttonName:
|
||||
cancelConversation:
|
||||
key: 27
|
||||
buttonName:
|
||||
nodeColor:
|
||||
dialogueEntries:
|
||||
- id: 0
|
||||
fields:
|
||||
- title: Title
|
||||
value: START
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Dialogue Text
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString:
|
||||
- title: Sequence
|
||||
value: None()
|
||||
type: 0
|
||||
typeString:
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction:
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 0
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 1
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 30
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 1
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm NPC1 (girl). NPC1, Player (space boy), and NPC2 (doll boy) should
|
||||
be visible.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 1
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 2
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 80
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 2
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 2
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm the player.
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 2
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 3
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 130
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 3
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 3
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm NPC2 (doll boy).
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 3
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 4
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 180
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 4
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 4
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: I'm NPC3 (sneaky rubber man).
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks:
|
||||
- originConversationID: 1
|
||||
originDialogueID: 4
|
||||
destinationConversationID: 1
|
||||
destinationDialogueID: 5
|
||||
isConnector: 0
|
||||
priority: 2
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 230
|
||||
width: 160
|
||||
height: 30
|
||||
- id: 5
|
||||
fields:
|
||||
- title: Title
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Pictures
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Description
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Actor
|
||||
value: 4
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Conversant
|
||||
value: 1
|
||||
type: 5
|
||||
typeString: CustomFieldType_Actor
|
||||
- title: Menu Text
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Dialogue Text
|
||||
value: '[panel=0]Still sneaky rubber man. Now I snuck over to subtitle panel
|
||||
0. Bye!'
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Parenthetical
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Audio Files
|
||||
value: '[]'
|
||||
type: 3
|
||||
typeString: CustomFieldType_Files
|
||||
- title: Video File
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
- title: Sequence
|
||||
value:
|
||||
type: 0
|
||||
typeString: CustomFieldType_Text
|
||||
conversationID: 1
|
||||
isRoot: 0
|
||||
isGroup: 0
|
||||
nodeColor:
|
||||
delaySimStatus: 0
|
||||
falseConditionAction: Block
|
||||
conditionPriority: 2
|
||||
outgoingLinks: []
|
||||
conditionsString:
|
||||
userScript:
|
||||
onExecute:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine.CoreModule, Version=0.0.0.0,
|
||||
Culture=neutral, PublicKeyToken=null
|
||||
canvasRect:
|
||||
serializedVersion: 2
|
||||
x: 20
|
||||
y: 280
|
||||
width: 160
|
||||
height: 30
|
||||
entryGroups: []
|
||||
canvasScrollPosition: {x: 0, y: 0}
|
||||
canvasZoom: 1
|
||||
syncInfo:
|
||||
syncActors: 0
|
||||
syncItems: 0
|
||||
syncLocations: 0
|
||||
syncVariables: 0
|
||||
syncActorsDatabase: {fileID: 0}
|
||||
syncItemsDatabase: {fileID: 0}
|
||||
syncLocationsDatabase: {fileID: 0}
|
||||
syncVariablesDatabase: {fileID: 0}
|
||||
templateJson: '{"treatItemsAsQuests":true,"actorFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""},{"title":"IsPlayer","value":"False","type":2,"typeString":"CustomFieldType_Boolean"}],"itemFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""},{"title":"Is
|
||||
Item","value":"True","type":2,"typeString":"CustomFieldType_Boolean"}],"questFields":[{"title":"Name","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Success
|
||||
Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"Failure
|
||||
Description","value":"","type":0,"typeString":"CustomFieldType_Text"},{"title":"State","value":"unassigned","type":0,"typeString":"CustomFieldType_QuestState"},{"title":"Is
|
||||
Item","value":"False","type":2,"typeString":"CustomFieldType_Boolean"}],"locationFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""}],"variableFields":[{"title":"Name","value":"","type":0,"typeString":""},{"title":"Initial
|
||||
Value","value":"","type":0,"typeString":""},{"title":"Description","value":"","type":0,"typeString":""}],"conversationFields":[{"title":"Title","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""},{"title":"Actor","value":"0","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Conversant","value":"0","type":5,"typeString":"CustomFieldType_Actor"}],"dialogueEntryFields":[{"title":"Title","value":"","type":0,"typeString":""},{"title":"Pictures","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Description","value":"","type":0,"typeString":""},{"title":"Actor","value":"","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Conversant","value":"","type":5,"typeString":"CustomFieldType_Actor"},{"title":"Menu
|
||||
Text","value":"","type":0,"typeString":""},{"title":"Dialogue Text","value":"","type":0,"typeString":""},{"title":"Parenthetical","value":"","type":0,"typeString":""},{"title":"Audio
|
||||
Files","value":"[]","type":3,"typeString":"CustomFieldType_Files"},{"title":"Video
|
||||
File","value":"","type":0,"typeString":""},{"title":"Sequence","value":"","type":0,"typeString":""}],"actorPrimaryFieldTitles":[],"itemPrimaryFieldTitles":[],"questPrimaryFieldTitles":[],"locationPrimaryFieldTitles":[],"variablePrimaryFieldTitles":[],"conversationPrimaryFieldTitles":[],"dialogueEntryPrimaryFieldTitles":[],"npcLineColor":{"r":1.0,"g":0.0,"b":0.0,"a":1.0},"pcLineColor":{"r":0.0,"g":0.0,"b":1.0,"a":1.0},"repeatLineColor":{"r":0.5,"g":0.5,"b":0.5,"a":1.0}}'
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 07b9a1b967868724fb152ed840aa499a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac6b6cf016a509849b2d93b744a19105
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bebb71e69b1efca44b31e4f1ca0b43ef
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,38 @@
|
||||
using UnityEngine;
|
||||
using PixelCrushers.DialogueSystem.SpineSupport;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SequencerCommands
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Syntax: SpineActor(actor, panel#|hide)
|
||||
/// </summary>
|
||||
public class SequencerCommandSpineActor : SequencerCommand
|
||||
{
|
||||
private void Awake()
|
||||
{
|
||||
var actorName = GetParameter(0);
|
||||
var hide = string.Equals("hide", GetParameter(1), System.StringComparison.OrdinalIgnoreCase);
|
||||
int panelIndex = hide ? -1 : GetParameterAsInt(1);
|
||||
var spineDialogueActor = CharacterInfo.GetRegisteredActorTransform(actorName).GetComponent<SpineDialogueActor>();
|
||||
if (spineDialogueActor == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: SpineActor(" + GetParameters() + "): Can't find SpineDialogueActor.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DialogueDebug.logInfo) Debug.Log("Dialogue System: Sequencer: SpineActor(" + spineDialogueActor + ", " + (hide ? "hide" : panelIndex.ToString()) + ")", spineDialogueActor);
|
||||
if (hide)
|
||||
{
|
||||
SpinePortraitManager.instance.HideSpineActor(spineDialogueActor);
|
||||
}
|
||||
else
|
||||
{
|
||||
SpinePortraitManager.instance.ShowSpineActor(spineDialogueActor, panelIndex);
|
||||
}
|
||||
}
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 86208a6fc8bb57a44a88488e33ca678d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,64 @@
|
||||
using UnityEngine;
|
||||
using PixelCrushers.DialogueSystem.SpineSupport;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SequencerCommands
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Sequencer command: SpineAnimation(animationName, [subject], [trackIndex], [loop])
|
||||
///
|
||||
/// Parameters:
|
||||
/// - animationName: Name of an animation asset in the subject's SpineSequencerReferences component.
|
||||
/// - subject: (Optional) Spine GameObject with a SpineSequencerReferences component. Default: speaker.
|
||||
/// - trackIndex: (Optional) Track index to use. Default: 0.
|
||||
/// - loop: (Optional) Loop or not. Default: true.
|
||||
/// </summary>
|
||||
public class SequencerCommandSpineAnimation : SequencerCommand
|
||||
{
|
||||
|
||||
public void Start()
|
||||
{
|
||||
var animationName = GetParameter(0);
|
||||
var subject = GetSubject(1, speaker);
|
||||
var trackIndex = GetParameterAsInt(2);
|
||||
var loop = GetParameterAsBool(3, true);
|
||||
var references = (subject != null) ? subject.GetComponentInChildren<SpineSequencerReferences>() : null;
|
||||
var animation = (references != null) ? references.animationReferenceAssets.Find(x => x.name == animationName) : null;
|
||||
Spine.AnimationState state = null;
|
||||
if (references != null)
|
||||
{
|
||||
if (references.skeletonAnimation != null)
|
||||
{
|
||||
state = references.skeletonAnimation.AnimationState;
|
||||
}
|
||||
else if (references.skeletonGraphic != null)
|
||||
{
|
||||
state = references.skeletonGraphic.AnimationState;
|
||||
}
|
||||
}
|
||||
if (subject == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: Sequencer: SpineAnimation(" + GetParameters() + ") can't find the subject.");
|
||||
}
|
||||
else if (references == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: Sequencer: SpineAnimation(" + GetParameters() + ") subject " + subject + " needs a SpineSequencerReferences component.", subject);
|
||||
}
|
||||
else if (animation == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: Sequencer: SpineAnimation(" + GetParameters() + ") SpineSequencerReferences on " + subject + " doesn't have an AnimationReferenceAsset named '" + animationName + "'.", subject);
|
||||
}
|
||||
else if (state == null)
|
||||
{
|
||||
if (DialogueDebug.logWarnings) Debug.LogWarning("Dialogue System: Sequencer: SpineAnimation(" + GetParameters() + ") SkeletonAnimation referenced by SpineSequencerReferences on " + subject + " doesn't have an AnimationState.", subject);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DialogueDebug.logInfo) Debug.Log("Dialogue System: Sequencer: SpineAnimation(" + GetParameters() + ")", subject);
|
||||
state.SetAnimation(trackIndex, animation, loop);
|
||||
}
|
||||
Stop();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 186611a9a5a163f4995941d68900fb0d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,54 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This addon for the DialogueActor component handles a Spine character avatar.
|
||||
/// If a SpineSubtitlePanel finds a SpineDialogueActor, it uses its Show and Hide methods.
|
||||
/// </summary>
|
||||
[RequireComponent(typeof(DialogueActor))]
|
||||
public class SpineDialogueActor : MonoBehaviour
|
||||
{
|
||||
public GameObject spineGameObject;
|
||||
|
||||
public string showTrigger = "Show";
|
||||
public string hideTrigger = "Hide";
|
||||
public string focusTrigger = "Focus";
|
||||
public string unfocusTrigger = "Unfocus";
|
||||
|
||||
protected bool wasInactive = false;
|
||||
private UIAnimatorMonitor m_animatorMonitor = null;
|
||||
public UIAnimatorMonitor animatorMonitor
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_animatorMonitor == null && spineGameObject != null)
|
||||
{
|
||||
m_animatorMonitor = new UIAnimatorMonitor(gameObject);
|
||||
}
|
||||
return m_animatorMonitor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public virtual void Show(StandardUISubtitlePanel subtitlePanel)
|
||||
{
|
||||
if (spineGameObject == null) return;
|
||||
wasInactive = !spineGameObject.activeSelf;
|
||||
spineGameObject.SetActive(true);
|
||||
animatorMonitor.SetTrigger(showTrigger, null, false);
|
||||
}
|
||||
|
||||
public virtual void Hide(StandardUISubtitlePanel subtitlePanel)
|
||||
{
|
||||
if (spineGameObject == null) return;
|
||||
animatorMonitor.SetTrigger(hideTrigger, OnHidden, true);
|
||||
}
|
||||
|
||||
protected void OnHidden()
|
||||
{
|
||||
if (wasInactive) spineGameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 71421582644b3684494794e00460b94a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,138 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Add to the Dialogue Manager to be able to use SpineActor() sequencer commands.
|
||||
/// </summary>
|
||||
public class SpinePortraitManager : MonoBehaviour
|
||||
{
|
||||
|
||||
private static SpinePortraitManager m_instance = null;
|
||||
public static SpinePortraitManager instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_instance == null)
|
||||
{
|
||||
m_instance = FindObjectOfType<SpinePortraitManager>() ?? DialogueManager.instance.gameObject.AddComponent<SpinePortraitManager>();
|
||||
}
|
||||
return m_instance;
|
||||
}
|
||||
}
|
||||
|
||||
private Dictionary<SpineDialogueActor, int> actors = new Dictionary<SpineDialogueActor, int>();
|
||||
private SpineDialogueActor focusedActor = null;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
DialogueManager.instance.conversationEnded += OnConversationEnded;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
DialogueManager.instance.conversationEnded -= OnConversationEnded;
|
||||
}
|
||||
|
||||
public void ShowSpineActor(SpineDialogueActor spineDialogueActor, int panelIndex)
|
||||
{
|
||||
if (spineDialogueActor == null) return;
|
||||
if (actors.ContainsKey(spineDialogueActor))
|
||||
{
|
||||
if (actors[spineDialogueActor] != panelIndex)
|
||||
{
|
||||
MoveSpineActorToPanel(spineDialogueActor, panelIndex);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
actors.Add(spineDialogueActor, panelIndex);
|
||||
MoveSpineActorToPanel(spineDialogueActor, panelIndex);
|
||||
SetTrigger(spineDialogueActor, spineDialogueActor.showTrigger);
|
||||
}
|
||||
}
|
||||
|
||||
public void HideSpineActor(SpineDialogueActor spineDialogueActor)
|
||||
{
|
||||
if (spineDialogueActor == null) return;
|
||||
if (spineDialogueActor == focusedActor) focusedActor = null;
|
||||
SetTrigger(spineDialogueActor, spineDialogueActor.hideTrigger, false);
|
||||
}
|
||||
|
||||
private void OnConversationLine(Subtitle subtitle)
|
||||
{
|
||||
if (string.IsNullOrEmpty(subtitle.formattedText.text)) return;
|
||||
StartCoroutine(CheckActorAtEndOfFrame(subtitle));
|
||||
}
|
||||
|
||||
private IEnumerator CheckActorAtEndOfFrame(Subtitle subtitle)
|
||||
{
|
||||
yield return new WaitForEndOfFrame();
|
||||
var spineDialogueActor = subtitle.speakerInfo.transform.GetComponent<SpineDialogueActor>();
|
||||
if (focusedActor == null || focusedActor != spineDialogueActor)
|
||||
{
|
||||
if (focusedActor != null)
|
||||
{
|
||||
SetTrigger(focusedActor, focusedActor.unfocusTrigger);
|
||||
}
|
||||
focusedActor = spineDialogueActor;
|
||||
if (spineDialogueActor != null)
|
||||
{
|
||||
SetTrigger(spineDialogueActor, spineDialogueActor.focusTrigger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConversationEnded(Transform conversationActor)
|
||||
{
|
||||
foreach (var spineDialogueActor in actors.Keys)
|
||||
{
|
||||
SetTrigger(spineDialogueActor, spineDialogueActor.hideTrigger, false);
|
||||
}
|
||||
actors.Clear();
|
||||
focusedActor = null;
|
||||
}
|
||||
|
||||
private void MoveSpineActorToPanel(SpineDialogueActor spineDialogueActor, int panelIndex)
|
||||
{
|
||||
if (spineDialogueActor == null) return;
|
||||
if (spineDialogueActor.spineGameObject == null) return;
|
||||
var rt = spineDialogueActor.spineGameObject.GetComponent<RectTransform>();
|
||||
if (rt == null) return;
|
||||
var panel = GetPanel(panelIndex);
|
||||
if (panel == null) return;
|
||||
if (panel.panelState == UIPanel.PanelState.Closed) panel.Open();
|
||||
var panelRT = panel.GetComponent<RectTransform>();
|
||||
rt.pivot = panelRT.pivot;
|
||||
rt.anchoredPosition = panelRT.anchoredPosition;
|
||||
rt.anchorMax = panelRT.anchorMax;
|
||||
rt.anchorMin = panelRT.anchorMin;
|
||||
rt.sizeDelta = panelRT.sizeDelta;
|
||||
actors[spineDialogueActor] = panelIndex;
|
||||
}
|
||||
|
||||
private StandardUISubtitlePanel GetPanel(int panelIndex)
|
||||
{
|
||||
var ui = DialogueManager.dialogueUI as StandardDialogueUI;
|
||||
if (ui == null) return null;
|
||||
var numPanels = ui.conversationUIElements.subtitlePanels.Length;
|
||||
if (!(0 <= panelIndex && panelIndex < numPanels)) return null;
|
||||
return ui.conversationUIElements.subtitlePanels[panelIndex];
|
||||
}
|
||||
|
||||
private void SetTrigger(SpineDialogueActor spineDialogueActor, string triggerName, bool canvasState = true)
|
||||
{
|
||||
if (spineDialogueActor == null) return;
|
||||
if (spineDialogueActor.spineGameObject == null) return;
|
||||
var canvas = spineDialogueActor.spineGameObject.GetComponentInParent<Canvas>();
|
||||
if (canvas == null) return;
|
||||
canvas.enabled = canvasState;
|
||||
var animator = canvas.GetComponent<Animator>();
|
||||
if (animator == null) return;
|
||||
animator.SetTrigger(triggerName);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36e955f85cf96b348aa79c520ac5e1cb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This component holds references to Spine AnimationReferenceAssets
|
||||
/// so the SpineAnimation() sequencer command can access them.
|
||||
/// </summary>
|
||||
public class SpineSequencerReferences : MonoBehaviour
|
||||
{
|
||||
[HelpBox("Assign a SkeletonAnimation or SkeletonGraphic. Then assign animations that the SpineAnimation() sequencer command can use.", HelpBoxMessageType.None)]
|
||||
public Spine.Unity.SkeletonAnimation skeletonAnimation;
|
||||
public Spine.Unity.SkeletonGraphic skeletonGraphic;
|
||||
public List<Spine.Unity.AnimationReferenceAsset> animationReferenceAssets = new List<Spine.Unity.AnimationReferenceAsset>();
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b7e654c011848bd448ffa6958faf0600
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,45 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace PixelCrushers.DialogueSystem.SpineSupport
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This subclass of StandardUISubtitlePanel is aware of characters that
|
||||
/// have SpineDialogueActor components.
|
||||
/// </summary>
|
||||
public class SpineSubtitlePanel : StandardUISubtitlePanel
|
||||
{
|
||||
private SpineDialogueActor visibleSpineDialogueActor = null;
|
||||
|
||||
public override void OpenOnStartConversation(Sprite portraitSprite, string portraitName, DialogueActor dialogueActor)
|
||||
{
|
||||
base.OpenOnStartConversation(portraitSprite, portraitName, dialogueActor);
|
||||
if (dialogueActor != null) ShowSpineDialogueActor(dialogueActor.transform);
|
||||
}
|
||||
|
||||
public override void ShowSubtitle(Subtitle subtitle)
|
||||
{
|
||||
base.ShowSubtitle(subtitle);
|
||||
ShowSpineDialogueActor(subtitle.speakerInfo.transform);
|
||||
}
|
||||
|
||||
public virtual void ShowSpineDialogueActor(Transform actorTransform)
|
||||
{
|
||||
if (actorTransform == null) return;
|
||||
var spineDialogueActor = actorTransform.GetComponent<SpineDialogueActor>();
|
||||
if (spineDialogueActor != visibleSpineDialogueActor)
|
||||
{
|
||||
if (visibleSpineDialogueActor != null) visibleSpineDialogueActor.Hide(this);
|
||||
if (spineDialogueActor != null) spineDialogueActor.Show(this);
|
||||
visibleSpineDialogueActor = spineDialogueActor;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
if (visibleSpineDialogueActor != null) visibleSpineDialogueActor.Hide(this);
|
||||
visibleSpineDialogueActor = null;
|
||||
base.Close();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2fec5f72cfd95448ad00d0cc112dffc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -11,6 +11,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Documentation/Input_Device_Manager_Manual.pdf
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -6,6 +6,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Documentation/Save_System_Manual.pdf
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -10,6 +10,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Documentation/Text_Table_Manual.pdf
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -7,6 +7,7 @@ namespace PixelCrushers
|
||||
{
|
||||
|
||||
[CustomEditor(typeof(MessageEvents), true)]
|
||||
[CanEditMultipleObjects]
|
||||
public class MessageEventsEditor : Editor
|
||||
{
|
||||
|
||||
|
@ -10,6 +10,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Scripts/Editor/Message System/MessageEventsEditor.cs
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -10,6 +10,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Scripts/Editor/Misc/AssetUtility.cs
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
@ -10,6 +10,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 11672
|
||||
packageName: Dialogue System for Unity
|
||||
packageVersion: 2.2.46.1
|
||||
packageVersion: 2.2.50.1
|
||||
assetPath: Assets/Plugins/Pixel Crushers/Common/Scripts/Editor/Misc/EditorGUIZoomArea.cs
|
||||
uploadId: 667566
|
||||
uploadId: 710675
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user