확장된 화면, 골목 메뉴를 편집하는 방법
코드 사용 시 고려 사항
코드 사용으로 인한 손실은 책임을 지지 않습니다.
또한 코드를 사용할 때 사용하십시오.
참고하거나 사용할 때 댓글에 남길 수 있다면 열의가 클 거예요.
그런 일 없어요?
여느 때처럼 편집 소재 저장 버튼을 사용할 수 있었으면 좋겠는데...
맞아요. 파란색 W 소프트웨어, 녹색 X 등 다른 소프트웨어처럼 화면 위쪽을 편집해요.
메뉴판 같은 게 있었으면 길을 잃지 않았을 텐데..
예?그거 괜찮은데?이렇게 되면
이하
sample.cspublic class EditorSamapleMain : EditorWindow
{
[MenuItem("Tools/SampleMenu")]
static public void open_tool()
{
GetWindow<EditorSamapleMain>();
}
/// <summary>
/// 描画部分
/// </summary>
private void OnGUI()
{
Rect _rect = EditorGUILayout.BeginHorizontal();
{
if(GUILayout.Button("File", EditorStyles.toolbarButton, GUILayout.Width(100.0f)))
{
Rect _main_rect = this.position;
_main_rect.size = new Vector2(_rect.width, _rect.height);
EditorSampleSub.file_menu_open(_main_rect);
}
}
EditorGUILayout.EndHorizontal();
}
}
public class EditorSampleSub : EditorWindow
{
static public void file_menu_open(Rect _main_window)
{
var _window = CreateInstance<EditorSampleSub>();
_window.position = new Rect(_main_window.x -100, _main_window.y + _main_window.size.y,200,200);
_window.ShowPopup();
_window.Focus();
}
private bool close;
private EditorSampleSub()
{
close = false;
}
private void OnGUI()
{
EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true));
if(GUILayout.Button("緊急終了",EditorStyles.toolbarButton))
{
this.Close();
}
EditorGUILayout.EndVertical();
}
private void Update()
{
if(close)
{
this.Close();
}
}
private void OnLostFocus()
{
close = true;
}
}
위에서 설명한 작업을 수행한 후 다음과 같습니다.
약간의 화면적인 외관과 프레임 같은 처리를 더하면
괜찮을 것 같아서요.
코드 해설
그럼 코드 설명 좀 해주세요.
코드를 참조해야 하기 때문에 다른 화면에 위 코드를 붙여서 보는 게 좋을 것 같아요.
관심사는 Rect입니다.
이번 소스 상황.
화면을 만들기 전에 2개의 렉트를 추가로 확보했다.
하나는 Horizontal Block에서 왔어요.
다른 하나는this의 값에서 얻은 것이다.
일단 첫 번째 설명부터.
EditorSampleMain 측면의 onGUI()에 대한 rect 값입니다.
Horizontal Block 컨텐트를 표시할 때의 크기입니다.
따라서 이 경우 File이 적힌 버튼의 크기가 값으로 반환됩니다.
이 블록의 크기를 얻기 위해 진행된 것이다.
두번째
이 화면의 표시 부분의 위치와 크기를 얻습니다.
그러니까
1은 파란색 테두리 부분입니다.
2 는 빨간 테두리 부분입니다.
구역
(파란색 부분만 있으면 돼요!)이 점을 알아차린 사람.
그렇게 생각하면 실행하세요. 아마 왼쪽 상단에 메뉴 얼굴이 나올 거예요.
빨간색 위치 정보를 얻은 것은 왼쪽 위 기점의 X와 Y를 얻었기 때문이다.
이렇게 하면 현재 빨간색 상자의 창 위치가 표시됩니다.
그 위치 정보에 대해 파란색 부분의 사이즈 Y를 얻어서 File을 눌렀을 때 나와요.
창의 위치를 계산하는 중입니다.
따라서 두 곳의 Rect 정보가 필요합니다.
2부터 창 위치 시작
1부터 시작해서 창에서 명령량의 위치를 엇갈리게 합니다
Reference
이 문제에 관하여(확장된 화면, 골목 메뉴를 편집하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/herieru/items/371cc0f8120668b82f26
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여느 때처럼 편집 소재 저장 버튼을 사용할 수 있었으면 좋겠는데...
맞아요. 파란색 W 소프트웨어, 녹색 X 등 다른 소프트웨어처럼 화면 위쪽을 편집해요.
메뉴판 같은 게 있었으면 길을 잃지 않았을 텐데..
예?그거 괜찮은데?이렇게 되면
이하
sample.cs
public class EditorSamapleMain : EditorWindow
{
[MenuItem("Tools/SampleMenu")]
static public void open_tool()
{
GetWindow<EditorSamapleMain>();
}
/// <summary>
/// 描画部分
/// </summary>
private void OnGUI()
{
Rect _rect = EditorGUILayout.BeginHorizontal();
{
if(GUILayout.Button("File", EditorStyles.toolbarButton, GUILayout.Width(100.0f)))
{
Rect _main_rect = this.position;
_main_rect.size = new Vector2(_rect.width, _rect.height);
EditorSampleSub.file_menu_open(_main_rect);
}
}
EditorGUILayout.EndHorizontal();
}
}
public class EditorSampleSub : EditorWindow
{
static public void file_menu_open(Rect _main_window)
{
var _window = CreateInstance<EditorSampleSub>();
_window.position = new Rect(_main_window.x -100, _main_window.y + _main_window.size.y,200,200);
_window.ShowPopup();
_window.Focus();
}
private bool close;
private EditorSampleSub()
{
close = false;
}
private void OnGUI()
{
EditorGUILayout.BeginVertical(GUI.skin.box, GUILayout.ExpandWidth(true));
if(GUILayout.Button("緊急終了",EditorStyles.toolbarButton))
{
this.Close();
}
EditorGUILayout.EndVertical();
}
private void Update()
{
if(close)
{
this.Close();
}
}
private void OnLostFocus()
{
close = true;
}
}
위에서 설명한 작업을 수행한 후 다음과 같습니다.약간의 화면적인 외관과 프레임 같은 처리를 더하면
괜찮을 것 같아서요.
코드 해설
그럼 코드 설명 좀 해주세요.
코드를 참조해야 하기 때문에 다른 화면에 위 코드를 붙여서 보는 게 좋을 것 같아요.
관심사는 Rect입니다.
이번 소스 상황.
화면을 만들기 전에 2개의 렉트를 추가로 확보했다.
하나는 Horizontal Block에서 왔어요.
다른 하나는this의 값에서 얻은 것이다.
일단 첫 번째 설명부터.
EditorSampleMain 측면의 onGUI()에 대한 rect 값입니다.
Horizontal Block 컨텐트를 표시할 때의 크기입니다.
따라서 이 경우 File이 적힌 버튼의 크기가 값으로 반환됩니다.
이 블록의 크기를 얻기 위해 진행된 것이다.
두번째
이 화면의 표시 부분의 위치와 크기를 얻습니다.
그러니까
1은 파란색 테두리 부분입니다.
2 는 빨간 테두리 부분입니다.
구역
(파란색 부분만 있으면 돼요!)이 점을 알아차린 사람.
그렇게 생각하면 실행하세요. 아마 왼쪽 상단에 메뉴 얼굴이 나올 거예요.
빨간색 위치 정보를 얻은 것은 왼쪽 위 기점의 X와 Y를 얻었기 때문이다.
이렇게 하면 현재 빨간색 상자의 창 위치가 표시됩니다.
그 위치 정보에 대해 파란색 부분의 사이즈 Y를 얻어서 File을 눌렀을 때 나와요.
창의 위치를 계산하는 중입니다.
따라서 두 곳의 Rect 정보가 필요합니다.
2부터 창 위치 시작
1부터 시작해서 창에서 명령량의 위치를 엇갈리게 합니다
Reference
이 문제에 관하여(확장된 화면, 골목 메뉴를 편집하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/herieru/items/371cc0f8120668b82f26
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(확장된 화면, 골목 메뉴를 편집하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/herieru/items/371cc0f8120668b82f26텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)