public virtual IClonable Clone() { InternalBlackboardParameter obj = CreateInstance(GetType()) as InternalBlackboardParameter; obj.Name = Name; obj.Description = Description; obj.MustBeShared = MustBeShared; return(obj); }
public TVariable GetVariable <T, TVariable>(string entryName) where TVariable : DataVariable <T> { if (entryName != null && entryName != "" && ParametersMap.ContainsKey(entryName)) { InternalBlackboardParameter <TVariable> b = ParametersMap[entryName] as InternalBlackboardParameter <TVariable>; return(b != null ? b.Value : null); } return(null); }
public bool SetReference <T, TVariable>(string entryName, ref TVariable var) where TVariable : DataVariable <T> { if (ParametersMap.ContainsKey(entryName)) { InternalBlackboardParameter <TVariable> b = ParametersMap[entryName] as InternalBlackboardParameter <TVariable>; b.Value = var; return(b != null ? b.Value : null); } return(false); }
private void RemoveItem(int index) { InternalBlackboardParameter dataCondition = Target.BlackboardParameters[index]; Target.BlackboardParameters.RemoveAt(index); if (dataCondition) { //dataCondition.hideFlags = HideFlags.None; EditorUtility.SetDirty(dataCondition); string pathToScript = AssetDatabase.GetAssetPath(dataCondition); AssetDatabase.DeleteAsset(pathToScript); DestroyImmediate(dataCondition, true); } }
public void Build(List <InternalBlackboardParameter> bbp) { if (ParametersMap != null) { ParametersMap.Clear(); } else { ParametersMap = new Dictionary <string, InternalBlackboardParameter>(bbp.Count); } for (int i = 0, c = bbp.Count; i < c; ++i) { InternalBlackboardParameter cur = bbp[i].Clone() as InternalBlackboardParameter; cur.Init(); ParametersMap.Add(cur.Name, cur); } }
private void AddItem(object obj) { AssetInfo <ReorderableList> assetInfo = (AssetInfo <ReorderableList>)obj; string assetName = (assetInfo.AssetPath); System.Type assetType = System.Type.GetType(assetName + ", Assembly-CSharp"); InternalBlackboardParameter param = ScriptableObject.CreateInstance(assetType) as InternalBlackboardParameter; string path = PlayerPrefs.GetString("DataFolder", "Assets/XX-DATA/") + "BlackboardsKeys/" + GUID.Generate() + ".asset"; { // Create the directory if needed. (new System.IO.FileInfo(path)).Directory.Create(); } //param.hideFlags = HideFlags.HideInHierarchy;// | HideFlags.NotEditable; AssetDatabase.CreateAsset(param, path); EditorUtility.SetDirty(param); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); if (!param) { Debug.Break(); Debug.LogError(this + ": ScriptableObject.CreateInstance(assetType) as DATA_BlackboardParameter is null!"); } Target.BlackboardParameters.Add(param); int index = assetInfo.ComplementaryData.serializedProperty.arraySize++; assetInfo.ComplementaryData.serializedProperty.GetArrayElementAtIndex(index).objectReferenceValue = param; serializedObject.Update(); serializedObject.ApplyModifiedProperties(); }