public static InteractionObjectData CreateData()
    {
        InteractionObjectData asset = ScriptableObject.CreateInstance <InteractionObjectData>();

        AssetDatabase.CreateAsset(asset, "Assets/SpaceDetective/ContactSystemObjects/ObjectReferences/InteractionObjectData.asset");
        AssetDatabase.SaveAssets();
        return(asset);
    }
Esempio n. 2
0
    void AddItem()
    {
        InteractionObjectData newData = CreateInteractionObjectList.CreateData();

        if (newData)
        {
            string relPath = AssetDatabase.GetAssetPath(newData);
            EditorPrefs.SetString("ObjectPath", relPath);
            interactionObjectList.objectList.Add(newData);
            viewIndex = interactionObjectList.objectList.Count;
        }
    }
        public override void OnInspectorGUI()
        {
            InteractionObjectData myTarget = (InteractionObjectData)target;

            myTarget.myObject = (InteractionObject)CustomGUILayout.ObjectField <InteractionObject>("Object:", myTarget.myObject, true);

            if (myTarget.myObject == null)
            {
                GUILayout.Label("Please choose an Interaction Object to continue.");
                return;
            }
            else
            {
                myTarget.myObject.interactionConstantID = ObjectFieldToID(myTarget.myObject.interactionObject, myTarget.myObject.interactionConstantID);
                myTarget.myObject.interactionObject     = ObjectIDToField(myTarget.myObject.interactionObject, myTarget.myObject.interactionConstantID);
                EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
                GUILayout.BeginVertical("Box");
                GUILayout.Label(myTarget.myObject.objectName, EditorStyles.boldLabel);
                EditorGUILayout.ObjectField("Parent Object:", myTarget.myObject.objectParent, typeof(Transform), true);
                EditorGUILayout.ObjectField("Right Hold Position:", myTarget.myObject.rHandPosition, typeof(Transform), true);
                EditorGUILayout.ObjectField("Left Hold Position:", myTarget.myObject.lHandPosition, typeof(Transform), true);
                EditorGUILayout.ObjectField("Drop Position:", myTarget.myObject.dropPosition, typeof(Transform), true);
                EditorGUILayout.ObjectField("Right Target:", myTarget.myObject.rHandTarget, typeof(Transform), true);
                EditorGUILayout.ObjectField("Left Target:", myTarget.myObject.lHandTarget, typeof(Transform), true);
                EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
                GUILayout.Label("Sound FX", EditorStyles.boldLabel);
                EditorGUILayout.ObjectField("Pick Up Sound:", myTarget.myObject.pickUpSound, typeof(AudioClip), true);
                EditorGUILayout.ObjectField("Drop Sound:", myTarget.myObject.dropSound, typeof(AudioClip), true);
                EditorGUILayout.ObjectField("Interaction Sound:", myTarget.myObject.interactSound, typeof(AudioClip), true);
                EditorGUILayout.ObjectField("Inventory Sound:", myTarget.myObject.inventorySound, typeof(AudioClip), true);

                GUILayout.Label("Inventory Properties", EditorStyles.boldLabel);
                if (myTarget.myObject.isInventoryItem)
                {
                    GUILayout.Label("This is an inventory item.", EditorStyles.miniBoldLabel);
                    GUILayout.Label("Inventory Item: " + AC.KickStarter.inventoryManager.items[myTarget.myObject.invID].label, EditorStyles.miniBoldLabel);
                    EditorGUILayout.ObjectField("Prefab Reference:", AC.KickStarter.inventoryManager.items[myTarget.myObject.invID].linkedPrefab, typeof(GameObject), true);
                }
                else
                {
                    GUILayout.Label("This is not an inventory item.", EditorStyles.miniBoldLabel);
                }


                GUILayout.EndVertical();
            }
        }
