AcessorPropertyTester Class Reference

Demonstrates how to use ExposeProperty attributes on various kinds of members, and how to optionally group them in the displayed output. Two members in particular, are custom sample classes, and implement ExpandableObjectPropertyDrawer : weaponTypeScriptableObject, rankSeriList and SomeValues

Detailed Description

using System.Collections.Generic;
using UnityEngine;
using EyE.Unity;
using UnityEngine.Events;
{
[System.Serializable]
public enum enumTest { enumOne, enumTwo, enumThree }
[System.Serializable]
public class SomeValues
{
[ExposeMember]
public string Value1="";
[ExposeMember]
public int value2;
[ExposeMember]
public enumTest enumtestValue;
[ExposeMember]
public List<UnityEvent> eventCallback= new List<UnityEvent>();
[ExposeMember]
public string sum
{ get { return Value1 + value2.ToString(); } }
[ExposeMember(mainLabel ="Warning, there are no events assigned.\n /n Assign value to the list or nothing will happen.",isAPotentialWarningFlag =true)]
bool CallbackListIsEmpty()
{
return (eventCallback.Count == 0);
}
public override string ToString()
{
return Value1.ToString() + " , "+ value2.ToString() + " , " + enumtestValue.ToString();
}
}
public class AcessorPropertyTester : MonoBehaviour
{
const float TwoPi = (2.0f * Mathf.PI);
const float OneOverTwoPi = 1.0f / (2.0f * Mathf.PI);
const float FourPi = (4.0f * Mathf.PI);
const float OneOverFourPi = 1.0f / (4.0f * Mathf.PI);
const float FourThirdsPi = (4.0f * Mathf.PI) / 3.0f;
const float OneOverFourThirdsPi = 3.0f / (4.0f * Mathf.PI);
const float OneThird = 1.0f / 3.0f;
[ExposeMember]
public bool m_show3Dvalues = false;
public bool show3Dvalues() { return m_show3Dvalues; }
[ExposeMember]
public void LogStuff()
{
Debug.Log("Stuff has been logged.");
}
[ExposeMember]
[Multiline]
public string stringTest;
[ExposeMember]
public UnityEvent eventCallback;
public void EventCallbackOption() { }
[ExposeMember]
public List<SomeValues> somevalsList;
// [ExposeMember]//(group = "FoldOutSingleValuesStruct")]
// public SomeValues somVaslsNotInList;
[ExposeMember]
public List<UnityEvent> eventList= new List<UnityEvent>();
[ExposeMember]
public bool useRankSeri;
[ExposeMember(group = "FoldoutuseRank")]
public bool reallyUseRankSeri;
[ExposeMember(group = "FoldoutreallyUseRank")]
public List<Rank> rankSeriList;
[ExposeMember]
public List<GUIContentExtendedExample> extendedContentItemList;
[ExposeMember(displayWarningWhenNull =true, offerCreationFunctionWhenNull = "SetMonoRef")]
public MonoBehaviour monoRef;
public void SetMonoRef()
{
monoRef = this;
}
[ExposeMember(group = "FoldOutWeaponInfo", displayOrderInGroup = 2)]
public Weapon weaponObject;
public WeaponType m_favoriteWeaponType;
[ExposeMember(group = "FoldOutWeaponInfo", displayOrderInGroup = 1)]
public WeaponType favoriteWeaponType
{
get { return m_favoriteWeaponType; }
set { m_favoriteWeaponType = value; }
}
[ExposeMember(group = "FoldOutWeaponInfo", displayOrderInGroup = 3)]
public WeaponType weaponTypeScriptableObject;
[ExposeMember(group = "FoldOutWeaponInfo", displayOrderInGroup = 4)]
public WeaponType ReadOnlyWeaponTypeScriptableObject
{
get { return weaponTypeScriptableObject; }
}
[ExposeMember]
[Range(0, 100)]
public int testInterger;
[ExposeMember]
bool displayWarningBool = false;
[ExposeMember(mainLabel = "This is a warning about something, watch out!", isAPotentialWarningFlag =true)]
bool displayW() { return displayWarningBool; }
[ExposeMember(tooltip = "direct access to radius")]
public float m_radius = 1.0f;
[ExposeMember(tooltip = "You can change the radius directly, or you can change any of these other functions of radius, to set radius indirectly.")]
[ExposeRangeAttribAttribute(0,10)]
public float radius
{
get { return m_radius; }
set
{
if (value > 0)
{
m_radius = value;
transform.localScale = Vector3.one * m_radius;
}
}
}
[ExposeMember(tooltip = "V = 4/3 pi R^3", group = "m_show3Dvalues", displayOrderInGroup = 2)]
public float volume { get { return FourThirdsPi * Mathf.Pow(radius, 3.0f); } set { radius = Mathf.Pow(value * OneOverFourThirdsPi, OneThird); } }
[ExposeMember(tooltip = "SA = 4 pi R^2", alternatelabel = "a 2D SurfaceArea", alternateLabelConditionalName = "m_show3Dvalues", group = "m_show3Dvalues", displayOrderInGroup = 0)]
public float surfaceArea { get { return FourPi * Mathf.Pow(radius, 2.0f); } set { radius = Mathf.Pow(value * OneOverFourPi, 0.5f); } }
[ExposeMember(tooltip = "C = 2 pi R", alternatelabel = "a 1D SurfaceArea", alternateLabelConditionalName = "m_show3Dvalues")]
public float circumfrence { get { return TwoPi * radius; } set { radius = value * OneOverTwoPi; } }// Mathf.Pow(value * OneOverTwoPi, 1); } }
[ExposeMember(tooltip = "V / SA , read-only", group = "FoldOutRatios", displayOrderInGroup = 1)]
public float volumeToSurfaceAreaRatio() { return volume / surfaceArea; }
// public float volumeToSurfaceAreaRatio { get { return volume / surfaceArea; } }
[ExposeMember]
public enumTest enumField;
[ExposeMember]
public enumTest enumProperty
{
get { return enumField; }
set { enumField = value; }
}
protected Material[] matArray;
[ExposeMember]
public Material[] MaterialArray
{
get
{
if (matArray == null)
matArray = new Material[0];
return matArray;
}
set
{
matArray = value;
}
}
// [ExposeMember]
public List<Vector3> Vector3List = new List<Vector3>();
// [ExposeMember]
public Vector3[] Vector3Array = new Vector3[0];
}
}

