Unity3D 가 Preview 에서 로 그 를 인쇄 하 는 방법
오늘 은 프 리 뷰 창 에 디 버 깅 정 보 를 표시 하 는 작은 도 구 를 쓰 겠 습 니 다.
아래 그림 을 볼 수 있 습 니 다.헬 스 와 파워 를 인쇄 하 는 로그 입 니 다.Preview 에 서 는 콘 솔 에 표시 하 는 것 보다 훨씬 편 합 니 다.
왼쪽 은 Console 에 표시 되 고 오른쪽 은 Preview 창 에 표 시 됩 니 다.
Editor 디 렉 터 리 를 만 들 고 아래 스 크 립 트 를 넣 습 니 다.
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Object), true)]
public class PreviewGUIEditor : Editor {
/** Update every 15th frame. */
private const int updateOnFrame = 15;
private GUIStyle _previewLabelStyle;
private GUIStyle previewLabelStyle {
get {
if (_previewLabelStyle == null) {
_previewLabelStyle = new GUIStyle("PreOverlayLabel") {
richText = false,
alignment = TextAnchor.UpperLeft,
fontStyle = FontStyle.Normal
};
// Try to get a fixed-width font on macOS.
var font = Font.CreateDynamicFontFromOSFont("Monaco", 12);
// Failing that, try to get a fixed-width font on Windows.
if (font == null)
font = Font.CreateDynamicFontFromOSFont("Lucida Console", 12);
// XXX What fixed-width font should I request if we're on Linux?
if (font != null)
_previewLabelStyle.font = font;
// Debug.Log("Fonts:
" + string.Join("
", Font.GetOSInstalledFontNames()));
}
return _previewLabelStyle;
}
}
public override bool HasPreviewGUI() {
return Application.isPlaying;
}
public override bool RequiresConstantRepaint() {
// Only repaint on the nth frame.
return Application.isPlaying && Time.frameCount % updateOnFrame == 0;
}
public override void OnPreviewGUI(Rect rect, GUIStyle background) {
string str = target.ToString();
GUI.Label(rect, str, previewLabelStyle);
}
}
인쇄 로그 가 필요 한 클래스 에서 ToString()함 수 를 다시 불 러 오고 preview 에서 출력 해 야 할 내용 을 되 돌려 줍 니 다.다음은 위 에서 캡 처 한 예제 입 니 다.하나의 Player 클래스 는 ToString()함수 에서 helh 와 power 의 출력 내용 을 되 돌려 줍 니 다.
using UnityEngine;
public class Player : MonoBehaviour
{
public int health = 10;
public int power = 10;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
health += 1;
power += 2;
Debug.LogError("health = "+ health);
Debug.LogError("power = "+ power);
}
public override string ToString()
{
return "health = " + health+"
"+
"power = " + power;
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity 공부 일지~블렌드 셰이프 조작 방법 그 ①게임을 만들고 싶다 ~라고 생각하고 마지막 날부터 Unity를 만지기 시작했습니다 HITOMI2236입니다. 이번 블렌드 셰이프에 대해 조사했으므로 여기에 기록하려고 합니다. 개인용 메모입니다만, 만약 같은 곳에서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.