예제 #1
0
파일: RoomDevice.cs 프로젝트: OrangeeZ/LD36
    private void Start()
    {
        SetFixed();

        var effectName = "RoomEffect" + RoomDeviceInfo.Effect;

        Debug.Log(effectName);

        var roomEffectType = Types.GetType(effectName, Assembly.GetCallingAssembly().FullName);

        _roomEffect             = (RoomEffect)Activator.CreateInstance(roomEffectType);
        _roomEffect.EffectValue = RoomDeviceInfo.EffectValue;
    }
예제 #2
0
 public void SetRoomEffect(RoomEffect roomEffect, Vector2Int roomCoord)
 {
     //Debug.Log(roomEffect + " a été ajouté dans la room " + roomCoord.x + "/" + roomCoord.y);
 }
예제 #3
0
    //Fonction d'affichage sur la window
    void OnGUI()
    {
        if (null == _roomEffectManager)
        {
            _roomEffectManager = GetRoomEffectManagerInScene(); //On récupère le RoomEffectManager sur la scène
        }

        if (null == _roomEffectManager)
        {
            //No Room Effect Manager in Scene
            GUILayout.Label("Create a room effect manager on scene to continue.", EditorStyles.boldLabel);
            return;
        }

        GUILayout.Label("Room Grid", EditorStyles.boldLabel);

        int newSizeX = EditorGUILayout.IntField("Size X", _roomEffectManager.sizeX);  //Champ int correspondant au nombre de room en largeur
        int newSizeY = EditorGUILayout.IntField("Size Y", _roomEffectManager.sizeY);  //Champ int correspondant au nombre de room en longueur

        if (_roomEffectManager.sizeX != newSizeX || _roomEffectManager.sizeY != newSizeY)
        {
            _roomEffectManager.sizeX = newSizeX;
            _roomEffectManager.sizeY = newSizeY;

            RoomData[] roomDataArr = _roomEffectManager.roomsDataArr;
            Array.Resize(ref roomDataArr, _roomEffectManager.sizeX * _roomEffectManager.sizeY);
            for (int i = 0; i < roomDataArr.Length; ++i)
            {
                if (roomDataArr[i] == null)
                {
                    roomDataArr[i] = new RoomData();
                }


                roomDataArr[i].x = i % newSizeX;
                roomDataArr[i].y = i / newSizeX;
            }

            _roomEffectManager.roomsDataArr = roomDataArr;
        }

        //Affiche en ligne un button par effet de room, button qu'on devra sélectionner pour set un effet à une room
        EditorGUILayout.BeginHorizontal();
        foreach (RoomEffect effect in Enum.GetValues(typeof(RoomEffect)))
        {
            //Button créé directement dans le if, et ce if gère le click du button
            if (GUILayout.Button(effect.ToString(), (effect == selectedEffect ? selectedButton : GUI.skin.button))) //Si on clique sur un button de choix d'effet
            {
                selectedEffect = effect;                                                                            //On set selectedEffect à l'effet du button cliqué
            }
        }
        EditorGUILayout.EndHorizontal();

        scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
        //Affiche le tableau de room avec une room = un button
        EditorGUILayout.BeginHorizontal(GUILayout.Width(_roomEffectManager.sizeX * 50));
        for (int x = _roomEffectManager.sizeY - 1; x >= 0; x--)
        {
            EditorGUILayout.BeginVertical(GUILayout.Height(_roomEffectManager.sizeY * 50));
            for (int y = _roomEffectManager.sizeX - 1; y >= 0; y--)
            {
                RoomData roomData = _GetRoomData(_roomEffectManager.roomsDataArr, y, x);
                if (null != roomData)
                {
                    if (GUILayout.Button(roomData.roomEffect.ToString(), GUILayout.Width(50), GUILayout.Height(50))) //Créé le button
                    {
                        roomData.roomEffect = selectedEffect;
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.EndScrollView();


        if (GUILayout.Button("Generate map view"))  //Si on clique sur le bouton generate
        {
            _roomEffectManager.GenerateRoomsView(); //On affiche le nouveau tableau sur la room tilemap
        }

        #region Exemple
        //Exemples

        /*
         * myString = EditorGUILayout.TextField("Text Field", myString);
         * groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnabled);
         * myBool = EditorGUILayout.Toggle("Toggle", myBool);
         * myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3);
         *
         * EditorGUILayout.EndToggleGroup();
         */
        #endregion
    }