You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.3 KiB
40 lines
1.3 KiB
// This code is part of the Fungus library (https://github.com/snozbot/fungus) |
|
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) |
|
|
|
namespace Fungus |
|
{ |
|
/// <summary> |
|
/// A simple struct wrapping a reference to a Fungus Variable. Allows for VariableReferenceDrawer. |
|
/// This is the a way to directly reference a fungus variable in external c# scripts, it will |
|
/// give you an inspector field that gives a drop down of all the variables on the targeted |
|
/// flowchart, in a similar way to what you would expect from selecting a variable on a command. |
|
/// |
|
/// Also recommend implementing IVariableReference on any custom classes that use this so your |
|
/// references can show up in searches for usage. |
|
/// </summary> |
|
[System.Serializable] |
|
public struct VariableReference |
|
{ |
|
public Variable variable; |
|
|
|
public T Get<T>() |
|
{ |
|
T retval = default(T); |
|
|
|
var asType = variable as VariableBase<T>; |
|
|
|
if (asType != null) |
|
return asType.Value; |
|
|
|
return retval; |
|
} |
|
|
|
public void Set<T>(T val) |
|
{ |
|
var asType = variable as VariableBase<T>; |
|
|
|
if (asType != null) |
|
asType.Value = val; |
|
} |
|
} |
|
} |