using System.Collections.Generic;
using UnityEngine;
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]
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; } }
[ExposeMember(tooltip = "V / SA , read-only", group = "FoldOutRatios", displayOrderInGroup = 1)]
public float volumeToSurfaceAreaRatio() { return volume / surfaceArea; }
[ExposeMember]
public enumTest enumField;
[ExposeMember]
public enumTest enumProperty
{
get { return enumField; }
set { enumField = value; }
}
protected Material[] matArray;
[ExposeMember]
{
get
{
if (matArray == null)
matArray = new Material[0];
return matArray;
}
set
{
matArray = value;
}
}
public List<Vector3> Vector3List = new List<Vector3>();
public Vector3[] Vector3Array = new Vector3[0];
}
}