bool、int、floatの値(および選択したタイプと名前)を保持するクラスがあります。
using UnityEngine;
using System.Collections;
[System.Serializable]
public class AnimXVariable {
public string name = "variable";
public enum VariableType { Bool, Int, Float };
public VariableType type = VariableType.Bool;
public bool boolVal = false;
public int intVal = 0;
public float floatVal = 0f;
public AnimXVariable() {
type = VariableType.Bool;
}
public AnimXVariable(VariableType newType) {
type = newType;
}
public AnimXVariable(string newName, VariableType newType, bool val) {
name = newName;
type = newType;
boolVal = val;
}
public AnimXVariable(string newName, VariableType newType, float val) {
name = newName;
type = newType;
floatVal = val;
}
public AnimXVariable(string newName, VariableType newType, int val) {
name = newName;
type = newType;
intVal = val;
}
public AnimXVariable(bool newValue) {
if(type == VariableType.Bool) boolVal = newValue;
}
public AnimXVariable(float newValue) {
if(type == VariableType.Float) floatVal = newValue;
}
public AnimXVariable(int newValue) {
if(type == VariableType.Int) intVal = newValue;
}
public static implicit operator AnimXVariable(bool val) {
return new AnimXVariable(name, type, val); //The problem is I can't access the non-static members. If I simply return new AnimXVariable(val); it does work, but the name is gone...
}
}
暗黙の演算子を使用して、次の機能を実行しようとしています。
AnimXVariable b = new AnimXVariable("jump", VariableType.Bool, false);
b = true;
問題は、非静的メンバーにアクセスできないことです。単に新しいAnimXVariable(val);を返す場合。それは機能しますが、名前はなくなりました...これを機能させるために暗黙の演算子コード内のオブジェクトに関する情報を取得する方法はありますか?