편집기 스크립트의 변수를 저장할 수 없습니다.

호세 티마 우레

안녕하세요, 사용자 정의 편집기 값의 필드를 콤보 상자에 설정하려는 경우 인터넷에서 코드를 받았지만 콤보 상자에서 변경 한 내용이 전혀 저장되지 않는다는 것을 깨달았습니다. "저장"버튼을 사용하여 serializedfield를 만들려고했지만 C # 및 Unity가 처음입니다. 방문 해주셔서 감사합니다.

    using UnityEditor;
    using UnityEngine;


    [CustomEditor(typeof(DoorScript))]
    [System.Serializable]
    public class ButtonDropDownMenu : Editor
    {
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            DoorScript script = (DoorScript)target;

            GUIContent arrayLabel = new GUIContent("Color");
            script.index = EditorGUILayout.Popup(arrayLabel, script.index, script.options);
            /*serializedObject.FindProperty("index").intValue = script.index = EditorGUILayout.Popup(arrayLabel, script.index, script.options);
            script.index = EditorGUILayout.Popup(arrayLabel, script.index, script.options);

            var properlyToSave = serializedObject.FindProperty("Index");
            EditorGUILayout.PropertyField(properlyToSave);
            serializedObject.ApplyModifiedProperties();¨*/

        }
    }



using UnityEngine;
using UnityEngine.Experimental.Rendering.Universal;

public class DoorScript : MonoBehaviour
{
    private SpriteRenderer myColor;
    public Light2D doorLight;
    public Light2D doorPLight;

    [HideInInspector][SerializeField]
    public int index = 0;
    [HideInInspector][SerializeField]
    public string[] options = new string[]
    {
        "White",
        "Red",
        "Blue",
        "Cyan"

    };

    private void Awake()
    {
        myColor = GetComponent<SpriteRenderer>();
        ColorChanger();
    }

    void Start()
    {

    }

    private void ColorChanger()
    {
        if (index <= 0)
        {
            DoorsLights(Color.grey);
        }
        else if (index == 1)
        {
            DoorsLights(Color.red);
        }
        else if (index == 2)
        {
            DoorsLights(Color.blue);
        }
        else if (index >= 3)
        {
            DoorsLights(Color.green);
        }
    }

    private void DoorsLights(Color color)
    {
        myColor.color = color;
        doorLight.color = color;
        doorPLight.color = color;
    }
}

편집하다:

나는 완벽하게 일했습니다.

index = EditorGUILayout.Popup(arrayLabel, script.index, script.options); 

나는 사용했다

 index.intValue = EditorGUILayout.Popup(arrayLabel, script.index, script.options); 
어치

사용자 정의 편집기에서 속성을 업데이트하려면 SerializedProperty. 이렇게 :

[CustomEditor(typeof(DoorScript))]
public class ButtonDropDownMenu : Editor
{
    SerializedProperty index;
    void OnEnable()
    {
        index = serializedObject.FindProperty("index");
    }
...

그런 다음 serializedObject.ApplyModifiedProperties();완료되면 전화를 걸고 있는지 확인하세요 .

public override void OnInspectorGUI()
{
    base.OnInspectorGUI();
    ...
    index = EditorGUILayout.Popup(arrayLabel, script.index, script.options);
    ...
    serializedObject.ApplyModifiedProperties();
}

도움이 되었기를 바랍니다! 이것이 작동하지 않으면 알려주세요

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

쉘 스크립트를 실행할 수있는 텍스트 편집기가 있습니까?

분류에서Dev

수집기의 유형 변수를 유추 할 수 없습니다.

분류에서Dev

UIMA Ruta : 편집기를 초기화 할 수 없습니다.

분류에서Dev

Google 시트 스크립트 편집기에서 스크립트 코드를 볼 수 없습니다.

분류에서Dev

부트 스트랩 4에서 <textarea> 글꼴 크기를 편집 할 수 없습니다.

분류에서Dev

배치 스크립트에서 기존 github 저장소에 커밋 할 수 없습니다.

분류에서Dev

함수의 변수를 셸 스크립트의 기본 코드로 전달할 수 없습니다.

분류에서Dev

자바 스크립트 변수를 재정의 할 수 없습니다.

분류에서Dev

쉘 스크립트를 실행할 수있는 텍스트 편집기가 있습니까?

분류에서Dev

텍스트 상자를 편집 할 수 없습니다.

분류에서Dev

스크롤보기 내의 편집 텍스트는 스크롤 할 수 없습니다.

분류에서Dev

jquery 변수에 특정 td 텍스트를 저장할 수 없습니다.

분류에서Dev

Div에서 크기를 편집 할 수 없습니까?

분류에서Dev

자바 스크립트 변수 값 저장, 편집 및 공유

분류에서Dev

빌드 정의를 만들고 편집 할 수 있지만 기존 정의는 편집 할 수 없습니다.

분류에서Dev

텍스트 편집기로 편집 된 sudoers 파일-이제 sudo를 실행할 수 없습니다.

분류에서Dev

편집기를 저장하고 종료 할 수 없습니다.

분류에서Dev

haskell 스크립트에 저장을 사용할 수 없습니다.

분류에서Dev

텍스트 편집기를 Moodle 2에 통합 할 수 없습니다.

분류에서Dev

자바 스크립트 기반 게임에서 전역 변수를 초기화 할 수 없습니다.

분류에서Dev

다른 스크립트의 스크립트를 사용할 수 없습니다.

분류에서Dev

저장 프로 시저를 편집 할 수 없습니다.

분류에서Dev

Epsilon 편집기를 설치할 수 없습니다.

분류에서Dev

WLST Python 스크립트가 쉘 스크립트의 변수를 승인 할 수 없습니다.

분류에서Dev

Bash 창에서 텍스트를 편집 할 수 없습니다.

분류에서Dev

편집 된 텍스트를 설정할 수 없습니다.

분류에서Dev

cheerio로 비동기 스크립트를 스크랩 할 수 없습니다.

분류에서Dev

아치 리눅스에 아톰 편집기를 설치할 수 없습니다

분류에서Dev

/ var / www의 atom에서 파일을 편집하거나 저장할 수 없습니다.

Related 관련 기사

