Yarn Spinner 3 is now available!
Buy Now
LogoLogo
HomepageDiscordItchPatreonAsset Store
Yarn Spinner 3.0
Yarn Spinner 3.0
  • ⭐Start Here
    • Yarn Spinner 3
  • Beginner's Guide
  • About Yarn Spinner
  • Crediting Yarn Spinner
  • FAQ
  • Writing Yarn Scripts
    • ⭐First Steps with Scripting
    • Yarn Spinner Editor
      • Writing Yarn in VS Code
      • Previewing Your Dialogue
      • Writing Together
    • Scripting Fundamentals
      • Nodes and Lines
      • Options
      • Jump Command
      • Detour Command
      • Variables
      • Flow Control
      • Once
      • Smart Variables
      • Enums
      • Commands
      • Functions
      • Line Groups
    • Advanced Scripting
      • Node Groups
      • Storylets and Saliency Primer
      • Saliency
      • Tags and Metadata
      • Markup
      • Shadow Lines
  • Yarn Spinner for Unity
    • ⭐First Steps with Unity
    • Installation for Unity
      • Unity Quick Start
    • Yarn Spinner in Unity Scenes
      • Unity Projects + Yarn Spinner
    • Your First Yarn Spinner Game
    • Commands and Functions
    • Localisation and Assets
      • In-built Localisation
      • Unity Localisation
    • Samples
      • Welcome
      • Feature Tour
      • Theming Default Presenters
      • Create a Phone Chat View
      • Make Options Timeout
      • Voice Over and Localisation
      • Background Chatter
      • Inline Events
      • Replacement Markup
      • Storylets and Saliency
        • Basic Storylets and Saliency
        • Advanced Saliency
        • Custom Saliency Strategies
    • Unity Add-Ons
      • Speech Bubbles
        • Installing Speech Bubbles
        • Using Speech Bubbles
        • Speech Bubble Examples
      • Dialogue Wheel
        • Installing Dialogue Wheel
        • Using Six-Segment Wheel
        • Using Auto-Layout Wheel
        • Dialogue Wheel Examples
  • Components
    • Dialogue Runners and Systems
    • Dialogue Presenters
      • Line Presenter
      • Options Presenter
      • Line Advancer
      • Custom Dialogue Presenters
    • Variable Storage
      • In-Memory Variable Storage
      • Variable Storage
      • Custom Variable Storage Components
    • Line Provider
      • Built-in Localised Line Provider
      • Unity Localised Line Provider
    • Asynchronous Programming
  • Changelog
    • Upgrading from Yarn Spinner 2
  • Yarn Spinner for Other Engines
    • Godot
      • Overview
      • 📦Installation for Godot
      • 📥Importing Yarn Files
        • Yarn Projects
        • Yarn Scripts
      • 🧱Components
        • Dialogue Runner
        • Dialogue Presenters
          • Line Presenter
          • Options Presenter
          • Creating Custom Dialogue Views
        • Variable Storage
          • In-Memory Variable Storage
          • Custom Variable Storage Components
        • Line Provider
          • Text Line Provider
        • Markup Palette
      • 🤖Commands and Functions
      • 🗺️Localization
      • Advanced Guides
        • Implementing Custom Variable Storage
    • Unreal
      • 🧑🏼‍🏫Unreal Beta Quickstart
    • Bevy
      • ⚡Bevy Quick Start
      • 📥Compiling Yarn Files into Yarn Projects
      • 🧱Components
        • Dialogue Runner and a High Level Overview
        • Dialogue Views
        • Variable Storage
        • Assets
      • 🤖Custom Commands and Functions
        • Commands
        • Functions
      • 🗺️Localisations
      • 💡Frequently Asked Questions / "How Do I...?"
      • 🎁Bevy Samples
  • API
    • C#
      • Yarn.Utility Namespace
        • CRC32
          • GetChecksum(byte[])
          • GetChecksum(string)
          • GetChecksumString(string)
      • Yarn Namespace
        • Command
          • Text
        • CommandHandler
        • ConstantTypeProperty
          • Description
          • Type
          • Value
        • Dialogue
          • DefaultStartNodeName
          • Dialogue(Yarn.IVariableStorage)
          • Continue()
          • GetHeaders(string)
          • GetHeaderValue(string,string)
          • GetSaliencyOptionsForNodeGroup(string)
          • GetStringIDForNode(string)
          • GetTagsForNode(string)
          • HasSalientContent(string)
          • IsNodeGroup(string)
          • NodeExists(string)
          • SetNode(string)
          • SetProgram(Program)
          • SetSelectedOption(int)
          • Stop()
          • TryGetSmartVariable<T>(string,T)
          • UnloadAll()
          • CommandHandler
          • ContentSaliencyStrategy
          • CurrentNode
          • DialogueCompleteHandler
          • IsActive
          • Library
          • LineHandler
          • LogDebugMessage
          • LogErrorMessage
          • NodeCompleteHandler
          • NodeNames
          • NodeStartHandler
          • OptionsHandler
          • PrepareForLinesHandler
          • VariableStorage
        • DialogueCompleteHandler
        • DialogueException
        • EnumBase
          • EnumBase()
          • Description
          • Name
          • Parent
        • EnumType
          • EnumType(string,string,TypeBase)
          • Description
          • EnumCases
          • Name
          • Parent
          • RawType
        • FunctionType
          • FunctionType(IType,IType[])
          • Equals(IType)
          • GetParameterAt(int)
          • ToString()
          • Description
          • Name
          • Parameters
          • Parent
          • ReturnType
          • TypeMembers
          • VariadicParameterType
        • Header
          • KeyFieldNumber
          • ValueFieldNumber
          • Header()
          • Header(Header)
          • CalculateSize()
          • Clone()
          • Equals(object)
          • Equals(Header)
          • GetHashCode()
          • MergeFrom(pb::CodedInputStream)
          • MergeFrom(Header)
          • ToString()
          • WriteTo(pb::CodedOutputStream)
          • Descriptor
          • Key
          • Parser
          • Value
        • IMarkupParser
          • ParseMarkup(string,string)
        • ISmartVariableEvaluator
          • TryGetSmartVariable<T>(string,T)
        • IType
          • Description
          • Name
          • Parent
          • TypeMembers
        • ITypeMember
          • Type
        • IVariableAccess
          • GetVariableKind(string)
          • TryGetValue<T>(string,T?)
          • Program
          • SmartVariableEvaluator
        • IVariableStorage
          • Clear()
          • SetValue(string,bool)
          • SetValue(string,float)
          • SetValue(string,string)
        • IYarnValue
          • ConvertTo<T>()
        • Library
          • DeregisterFunction(string)
          • FunctionExists(string)
          • GenerateUniqueVisitedVariableForNode(string)
          • GetFunction(string)
          • ImportLibrary(Library)
          • RegisterFunction(string,Delegate)
          • RegisterFunction<TResult>(string,Func<TResult>)
          • RegisterFunction<T1, TResult>(string,Func<T1, TResult>)
          • RegisterFunction<T1, T2, TResult>(string,Func<T1, T2, TResult>)
          • RegisterFunction<T1, T2, T3, TResult>(string,Func<T1, T2, T3, TResult>)
          • RegisterFunction<T1, T2, T3, T4, TResult>(string,Func<T1, T2, T3, T4, TResult>)
          • RegisterFunction<T1, T2, T3, T4, T5, TResult>(string,Func<T1, T2, T3, T4, T5, TResult>)
        • Line
          • Line(string,string[])
          • ID
          • Substitutions
        • LineHandler
        • Logger
        • MemoryVariableStore
          • Clear()
          • GetVariableKind(string)
          • SetValue(string,bool)
          • SetValue(string,float)
          • SetValue(string,string)
          • TryGetValue<T>(string,T?)
          • Program
          • SmartVariableEvaluator
        • Node
          • NodeGroupHeader
          • ToString()
          • ContentSaliencyConditionComplexityScore
          • ContentSaliencyConditionVariables
          • Headers
          • Instructions
          • IsNodeGroupHub
          • Name
          • NodeGroup
          • Tags
          • TrackingVariableName
        • NodeCompleteHandler
        • NodeStartHandler
        • OptionSet
          • Options
          • Option
            • ID
            • IsAvailable
            • Line
        • OptionsHandler
        • PrepareForLinesHandler
        • Program
          • GetVariableKind(string)
          • LineIDsForNode(string)
          • ToString()
          • TryGetInitialValue<T>(string,T)
          • InitialValues
          • Name
          • Nodes
        • TypeBase
          • Equals(object)
          • Equals(TypeBase)
          • GetHashCode()
          • IsAncestorOf(TypeBase)
          • IsConvertibleTo(TypeBase)
          • ToString()
          • ConvertibleToTypes
          • Description
          • Methods
          • Name
          • Parent
          • TypeMembers
        • Types
          • Any
          • Boolean
          • Number
          • String
          • TypeMappings
        • VariableKind
          • Smart
          • Stored
          • Unknown
      • Yarn.Saliency Namespace
        • BestLeastRecentlyViewedSaliencyStrategy
          • BestLeastRecentlyViewedSaliencyStrategy(IVariableStorage)
          • ContentWasSelected(ContentSaliencyOption)
          • QueryBestContent(IEnumerable<ContentSaliencyOption>)
        • BestSaliencyStrategy
          • ContentWasSelected(ContentSaliencyOption)
          • QueryBestContent(IEnumerable<ContentSaliencyOption>)
        • ContentSaliencyContentType
          • Line
          • Node
        • ContentSaliencyOption
          • ContentSaliencyOption(string)
          • ComplexityScore
          • ContentID
          • ContentType
          • FailingConditionValueCount
          • PassingConditionValueCount
          • ViewCountKey
        • EnumerableRandomExtension
          • RandomElement<T>(IEnumerable<T>)
        • FirstSaliencyStrategy
          • ContentWasSelected(ContentSaliencyOption)
          • QueryBestContent(IEnumerable<ContentSaliencyOption>)
        • IContentSaliencyStrategy
          • ContentWasSelected(ContentSaliencyOption)
          • QueryBestContent(IEnumerable<ContentSaliencyOption>)
        • RandomBestLeastRecentlyViewedSaliencyStrategy
          • RandomBestLeastRecentlyViewedSaliencyStrategy(IVariableStorage)
          • ContentWasSelected(ContentSaliencyOption)
          • QueryBestContent(IEnumerable<ContentSaliencyOption>)
      • Yarn.Markup Namespace
        • BuiltInMarkupReplacer
          • ProcessReplacementMarker(MarkupAttribute,StringBuilder,List<MarkupAttribute>,string)
        • IAttributeMarkerProcessor
          • ProcessReplacementMarker(MarkupAttribute,System.Text.StringBuilder,List<MarkupAttribute>,string)
        • LineParser
          • CharacterAttribute
          • CharacterAttributeNameProperty
          • NoMarkupAttribute
          • ReplacementMarkerContents
          • TrimWhitespaceProperty
          • DeregisterMarkerProcessor(string)
          • Dispose()
          • ExpandSubstitutions(string,IList<string>)
          • ParseString(string,string,bool)
          • RegisterMarkerProcessor(string,IAttributeMarkerProcessor)
          • MarkupDiagnostic
            • MarkupDiagnostic(string,int)
            • Equals(object)
            • Equals(MarkupDiagnostic)
            • GetHashCode()
            • M:Yarn.Markup.LineParser.MarkupDiagnostic.op_Equality(Yarn.Markup.LineParser.MarkupDiagnostic,Yarn.Markup.LineParser.MarkupDiagnostic)
            • M:Yarn.Markup.LineParser.MarkupDiagnostic.op_Inequality(Yarn.Markup.LineParser.MarkupDiagnostic,Yarn.Markup.LineParser.MarkupDiagnostic)
            • Column
            • Message
        • MarkupAttribute
          • Shift(int)
          • ToString()
          • TryGetProperty(string,bool)
          • TryGetProperty(string,int)
          • TryGetProperty(string,float)
          • TryGetProperty(string,string?)
          • TryGetProperty(string,MarkupValue)
          • Length
          • Name
          • Position
          • Properties
        • MarkupParseException
        • MarkupParseResult
          • MarkupParseResult(string,List<MarkupAttribute>)
          • DeleteRange(MarkupAttribute)
          • TextForAttribute(MarkupAttribute)
          • TryGetAttributeWithName(string,MarkupAttribute)
          • Attributes
          • Text
        • MarkupProperty
          • Name
          • Value
        • MarkupValue
          • ToString()
          • ToString(IFormatProvider)
          • BoolValue
          • FloatValue
          • IntegerValue
          • StringValue
          • Type
        • MarkupValueType
          • Bool
          • Float
          • Integer
          • String
        • TagType
          • Close
          • CloseAll
          • Open
          • SelfClosing
      • Yarn.Compiler Namespace
        • CompilationJob
          • CompilationType
          • Declarations
          • Files
          • Library
          • CreateFromFiles(IEnumerable<string>,Library?)
          • CreateFromFiles(string[])
          • CreateFromString(string,string,Library?,int)
          • CancellationToken
          • LanguageVersion
          • TypeDeclarations
          • VariableDeclarations
          • File
            • FileName
            • Source
          • Type
            • DeclarationsOnly
            • FullCompilation
            • StringsOnly
            • TypeCheck
        • CompilationResult
          • GetDescriptionForVariable(string)
          • GetLabelsForNode(string)
          • GetStringForKey(string)
          • ContainsErrors
          • ContainsImplicitStringTags
          • DebugInfo
          • Declarations
          • Diagnostics
          • FileTags
          • Program
          • ProjectDebugInfo
          • StringTable
          • UserDefinedTypes
        • Compiler
          • Compile(CompilationJob)
          • FlattenParseTree(IParseTree)
          • GetDocumentComments(CommonTokenStream,ParserRuleContext,bool)
          • GetLineIDForNodeName(string)
        • Declaration
          • ExternalDeclaration
          • CreateVariable(string,IType,IConvertible,string?)
          • ToString()
          • DefaultValue
          • Dependencies
          • Dependents
          • Description
          • InitialValueParserContext
          • IsImplicit
          • IsInlineExpansion
          • IsVariable
          • Name
          • Range
          • SourceFileLine
          • SourceFileName
          • SourceNodeName
          • Type
        • DeclarationBuilder
          • WithDefaultValue(System.IConvertible)
          • WithDescription(string?)
          • WithImplicit(bool)
          • WithName(string)
          • WithRange(Yarn.Compiler.Range)
          • WithSourceFileName(string)
          • WithSourceNodeName(string)
          • WithType(IType)
          • Declaration
        • Diagnostic
          • Diagnostic(string,IToken,string,DiagnosticSeverity)
          • Diagnostic(string,ParserRuleContext?,string,DiagnosticSeverity)
          • Diagnostic(string,string,DiagnosticSeverity)
          • Diagnostic(string,DiagnosticSeverity)
          • Diagnostic(string,Range,string,DiagnosticSeverity)
          • Equals(object)
          • GetHashCode()
          • ToString()
          • Column
          • Context
          • FileName
          • Line
          • Message
          • Range
          • Severity
          • DiagnosticSeverity
            • Error
            • Info
            • Warning
        • EnumTypeBuilder
          • FromEnum<TEnum>(string?)
        • FileParseResult
          • FileParseResult(string,IParseTree,CommonTokenStream)
          • Equals(object)
          • GetHashCode()
          • Name
          • Tokens
          • Tree
        • FunctionTypeBuilder
          • FromFunctionType(System.Type)
          • WithParameter(IType)
          • WithReturnType(IType)
          • WithVariadicParameterType(IType?)
          • FunctionType
        • IndentAwareLexer
          • IndentAwareLexer(ICharStream,TextWriter,TextWriter)
          • IsInWhenClause()
          • NextToken()
          • SetInWhenClause(bool)
          • Warnings
          • LexerWarning
            • Message
            • Token
        • NodeDebugInfo
          • NodeDebugInfo(string?,string)
          • GetLineInfo(int)
          • FileName
          • IsImplicit
          • NodeName
          • Range
          • LineInfo
            • FileName
            • NodeName
            • Position
        • Position
          • Equals(object)
          • GetHashCode()
          • M:Yarn.Compiler.Position.op_GreaterThanOrEqual(Yarn.Compiler.Position,Yarn.Compiler.Position)
          • M:Yarn.Compiler.Position.op_LessThanOrEqual(Yarn.Compiler.Position,Yarn.Compiler.Position)
          • ToString()
          • Character
          • IsValid
          • Line
        • Project
          • CurrentProjectFileVersion
          • WorkspaceRootPlaceholder
          • YarnSpinnerProjectVersion2
          • YarnSpinnerProjectVersion3
          • Project()
          • Project(string,string?)
          • GetJson()
          • IsMatchingPath(string)
          • IsValidVersionNumber(int)
          • LoadFromFile(string,string?)
          • SaveToFile(string)
          • AllowLanguagePreviewFeatures
          • BaseLanguage
          • CompilerOptions
          • Definitions
          • DefinitionsFiles
          • DefinitionsPath
          • ExcludeFilePatterns
          • ExtensionData
          • FileVersion
          • Localisation
          • Path
          • SourceFilePatterns
          • SourceFiles
          • WorkspaceRootPath
          • LocalizationInfo
            • Assets
            • Strings
        • ProjectDebugInfo
          • GetNodeDebugInfo(string)
          • Nodes
        • Range
          • Range()
          • Range(int,int,int,int)
          • Equals(object)
          • GetHashCode()
          • ToString()
          • End
          • IsValid
          • Start
        • StringInfo
          • fileName
          • isImplicitTag
          • lineNumber
          • metadata
          • nodeName
          • shadowLineID
          • text
          • ToString()
        • Utility
          • AddTagsToLines(string,ICollection<string>?)
          • DetermineNodeConnections(string[])
          • ExtractStringBlocks(IEnumerable<Node>,ProjectDebugInfo)
          • GenerateYarnFileWithDeclarations(IEnumerable<Yarn.Compiler.Declaration>,string,IEnumerable<string>?,IDictionary<string, string>?)
          • GetCompiledCodeAsString(Program,Library?,CompilationResult?)
          • GetYarnValue(IConvertible)
          • ParseSource(string)
          • TagLines(string,ICollection<string>?)
          • TryGetNodeTitle(string?,YarnSpinnerParser.NodeContext,string?,string?,string?,string?)
      • Yarn.Compiler.Upgrader Namespace
        • LanguageUpgrader
          • Upgrade(UpgradeJob)
        • TextReplacement
          • Comment
          • OriginalText
          • ReplacementText
          • Start
          • StartLine
          • OriginalLength
          • ReplacementLength
        • UpgradeJob
          • Files
          • UpgradeType
          • UpgradeJob(UpgradeType,IEnumerable<CompilationJob.File>)
        • UpgradeResult
          • Files
          • Diagnostics
          • OutputFile
            • Diagnostics
            • IsNewFile
            • OriginalSource
            • Path
            • Replacements
            • UpgradedSource
        • UpgradeType
          • Version1to2
      • Yarn.Unity Namespace
        • ActionMarkupHandler
          • OnCharacterWillAppear(int,MarkupParseResult,CancellationToken)
          • OnLineDisplayBegin(MarkupParseResult,TMP_Text)
          • OnLineDisplayComplete()
          • OnLineWillDismiss()
          • OnPrepareForLine(MarkupParseResult,TMP_Text)
        • ActionRegistrationExtension
          • AddCommandHandler(IActionRegistration,string,System.Action)
          • AddCommandHandler(IActionRegistration,string,System.Func<IEnumerator>)
          • AddCommandHandler(IActionRegistration,string,System.Func<Coroutine>)
          • AddCommandHandler(IActionRegistration,string,System.Func<YarnTask>)
          • AddCommandHandler<T1>(IActionRegistration,string,System.Action<T1>)
          • AddCommandHandler<T1>(IActionRegistration,string,System.Func<T1, IEnumerator>)
          • AddCommandHandler<T1>(IActionRegistration,string,System.Func<T1, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1>(IActionRegistration,string,System.Func<T1, Coroutine>)
          • AddCommandHandler<T1>(IActionRegistration,string,System.Func<T1, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, YarnTask>)
          • AddCommandHandler<T1, T2>(IActionRegistration,string,System.Action<T1, T2>)
          • AddCommandHandler<T1, T2>(IActionRegistration,string,System.Func<T1, T2, IEnumerator>)
          • AddCommandHandler<T1, T2>(IActionRegistration,string,System.Func<T1, T2, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2>(IActionRegistration,string,System.Func<T1, T2, Coroutine>)
          • AddCommandHandler<T1, T2>(IActionRegistration,string,System.Func<T1, T2, YarnTask>)
          • AddCommandHandler<T1, T2, T3>(IActionRegistration,string,System.Action<T1, T2, T3>)
          • AddCommandHandler<T1, T2, T3>(IActionRegistration,string,System.Func<T1, T2, T3, IEnumerator>)
          • AddCommandHandler<T1, T2, T3>(IActionRegistration,string,System.Func<T1, T2, T3, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3>(IActionRegistration,string,System.Func<T1, T2, T3, Coroutine>)
          • AddCommandHandler<T1, T2, T3>(IActionRegistration,string,System.Func<T1, T2, T3, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4>(IActionRegistration,string,System.Action<T1, T2, T3, T4>)
          • AddCommandHandler<T1, T2, T3, T4>(IActionRegistration,string,System.Func<T1, T2, T3, T4, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4>(IActionRegistration,string,System.Func<T1, T2, T3, T4, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4>(IActionRegistration,string,System.Func<T1, T2, T3, T4, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4>(IActionRegistration,string,System.Func<T1, T2, T3, T4, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5>)
          • AddCommandHandler<T1, T2, T3, T4, T5>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5, T6>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5, T6, T7>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5, T6, T7, T8>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, YarnTask>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9>(IActionRegistration,string,System.Action<T1, T2, T3, T4, T5, T6, T7, T8, T9>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, IEnumerator>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, System.Threading.Tasks.Task>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Coroutine>)
          • AddCommandHandler<T1, T2, T3, T4, T5, T6, T7, T8, T9>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, YarnTask>)
          • AddFunction<TResult>(IActionRegistration,string,System.Func<TResult>)
          • AddFunction<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>)
          • AddFunction<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>)
          • AddFunction<T1, TResult>(IActionRegistration,string,System.Func<T1, TResult>)
          • AddFunction<T1, T2, TResult>(IActionRegistration,string,System.Func<T1, T2, TResult>)
          • AddFunction<T1, T2, T3, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, TResult>)
          • AddFunction<T1, T2, T3, T4, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, TResult>)
          • AddFunction<T1, T2, T3, T4, T5, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, TResult>)
          • AddFunction<T1, T2, T3, T4, T5, T6, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, TResult>)
          • AddFunction<T1, T2, T3, T4, T5, T6, T7, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, TResult>)
          • AddFunction<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(IActionRegistration,string,System.Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>)
        • Actions
          • Actions(IActionRegistration,Library)
          • AddCommandHandler(string,Delegate)
          • AddCommandHandler(string,Func<object>)
          • AddCommandHandler(string,MethodInfo)
          • AddFunction(string,Delegate)
          • AddRegistrationMethod(ActionRegistrationMethod)
          • RegisterActions()
          • RegisterFunctionDeclaration(string,Type,Type[])
          • RemoveCommandHandler(string)
          • RemoveFunction(string)
          • SetupForProject(YarnProject)
          • ActionRegistrar
          • Commands
          • Library
        • BuiltinLocalisedLineProvider
          • DeregisterMarkerProcessor(string)
          • GetLocalizedLineAsync(Line,CancellationToken)
          • PrepareForLinesAsync(IEnumerable<string>,CancellationToken)
          • RegisterMarkerProcessor(string,Markup.IAttributeMarkerProcessor)
          • AssetLocaleCode
          • LocaleCode
        • Culture
          • DisplayName
          • IsNeutralCulture
          • Name
          • NativeName
          • Culture(System.Globalization.CultureInfo)
        • Cultures
          • GetCulture(string)
          • GetCultures()
          • HasCulture(string)
          • TryGetCulture(string,Culture)
          • CurrentNeutralCulture
        • DialogueOption
          • DialogueOptionID
          • IsAvailable
          • Line
          • TextID
        • DialoguePresenterBase
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
        • DialogueReference
          • nodeName
          • project
          • DialogueReference()
          • DialogueReference(YarnProject,string)
          • IsValid
        • DialogueRunner
          • autoStart
          • onDialogueComplete
          • onDialogueStart
          • onNodeComplete
          • onNodeStart
          • onUnhandledCommand
          • runSelectedOptionAsLine
          • startNode
          • AddCommandHandler(string,Delegate)
          • AddCommandHandler(string,MethodInfo)
          • AddFunction(string,Delegate)
          • GetPauseDurationsInsideLine(Markup.MarkupParseResult)
          • LoadStateFromPersistentStorage(string)
          • RegisterFunctionDeclaration(string,Type,Type[])
          • RemoveCommandHandler(string)
          • RemoveFunction(string)
          • RequestHurryUpLine()
          • RequestNextLine()
          • SaveStateToPersistentStorage(string)
          • SetProject(YarnProject)
          • SplitCommandText(string)
          • StartDialogue(string)
          • Stop()
          • Dialogue
          • DialoguePresenters
          • DialogueTask
          • DialogueViews
          • IsDialogueRunning
          • IsInPlaymode
          • LineProvider
          • NoOptionSelected
          • VariableStorage
          • YarnProject
        • Effects
          • FadeAlpha(CanvasGroup,float,float,float,CancellationToken)
          • FadeAlpha(CanvasGroup,float,float,float,CoroutineInterruptToken?)
          • FadeAlphaAsync(CanvasGroup,float,float,float,CancellationToken)
          • PausableTypewriter(TextMeshProUGUI,float,Action?,Action?,Action?,Stack<(int position, float duration)>?,CoroutineInterruptToken?)
          • Typewriter(TextMeshProUGUI,float,Action,CoroutineInterruptToken?)
          • CoroutineInterruptToken
            • Complete()
            • Interrupt()
            • Start()
            • CanInterrupt
            • WasInterrupted
        • GeneratedVariableStorageExtensions
          • GetEnumValueOrDefault<T>(IGeneratedVariableStorage,string)
          • GetValueOrDefault<T>(IGeneratedVariableStorage,string)
          • SetValue<T>(IGeneratedVariableStorage,string,T)
        • IActionMarkupHandler
          • OnCharacterWillAppear(int,MarkupParseResult,CancellationToken)
          • OnLineDisplayBegin(MarkupParseResult,TMP_Text)
          • OnLineDisplayComplete()
          • OnLineWillDismiss()
          • OnPrepareForLine(MarkupParseResult,TMP_Text)
        • IActionRegistration
          • AddCommandHandler(string,Delegate)
          • AddCommandHandler(string,MethodInfo)
          • AddFunction(string,Delegate)
          • RegisterFunctionDeclaration(string,Type,Type[])
          • RemoveCommandHandler(string)
          • RemoveFunction(string)
        • IAssetProvider
          • GetAssetsOfType<T>()
          • TryGetAsset<T>(T?)
        • ICommand
          • Name
        • IGeneratedVariableStorage
        • ILineProvider
          • DeregisterMarkerProcessor(string)
          • GetLocalizedLineAsync(Line,CancellationToken)
          • PrepareForLinesAsync(IEnumerable<string>,CancellationToken)
          • RegisterMarkerProcessor(string,Yarn.Markup.IAttributeMarkerProcessor)
          • LocaleCode
          • YarnProject
        • InMemoryVariableStorage
          • showDebug
          • Clear()
          • Contains(string)
          • GetAllVariables()
          • GetDebugList()
          • SetAllVariables(Dictionary<string, float>,Dictionary<string, string>,Dictionary<string, bool>,bool)
          • SetValue(string,bool)
          • SetValue(string,float)
          • SetValue(string,string)
          • TryGetValue<T>(string,T)
        • IYarnTask
          • Forget()
          • IsCompleted()
          • IsCompletedSuccessfully()
        • LineAdvancer
          • advanceRequestsBeforeCancellingLine
          • multiAdvanceIsCancel
          • OnCharacterWillAppear(int,MarkupParseResult,CancellationToken)
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • OnLineDisplayBegin(MarkupParseResult,TMP_Text)
          • OnLineDisplayComplete()
          • OnLineWillDismiss()
          • OnPrepareForLine(MarkupParseResult,TMP_Text)
          • RequestDialogueCancellation()
          • RequestLineHurryUp()
          • RequestNextLine()
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
          • InputMode
            • InputActions
            • KeyCodes
            • LegacyInputAxes
            • None
        • LineCancellationToken
          • HurryUpToken
          • NextLineToken
          • IsHurryUpRequested
          • IsNextLineRequested
        • LineMetadata
          • LineMetadata()
          • AddMetadata(string,IEnumerable<string>)
          • GetLineIDs()
          • GetMetadata(string)
          • GetShadowLineSource(string)
        • LinePresenter
          • autoAdvance
          • autoAdvanceDelay
          • canvasGroup
          • characterNameContainer
          • characterNameText
          • fadeDownDuration
          • fadeUpDuration
          • lineText
          • showCharacterNameInLineView
          • temporalProcessors
          • typewriterEffectSpeed
          • useFadeEffect
          • useTypewriterEffect
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
        • LinePresenterButtonHandler
          • OnCharacterWillAppear(int,MarkupParseResult,CancellationToken)
          • OnLineDisplayBegin(MarkupParseResult,TMP_Text)
          • OnLineDisplayComplete()
          • OnLineWillDismiss()
          • OnPrepareForLine(MarkupParseResult,TMP_Text)
        • LineProviderBehaviour
          • DeregisterMarkerProcessor(string)
          • GetLocalizedLineAsync(Line,CancellationToken)
          • PrepareForLinesAsync(IEnumerable<string>,CancellationToken)
          • RegisterMarkerProcessor(string,IAttributeMarkerProcessor)
          • Start()
          • LocaleCode
          • YarnProject
        • Localization
          • AddLocalizedString(string,string)
          • AddLocalizedStrings(IEnumerable<KeyValuePair<string, string>>)
          • AddLocalizedStrings(IEnumerable<StringTableEntry>)
          • Clear()
          • ContainsLocalizedObject<T>(string)
          • ContainsLocalizedString(string)
          • GetLineIDs()
          • GetLocalizedObjectAsync<T>(string)
          • GetLocalizedString(string)
          • UsesAddressableAssets
          • LocalizationTableEntry
            • localizedAsset
            • localizedAssetReference
            • localizedString
        • LocalizationType
          • Unity
          • YarnInternal
        • LocalizedLine
          • Asset
          • InvalidLine
          • Metadata
          • RawText
          • Substitutions
          • TextID
          • CharacterName
          • Text
          • TextWithoutCharacterName
        • MarkupPalette
          • BasicMarkers
          • CustomMarkers
          • ColorForMarker(string,Color)
          • PaletteForMarker(string,CustomMarker)
          • BasicMarker
            • Boldened
            • Color
            • CustomColor
            • Italicised
            • Marker
            • Strikedthrough
            • Underlined
          • CustomMarker
            • End
            • Marker
            • MarkerOffset
            • Start
        • OptionItem
          • completionToken
          • OnOptionSelected
          • InvokeOptionSelected()
          • OnDeselect(BaseEventData)
          • OnPointerClick(PointerEventData)
          • OnPointerEnter(PointerEventData)
          • OnSelect(BaseEventData)
          • OnSubmit(BaseEventData)
          • IsHighlighted
          • Option
        • OptionsPresenter
          • fadeDownDuration
          • fadeUpDuration
          • showUnavailableOptions
          • useFadeEffect
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
        • PauseEventProcessor
          • OnCharacterWillAppear(int,MarkupParseResult,CancellationToken)
          • OnLineDisplayBegin(MarkupParseResult,TMP_Text)
          • OnLineDisplayComplete()
          • OnLineWillDismiss()
          • OnPrepareForLine(MarkupParseResult,TMP_Text)
        • RegistrationType
          • Compilation
          • Runtime
        • ReplacementMarkupHandler
          • NoDiagnostics
          • ProcessReplacementMarker(MarkupAttribute,StringBuilder,List<MarkupAttribute>,string)
        • SerializableDictionary
          • Storage<T>
            • data
        • SerializableDictionary<TKey, TValue>
          • SerializableDictionary()
          • SerializableDictionary(IDictionary<TKey, TValue>)
        • SerializableDictionary<TKey, TValue, TValueStorage>
          • SerializableDictionary()
          • SerializableDictionary(IDictionary<TKey, TValue>)
        • SerializableDictionaryBase
          • Storage
        • SerializableDictionaryBase<TKey, TValue, TValueStorage>
          • SerializableDictionaryBase()
          • SerializableDictionaryBase(IDictionary<TKey, TValue>)
          • Add(TKey,TValue)
          • Add(KeyValuePair<TKey, TValue>)
          • Add(object,object)
          • Clear()
          • Contains(KeyValuePair<TKey, TValue>)
          • Contains(object)
          • ContainsKey(TKey)
          • CopyFrom(IDictionary<TKey, TValue>)
          • CopyTo(Array,int)
          • CopyTo(KeyValuePair<TKey, TValue>[],int)
          • GetEnumerator()
          • GetObjectData(SerializationInfo,StreamingContext)
          • OnAfterDeserialize()
          • OnBeforeSerialize()
          • OnDeserialization(object)
          • Remove(TKey)
          • Remove(KeyValuePair<TKey, TValue>)
          • Remove(object)
          • TryGetValue(TKey,TValue)
          • Count
          • IsFixedSize
          • IsReadOnly
          • IsSynchronized
          • this[TKey key]
          • this[object key]
          • Keys
          • SyncRoot
          • Values
        • StringTableEntry
          • Comment
          • File
          • ID
          • Language
          • LineNumber
          • Lock
          • Node
          • Text
          • StringTableEntry(StringTableEntry)
          • CreateCSV(IEnumerable<StringTableEntry>)
          • Equals(object)
          • GetHashCode()
          • ParseFromCSV(string)
          • ToString()
        • StyleMarkerProcessor
          • lineProvider
          • ProcessReplacementMarker(MarkupAttribute,StringBuilder,List<MarkupAttribute>,string)
        • UnityEventString
        • VariableStorageBehaviour
          • AddChangeListener<T>(string,Action<T>)
          • Clear()
          • Contains(string)
          • GetAllVariables()
          • GetVariableKind(string)
          • SetAllVariables(FloatDictionary,StringDictionary,BoolDictionary,bool)
          • SetValue(string,bool)
          • SetValue(string,float)
          • SetValue(string,string)
          • TryGetValue<T>(string,T?)
          • Program
          • SmartVariableEvaluator
        • VoiceOverPresenter
          • audioSource
          • dialogueRunner
          • endLineWhenVoiceoverComplete
          • fadeOutTimeOnLineFinish
          • waitTimeAfterLineComplete
          • waitTimeBeforeLineStart
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
        • YarnActionAttribute
          • Name
        • YarnCommandAttribute
        • YarnFunctionAttribute
        • YarnProject
          • baseLocalization
          • compiledYarnProgram
          • lineMetadata
          • localizations
          • localizationType
          • GetHeaders(string)
          • GetLineIDsForNodes(IEnumerable<string>)
          • GetLocalization(string)
          • InitialValues
          • NodeNames
          • Program
          • ShadowTableDictionary
          • ShadowTableEntry
            • shadowMetadata
            • sourceLineID
        • YarnTask
          • Delay(int,CancellationToken)
          • Delay(TimeSpan,CancellationToken)
          • Forget()
          • FromResult<T>(T)
          • GetAwaiter()
          • IsCompleted()
          • IsCompletedSuccessfully()
          • SuppressCancellationThrow()
          • ToCoroutine(Func<YarnTask>)
          • WaitForAsyncOperation(AsyncOperationHandle,CancellationToken)
          • WaitForAsyncOperation<T>(AsyncOperationHandle<T>,CancellationToken)
          • WaitUntil(System.Func<bool>,System.Threading.CancellationToken)
          • WaitUntilCanceled(System.Threading.CancellationToken)
          • WhenAll(IEnumerable<YarnTask>)
          • WhenAll(YarnTask[])
          • WhenAll<T>(IEnumerable<YarnTask<T>>)
          • WhenAll<T>(YarnTask<T>[])
          • Yield()
          • CompletedTask
        • YarnTask<T>
          • Forget()
          • FromResult(T)
          • GetAwaiter()
          • IsCompleted()
          • IsCompletedSuccessfully()
        • YarnTaskCompletionSource
          • TrySetCanceled()
          • TrySetException(System.Exception)
          • TrySetResult()
          • Task
        • YarnTaskCompletionSource<T>
          • TrySetCanceled()
          • TrySetException(System.Exception)
          • TrySetResult(T)
          • Task
        • YarnTaskExtensions
          • WaitForCoroutine(MonoBehaviour,IEnumerator)
          • WaitForCoroutine(MonoBehaviour,Coroutine)
      • Yarn.Unity.Legacy Namespace
        • DialogueAdvanceInput
          • continueAction
          • continueActionButtonName
          • continueActionKeyCode
          • continueActionOnButtonRelease
          • continueActionReference
          • continueActionType
          • dialogueView
          • enableActionOnStart
          • Action
          • ContinueActionType
            • InputSystemAction
            • InputSystemActionFromAsset
            • KeyCode
            • None
            • VirtualButton
          • ContinueButtonActionType
            • Down
            • Up
        • DialogueViewBase
          • requestInterrupt
          • DialogueComplete()
          • DialogueStarted()
          • DismissLine(Action)
          • InterruptLine(LocalizedLine,Action)
          • OnDialogueCompleteAsync()
          • OnDialogueStartedAsync()
          • RunLine(LocalizedLine,Action)
          • RunLineAsync(LocalizedLine,LineCancellationToken)
          • RunOptions(DialogueOption[],Action<int>)
          • RunOptionsAsync(DialogueOption[],CancellationToken)
          • UserRequestedViewAdvancement()
        • LineView
          • autoAdvance
          • canvasGroup
          • characterNameContainer
          • characterNameText
          • continueButton
          • fadeInTime
          • fadeOutTime
          • holdTime
          • lineText
          • onCharacterTyped
          • onPauseEnded
          • onPauseStarted
          • palette
          • showCharacterNameInLineView
          • typewriterEffectSpeed
          • useFadeEffect
          • useTypewriterEffect
          • AddLineBreaks(Markup.MarkupParseResult)
          • DialogueComplete()
          • DismissLine(Action)
          • InterruptLine(LocalizedLine,Action)
          • OnContinueClicked()
          • PaletteMarkedUpText(Markup.MarkupParseResult,MarkupPalette,bool)
          • RunLine(LocalizedLine,Action)
          • UserRequestedViewAdvancement()
        • OptionsListView
          • DialogueComplete()
          • OnEnable()
          • Reset()
          • RunLine(LocalizedLine,Action)
          • RunOptions(DialogueOption[],Action<int>)
          • Start()
        • OptionView
          • OnOptionSelected
          • palette
          • InvokeOptionSelected()
          • OnPointerClick(PointerEventData)
          • OnPointerEnter(PointerEventData)
          • OnSubmit(BaseEventData)
          • Option
      • Yarn.Unity.Samples Namespace
        • SampleRenderDetector
      • Yarn.Unity.UnityLocalization Namespace
        • LineMetadata
          • nodeName
          • tags
          • ShadowLineSource
        • UnityLocalisedLineProvider
          • DeregisterMarkerProcessor(string)
          • GetLocalizedLineAsync(Line,CancellationToken)
          • PrepareForLinesAsync(IEnumerable<string>,CancellationToken)
          • RegisterMarkerProcessor(string,IAttributeMarkerProcessor)
          • LocaleCode
    • Rust
      • bevy_yarnspinner
      • bevy_yarnspinner_example_dialogue_view
      • yarnspinner