Esempio n. 4
0
    /*void OnEnable()
     * {
     *  if (EditorPrefs.HasKey("ObjectPath"))
     *  {
     *      string objectPath = EditorPrefs.GetString("ObjectPath");
     *      interactionObjectList = AssetDatabase.LoadAssetAtPath(objectPath, typeof(InteractionObjectList)) as InteractionObjectList;
     *  }
     *
     * }*/

    void OnGUI()
    {
        GUILayout.BeginVertical();
        GUILayout.Label("Inventory Object Editor", EditorStyles.largeLabel);

        interactionObjectList = EditorGUILayout.ObjectField("Object List:", interactionObjectList, typeof(InteractionObjectList), true) as InteractionObjectList;
        GUILayout.EndVertical();

        GUILayout.BeginHorizontal();

        if (interactionObjectList)
        {
            if (GUILayout.Button("Show Object List"))
            {
                EditorUtility.FocusProjectWindow();
                Selection.activeObject = interactionObjectList;
            }
        }
        if (GUILayout.Button("Open Object List"))
        {
            OpenItemList();
        }

        GUILayout.EndHorizontal();


        if (interactionObjectList == null)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Space(10);
            if (GUILayout.Button("Create New Object List", GUILayout.ExpandWidth(false)))
            {
                CreateNewItemList();
            }
            if (GUILayout.Button("Open Existing Object List", GUILayout.ExpandWidth(false)))
            {
                OpenItemList();
            }
            GUILayout.EndHorizontal();
        }

        GUILayout.Space(20);

        if (interactionObjectList)
        {
            GUILayout.BeginHorizontal();

            GUILayout.Space(10);

            if (GUILayout.Button("Prev", GUILayout.ExpandWidth(false)))
            {
                if (viewIndex > 1)
                {
                    viewIndex--;
                }
            }
            GUILayout.Space(5);
            if (GUILayout.Button("Next", GUILayout.ExpandWidth(false)))
            {
                if (viewIndex < interactionObjectList.objectList.Count)
                {
                    viewIndex++;
                }
            }

            GUILayout.Space(60);

            if (GUILayout.Button("Add Object", GUILayout.ExpandWidth(false)))
            {
                AddItem();
            }
            if (GUILayout.Button("Delete Object", GUILayout.ExpandWidth(false)))
            {
                DeleteItem(viewIndex - 1);
            }

            GUILayout.EndHorizontal();

            if (interactionObjectList.objectList == null)
            {
                return;
            }
            //Debug.Log("wtf");

            if (interactionObjectList.objectList.Count > 0)
            {
                GUILayout.BeginHorizontal();
                viewIndex = Mathf.Clamp(EditorGUILayout.IntField("Current Object:", viewIndex, GUILayout.ExpandWidth(false)), 1, interactionObjectList.objectList.Count);

                EditorGUILayout.LabelField("of   " + interactionObjectList.objectList.Count.ToString() + "  items", "", GUILayout.ExpandWidth(false));
                GUILayout.EndHorizontal();

                interactionObjectList.objectList[viewIndex - 1] = EditorGUILayout.ObjectField("Object Data:", interactionObjectList.objectList[viewIndex - 1], typeof(InteractionObjectData), true) as InteractionObjectData;

                InteractionObjectData dataStuff = interactionObjectList.objectList[viewIndex - 1];

                if (dataStuff.myObject)
                {
                    GUILayout.Space(10);
                    EditorGUILayout.Separator();
                    GUILayout.Space(10);

                    EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
                    GUILayout.BeginVertical("Box");
                    GUILayout.Label(dataStuff.myObject.objectName, EditorStyles.boldLabel);
                    EditorGUILayout.ObjectField("Parent Object:", dataStuff.myObject.objectParent, typeof(Transform), true);
                    EditorGUILayout.ObjectField("Right Hold Position:", dataStuff.myObject.rHandPosition, typeof(Transform), true);
                    EditorGUILayout.ObjectField("Left Hold Position:", dataStuff.myObject.lHandPosition, typeof(Transform), true);
                    EditorGUILayout.ObjectField("Drop Position:", dataStuff.myObject.dropPosition, typeof(Transform), true);
                    EditorGUILayout.ObjectField("Right Target:", dataStuff.myObject.rHandTarget, typeof(Transform), true);
                    EditorGUILayout.ObjectField("Left Target:", dataStuff.myObject.lHandTarget, typeof(Transform), true);
                    EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
                    GUILayout.Label("Sound FX", EditorStyles.boldLabel);
                    EditorGUILayout.ObjectField("Pick Up Sound:", dataStuff.myObject.pickUpSound, typeof(AudioClip), true);
                    EditorGUILayout.ObjectField("Drop Sound:", dataStuff.myObject.dropSound, typeof(AudioClip), true);
                    EditorGUILayout.ObjectField("Interaction Sound:", dataStuff.myObject.interactSound, typeof(AudioClip), true);
                    EditorGUILayout.ObjectField("Inventory Sound:", dataStuff.myObject.inventorySound, typeof(AudioClip), true);

                    GUILayout.Label("Inventory Properties", EditorStyles.boldLabel);
                    if (dataStuff.myObject.isInventoryItem)
                    {
                        GUILayout.Label("This is an inventory item.", EditorStyles.miniBoldLabel);
                        GUILayout.Label("Inventory Item: " + AC.KickStarter.inventoryManager.items[dataStuff.myObject.invID].label, EditorStyles.miniBoldLabel);
                        EditorGUILayout.ObjectField("Prefab Reference:", AC.KickStarter.inventoryManager.items[dataStuff.myObject.invID].linkedPrefab, typeof(GameObject), true);
                    }
                    else
                    {
                        GUILayout.Label("This is not an inventory item.", EditorStyles.miniBoldLabel);
                    }

                    GUILayout.EndVertical();
                }
            }
            else
            {
                GUILayout.Label("This Object List is Empty.");
                return;
            }
        }
        if (GUI.changed)
        {
            EditorUtility.SetDirty(interactionObjectList);
        }
    }