Public Member Functions

void EventCallbackOption ()
 
void LogStuff ()
 
void SetMonoRef ()
 
bool show3Dvalues ()
 
float volumeToSurfaceAreaRatio ()
 

Public Attributes

enumTest enumField
 
UnityEvent eventCallback
 
List< UnityEvent > eventList
 
List< GUIContentExtendedExample > extendedContentItemList
 
WeaponType m_favoriteWeaponType
 
float m_radius
 
bool m_show3Dvalues
 
MonoBehaviour monoRef
 
List< RankrankSeriList
 
bool reallyUseRankSeri
 
List< SomeValues > somevalsList
 
string stringTest
 
int testInterger
 
bool useRankSeri
 
Vector3[] Vector3Array
 
List< Vector3Vector3List
 
Weapon weaponObject
 
WeaponType weaponTypeScriptableObject
 

Protected Attributes

Material[] matArray
 

Properties

float circumfrence [get, set]
 
enumTest enumProperty [get, set]
 
WeaponType favoriteWeaponType [get, set]
 
Material[] MaterialArray [get, set]
 Public read-only access to the finalMeshReference variable. Not used internally.
 
float radius [get, set]
 
WeaponType ReadOnlyWeaponTypeScriptableObject [get]
 
float surfaceArea [get, set]
 
float volume [get, set]
 
+ Inheritance diagram for AcessorPropertyTester:
+ Collaboration diagram for AcessorPropertyTester:
EyE.Unity.Examples.AcessorPropertyTester.MaterialArray
Material[] MaterialArray
Public read-only access to the finalMeshReference variable. Not used internally.
Definition: AcessorPropertyTester.cs:168
EyE
This namespace contains classes that provide various tools for use in the Unity Editor.
Definition: EmbededXMLTooltip.cs:5
EyE.Unity.Examples
Definition: CatDebugExample.cs:7
EyE.Unity
This namespace holds classes that extended or inherit from various Unity defined classes....
Definition: EmbededXMLTooltip.cs:5