public GVariableModel(Transform t) { target = t; path = GGlobalFun.GetGameObjectPath(t, Selection.activeTransform); type = GetUIType(); name = GetName(string.Format("{0}_{1}", type, t.name), t); state.SetIndex(type, t); Init(state, this); }
private void GetBindingInfo() { GScriptInfo so; if (GFileOperation.IsExists(GConfigure.InfoPath)) { so = AssetDatabase.LoadAssetAtPath <GScriptInfo>(GConfigure.InfoPath); } else { so = ScriptableObject.CreateInstance <GScriptInfo>(); } if (so == null) { return; } List <GScriptInfo.FieldInfo> fieldInfos = new List <GScriptInfo.FieldInfo>(); foreach (var key in dic.Keys) { var target = dic[key]; if (target.state.isVariable) { GScriptInfo.FieldInfo info = new GScriptInfo.FieldInfo(); info.path = GGlobalFun.GetGameObjectPath(key, GConfigure.selectTransform); info.mainAttrInfo.name = target.state.attributeName; info.mainAttrInfo.type = target.type.ToString(); info.mainAttrInfo.isAttr = target.state.isAttribute; info.mainAttrInfo.isEvent = target.state.isEvent; var subStates = target.state.LstSubState; info.subField = new List <GScriptInfo.FieldAttrInfo>(); for (int i = 0; i < subStates.Count; i++) { GScriptInfo.FieldAttrInfo subInfo = new GScriptInfo.FieldAttrInfo(); subInfo.name = subStates[i].attributeName; subInfo.type = subStates[i].Model.type.ToString(); subInfo.isAttr = subStates[i].isAttribute; subInfo.isEvent = subStates[i].isEvent; info.subField.Add(subInfo); } fieldInfos.Add(info); } } var infos = fieldInfos.ToArray(); so.SetClassInfo(GConfigure.MainFileName, GConfigure.Version, infos); if (GFileOperation.IsExists(GConfigure.InfoPath)) { AssetDatabase.SaveAssets(); } else { if (GFileOperation.IsDirctoryName(GConfigure.InfoPath, true)) { AssetDatabase.CreateAsset(so, GConfigure.InfoPath); } } EditorUtility.SetDirty(so); }