protected override void OnSingleInitialization() { ignored = DelegateSettings.IgnoredMethods; // initialize adding area and foldout keys adding = new AddingData(); kAdvanced = id + "advanced"; kAdd = id + "add"; kInvoke = id + "invoke"; headerString = string.Format("{0} ({1})", niceName, memberTypeName); // make sure delegate is not null if (memberValue == null) { memberValue = memberType.Instance <BaseDelegate>(); } // initialize arguments data (used when invoking the delegate from the editor) int len = memberValue.ParamTypes.Length; argValues = new object[len]; argMembers = new EditorMember[len]; for (int iLoop = 0; iLoop < len; iLoop++) { int i = iLoop; var paramType = memberValue.ParamTypes[i]; argValues[i] = paramType.GetDefaultValueEmptyIfString(); var argMember = new ArgMember( @getter: () => argValues[i], @setter: x => argValues[i] = x, @target: argValues, @unityTarget: unityTarget, @name: string.Format("({0})", paramType.GetNiceName()), @id: id + i, @dataType: paramType, @attributes: null ); argMember.Target = rawTarget; argMembers[i] = argMember; } #if DBG Log("Delegate drawer init. " + niceName); #endif }
protected override void OnSingleInitialization() { adding = new AddingData(); kAdvanced = RuntimeHelper.CombineHashCodes(id, "advanced"); kAdd = RuntimeHelper.CombineHashCodes(id, "add"); kInvoke = RuntimeHelper.CombineHashCodes(id, "invoke"); kHeaderStr = string.Format("{0} ({1})", niceName, memberTypeName); if (memberValue == null) { memberValue = memberType.Instance <IBaseDelegate>(); } int len = memberValue.ParamTypes.Length; argValues = new object[len]; argMembers = new EditorMember[len]; for (int iLoop = 0; iLoop < len; iLoop++) { int i = iLoop; var paramType = memberValue.ParamTypes[i]; argValues[i] = paramType.GetDefaultValueEmptyIfString(); var argMember = EditorMember.WrapGetSet( @get: () => argValues[i], @set: x => argValues[i] = x, @rawTarget: argValues, @unityTarget: unityTarget, @name: string.Format("({0})", paramType.GetNiceName()), @attributes: null, @id: RuntimeHelper.CombineHashCodes(id, i), @dataType: paramType ); argMember.RawTarget = rawTarget; argMembers[i] = argMember; } #if DBG Log("Delegate drawer init. " + niceName); #endif }
protected override void OnSingleInitialization() { adding = new AddingData(); kAdvanced = RuntimeHelper.CombineHashCodes(id, "advanced"); kAdd = RuntimeHelper.CombineHashCodes(id, "add"); kHeaderStr = string.Format("{0} ({1})", niceName, memberTypeName); if (memberValue == null) { memberValue = new uDelegate(); } if (argValuesList == null) { argValuesList = new List <object[]>(); } argMembersList = new List <EditorMember[]>(); #if DBG Log("Delegate drawer init. " + niceName); #endif }