  1. 1

    쉘 스크립트를 실행할 수있는 텍스트 편집기가 있습니까?

  2. 2

    수집기의 유형 변수를 유추 할 수 없습니다.

  3. 3

    UIMA Ruta : 편집기를 초기화 할 수 없습니다.

  4. 4

    Google 시트 스크립트 편집기에서 스크립트 코드를 볼 수 없습니다.

  5. 5

    부트 스트랩 4에서 <textarea> 글꼴 크기를 편집 할 수 없습니다.

  6. 6

    배치 스크립트에서 기존 github 저장소에 커밋 할 수 없습니다.

  7. 7

    함수의 변수를 셸 스크립트의 기본 코드로 전달할 수 없습니다.

  8. 8

    자바 스크립트 변수를 재정의 할 수 없습니다.

  9. 9

    쉘 스크립트를 실행할 수있는 텍스트 편집기가 있습니까?

  10. 10

    텍스트 상자를 편집 할 수 없습니다.

  11. 11

    스크롤보기 내의 편집 텍스트는 스크롤 할 수 없습니다.

  12. 12

    jquery 변수에 특정 td 텍스트를 저장할 수 없습니다.

  13. 13

    Div에서 크기를 편집 할 수 없습니까?

  14. 14

    자바 스크립트 변수 값 저장, 편집 및 공유

  15. 15

    빌드 정의를 만들고 편집 할 수 있지만 기존 정의는 편집 할 수 없습니다.

  16. 16

    텍스트 편집기로 편집 된 sudoers 파일-이제 sudo를 실행할 수 없습니다.

  17. 17

    편집기를 저장하고 종료 할 수 없습니다.

  18. 18

    haskell 스크립트에 저장을 사용할 수 없습니다.

  19. 19

    텍스트 편집기를 Moodle 2에 통합 할 수 없습니다.

  20. 20

    자바 스크립트 기반 게임에서 전역 변수를 초기화 할 수 없습니다.

  21. 21

    다른 스크립트의 스크립트를 사용할 수 없습니다.

  22. 22

    저장 프로 시저를 편집 할 수 없습니다.

  23. 23

    Epsilon 편집기를 설치할 수 없습니다.

  24. 24

    WLST Python 스크립트가 쉘 스크립트의 변수를 승인 할 수 없습니다.

  25. 25

    Bash 창에서 텍스트를 편집 할 수 없습니다.

  26. 26

    편집 된 텍스트를 설정할 수 없습니다.

  27. 27

    cheerio로 비동기 스크립트를 스크랩 할 수 없습니다.

  28. 28

    아치 리눅스에 아톰 편집기를 설치할 수 없습니다

  29. 29

    / var / www의 atom에서 파일을 편집하거나 저장할 수 없습니다.

뜨겁다태그

보관