blob: 511eb8379dcd8e8f5ecbfba4e2ea5a18750ad4ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
using UnityEngine;
using System.Collections;
using AdvancedInspector;
[AdvancedInspector]
public class AIExample39_DynamicStatic : MonoBehaviour
{
// A Runtime Dynamic attribute can also recieve the path towards a static method declared in any type.
// This offers a way to write generic conditionals.
// The '.' denote a path towards a method. The class owning the method can be nested.
[Inspect("StaticDynamicExample.Inspect")]
public bool myVariable;
public bool displayItem = true;
// In this example, the button toggle on/off the display of "myVariable".
[Inspect]
public void PressMe()
{
displayItem = !displayItem;
}
[Inspect, Help(HelpAttribute.IsNull, HelpType.Error, "Should not be null!")]
public Camera nullField;
}
public class StaticDynamicExample
{
// The delegate should have a single param argument.
// Usually, Advanced Inspector pass the instance and the value as argument.
// Other attribute may pass extra argument, such as Regex or the attribute properties.
private static bool Inspect(InspectAttribute inspect, object instance, object value)
{
AIExample39_DynamicStatic example = instance as AIExample39_DynamicStatic;
if (example == null)
return false;
return example.displayItem;
}
}
|