Powered by GitBook
LogoLogo

Community

  • Discord
  • Bluesky
  • Mastodon

Support Our Work

  • Itch
  • Unity Asset Store
  • Patreon

Yarn Spinner® and Secret Lab® are trade marks of Secret Lab Pty. Ltd., and are used by Yarn Spinner Pty. Ltd. under license.

On this page
  • Summary
  • Remarks

Was this helpful?

Edit on GitHub
Export as PDF
  1. API
  2. C#
  3. Yarn.Unity Namespace

YarnCommandAttribute

PreviousNameNextYarnFunctionAttribute

Last updated 13 days ago

Was this helpful?

Class in

Inherits from

Summary

An attribute that marks a method on an object as a command.

public class YarnCommandAttribute : YarnActionAttribute

Remarks

When a receives a , and no command handler has been installed for the command, it splits it by spaces, and then checks to see if the second word, if any, is the name of an object.

By default, it checks for any UnityEngine.GameObjects in the scene. If one is found, it is checked to see if any of the UnityEngine.MonoBehaviours attached to the class has a whose matches the first word of the command.

If the method is static, it will not try to use an object.

If a method is found, its parameters are checked:

  • If the method takes a single string[] parameter, the method is called, and will be passed an array containing all words in the command after the first two.

  • If the method takes a number of parameters equal to the number of words in the command after the first two, it will be called with those words as parameters.

  • If a parameter is a UnityEngine.GameObject, we look up the object using UnityEngine.GameObject.Find(System.String). As per the API, the game object must be active.

  • If a parameter is assignable to UnityEngine.Component, we will locate the component based on the name of the object. As per the API of UnityEngine.GameObject.Find(System.String), the game object must be active.

  • If a parameter is a bool, the string must be true or false (as defined by the standard converter for string to bool). However, we also allow for the string to equal the parameter name, case insensitive. This allows us to write commands with more self-documenting parameters, eg for a certainMove(bool wait), you could write <<move wait>> instead of <<move true>>.

  • For any other type, we will attempt to convert using System.Convert.ChangeType(System.Object,System.Type,System.IFormatProvider) using theSystem.Globalization.CultureInfo.InvariantCulture culture. This means that you can implement System.IConvertible to add new accepted types. (Do be aware that it's a non-CLS compliant interface, according to its docs. Mono for Unity seems to implement it, but you may have trouble if you use any other CLS implementation.)

  • Otherwise, it will not be called, and a warning will be issued.

This attribute may be attached to a coroutine or to an async method.

If the method is a coroutine, returns a UnityEngine.Coroutine, or returns a task, the DialogueRunner will pause execution until the the coroutine or task ends.

The determines if the method is a coroutine if the method returns System.Collections.IEnumerator, or if the method returns a UnityEngine.Coroutine or a task.

Yarn.Unity
YarnActionAttribute
DialogueRunner
Command
YarnCommandAttribute
Name
DialogueRunner