Exemplo n.º 1
0
    private void saveClickListener()
    {
        saveCurrentSelection();
        SpawnSO so = ScriptableObject.CreateInstance <SpawnSO>();

        so.spawnTris = new string[_spawns.Count];
        for (int i = 0; i < _spawns.Count; i++)
        {
            so.spawnTris[i] = string.Join(",", _spawns[i]);
        }
        string assetFolderPath = "Resources/Spawns";

        EditorUtil.PrepareFolder(assetFolderPath);
        AssetDatabase.CreateAsset(so, "Assets/" + assetFolderPath + "/" + _spawnSetNameTf.value + ".asset");
    }
Exemplo n.º 2
0
    public override VisualElement CreateInspectorGUI()
    {
        _currentEditSpawnZone = -1;

        VisualElement customInspector = new VisualElement();

        _targetSurfaceBind = new ObjectField("Target Surface");
        _targetSurfaceBind.RegisterValueChangedCallback(targetSurfaceChanged);
        _targetSurfaceBind.objectType  = typeof(GameObject);
        _targetSurfaceBind.bindingPath = "targetSurface";
        customInspector.Add(_targetSurfaceBind);

        _preDataBind = new ObjectField("PreData");
        _preDataBind.RegisterValueChangedCallback(preDataChanged);
        _preDataBind.objectType  = typeof(PreDataSO);
        _preDataBind.bindingPath = "preData";
        customInspector.Add(_preDataBind);

        _spawnSObind = new ObjectField("Spawn Data");
        _spawnSObind.RegisterValueChangedCallback(spawnDataChanged);
        _spawnSObind.objectType  = typeof(SpawnSO);
        _spawnSObind.bindingPath = "spawnData";
        customInspector.Add(_spawnSObind);



        _spawnBox = new Box();
        customInspector.Add(_spawnBox);

        List <string>               items    = new List <string>();
        Func <VisualElement>        makeItem = () => new Label();
        Action <VisualElement, int> bindItem = (e, i) => (e as Label).text = items[i];
        const int itemHeight = ITEM_HEIGHT;

        _spawnZoneList = new ListView(items, itemHeight, makeItem, bindItem);
        _spawnZoneList.selectionType      = SelectionType.Single;
        _spawnZoneList.onSelectionChange += onItemChosenHandler;
        //_spawnZoneList.onSelectionChanged += objects => Debug.Log(objects);
        _spawnBox.Add(_spawnZoneList);

        Box arBtnBox = new Box();

        _spawnBox.Add(arBtnBox);
        arBtnBox.style.flexDirection = FlexDirection.Row;
        arBtnBox.style.alignContent  = Align.Center;

        _addSpawZoneBtn      = new Button(addSpawnZoneClickListener);
        _addSpawZoneBtn.text = "Add Spawn Zone";
        arBtnBox.Add(_addSpawZoneBtn);
        _removeSpawZoneBtn      = new Button(removeSpawnZoneClickListener);
        _removeSpawZoneBtn.text = "Remove Current Spawn Zone";
        arBtnBox.Add(_removeSpawZoneBtn);

        _spawnSetNameTf = new TextField("Spawn Set Name");
        _spawnBox.Add(_spawnSetNameTf);
        Button saveBtn = new Button(saveClickListener);

        saveBtn.text = "Save Spawns";
        _spawnBox.Add(saveBtn);

        SpawnCreation sc = target as SpawnCreation;

        _targetObject = sc.targetSurface;
        _preData      = sc.preData;
        _spawnSO      = sc.spawnData;
        checkSRCdata();

        return(customInspector);
    }
Exemplo n.º 3
0
 private void spawnDataChanged(ChangeEvent <UnityEngine.Object> e)
 {
     //тут надо бы проверить на предмет сохранения текущих наработок
     _spawnSO = e.newValue as SpawnSO;
     checkSRCdata();
 }