Godot: 노드에서 커스텀 에디터 경고 표시
Area2D
또는 KinematicBody2D
노드에서 볼 수 있는 사용자 지정 노드에 경고 삼각형을 추가하고 싶었던 적이 있습니까? 글쎄, 실제로 꽤 쉽기 때문에 당신은 운이 좋은 것입니다!이 예에서는
Enemy
하위 노드가 필요한 사용자 지정Sprite
노드를 생성합니다. 이렇게 하면 목적에 맞게 기능을 확장할 수 있는 좋은 출발점이 됩니다.먼저
Node2D
(또는 Enemy
에서 상속하려는 노드)에서 상속하는 새 스크립트를 만듭니다. 내 파일Enemy.gd
을 호출하겠습니다.클래스 이름을
Enemy
로 정의하고 tool
키워드를 추가합니다. 이렇게 하면 편집기에서 코드를 실행하고 필요한 오류를 표시할 수 있습니다. 여기서 한 가지 참고 사항은 알아야 할 몇 가지 주의 사항이 있으므로 tool
키워드에 대한 설명서를 읽는 것이 좋습니다.스크립트 상단은 다음과 같아야 합니다.
extends Node2D
tool
class_name Enemy
다음으로
_get_configuration_warning
마법 함수를 추가합니다. 이 함수가 비어 있지 않은 문자열을 반환할 때마다 편집기에 경고가 표시됩니다.// ...
func _get_configuration_warning():
return ""
로직을 추가하기 전에
Enemy
에 새 Scene
노드를 생성하여 편집기에 경고가 표시되는 것을 볼 수 있습니다. return 문을 변경한 경우 다음과 유사한 내용이 표시됩니다.직계 자식만 볼 것이므로
get_children
메서드를 사용하고 검사에 Sprite
가 포함되어 있으면 간단한 부울 검사를 수행합니다.func _get_configuration_warning():
var has_sprite = false
for child in get_children():
if child is Sprite:
has_sprite = true
if !has_sprite:
return "Sprite is required"
return ""
has_sprite
라는 부울 변수를 만들고 기본적으로 false
로 설정합니다. 그런 다음 모든 자식을 반복하고 자식is
이 Sprite
인지 확인하고 변수를 true
로 설정합니다. 루프 후에 has_sprite
변수가 여전히 false
인지 확인하고, 그렇다면 Sprite
가 필요하다는 메시지를 반환합니다.스크립트를 저장하면 메시지와 함께 경고가 표시되고
Sprite
를 하위 노드로 추가하면 경고가 제거됩니다.여기서 멋진 점은
is
키워드입니다.Tests whether a variable extends a given class, or is of a given built-in type.
이를 사용하여 우리가 만든 다른 노드 또는 다른 사용자 지정 노드를 테스트할 수 있습니다.
다시 말하지만 이것은 매우 간단한 예이지만 필요에 따라 더 확장할 수 있는 좋은 출발점이 될 것입니다.
내 기사를 읽어 주셔서 감사합니다. 정말 많은 의미가 있습니다! ❤️ 피드백이나 의견을 제공해 주세요. 저는 항상 개선하고 의미 있는 토론을 하기 위해 노력하고 있습니다.
👋 다음 시간까지!
Reference
이 문제에 관하여(Godot: 노드에서 커스텀 에디터 경고 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hurricaneinteractive/godot-show-editor-warnings-on-nodes-2p8p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)