private void MakeCreateRecordMenu(RecordNumberType recordNumberType) { var genericMenu = new GenericMenu(); foreach (var recordType in recordTypeDelay.Value) { var recordAttribute = recordType.GetSingleAttribute <RecordAttribute>(); if (!SelectRecordType(recordAttribute)) { continue; } genericMenu.AddItem(new GUIContent(recordType.Name), false, CreateRecord, recordType); } genericMenu.ShowAsContext(); bool SelectRecordType(RecordAttribute recordAttribute) { var result = recordAttribute.RecordNumberType == recordNumberType; return(result); } void CreateRecord(object data) { var type = (Type)data; UnityRecordLoader.Instance.LoadRecord(type, recordName); AssetDatabase.Refresh(); } }
public RecordAttribute(RecordNumberType recordNumberType, RecordScopeType recordScopeType) { RecordNumberType = recordNumberType; RecordScopeType = recordScopeType; }