2024. 7. 10. 10:15 godot c#/Node3d

 

 

 

 

가장 기본적인 3d 격체 노드

transform을 사용하여 위치 회전 크기를 조절할 수 있다

 

 

 

 

신호

visivility_changed() visible이 변경될 떄마다 신호를 보낸다 

 

 

펑션

 

void force_updete_transform() 트랜스폼을 강제로 업데이트합니다
성능상의 이유로 물리에서 변환은
누적된 후에 설정되지만
최신 변환이 필요한 경우 사용 
 
node3d get_parent_node_3d() 부모를 반환, 없으면 빈 object를 반환
 world3d get_world_3d() 노드가 등록된 현재 world3d 리소스를 반환

 

 

void
global_rotate(vector3,engle)
주어진 각도
(라디안)만큼
축(vector3)을 중심으로
회전한다 
글로벌 회전을 움직이는 것 이기 떄문에 회전된 상태에서도 
월드 중심축에 맞춰 회전한다
◀나중에 gif로 바꿔야 함 

void
global_scale(vector3)
주어진 vector3배율 인수로 전역 변환의크기를
조절합니다 
vec3 (1,1,1)가 기본 크기.
global_scale(2,2,2)는
글로벌 스케일 크기가
2배가 된다

(1,1,1)를 1번 적용하면 
(2,2,2)가 되고 
1번 더 적용하면 (4,4,4)가 된다 


void hide() 노드를 숨김  
void show() 노드를 보이게 함  
bool
is_local_transform_notification_enabled()
노드가 로컬 변환 변경 사항을
알리는지 여부를 반환 
(기본적으로 전파하지 않음)
set_notify_local_transform()

노드가 로컬 변환 변경 사항을
알릴지 여부를 설정 
(기본적으로 전파하지 않음)
 
bool
is_scale_disabled()
노드가 스케일 또는 로컨 변환 스케일을 사용하는지 여부를 반환 

void
set_disable_scale(bool)
노드가 스케일 또는 로컬 변환 스케일을 사용할지 여부를 설정함

로컬 변환 배율에 대한
변경 사항은 유지(1,1,1)
●?????
bool
is_transform_notification_enabled()
노드가 전역 및 로컬 변환 변경 사항을 알리는지 여부를 반환
(기본적으로 전파하지 않음)
void
set_notify_transform(bool)
노드가 전역 및 로컬 변환 변경 사항을 알릴지 여부를 설정

node3d는 편집기 컨텍스트에 있고
유효한 기즈모가 없으면
기본적으로 전파하지 않음 
●?????
bool
is_visible_in_tree()
노드가 scenetree에 있으면 
해당 노드의 visible 속성이 true이고 
해당 조상도 모두 표시되는 경우 반환 

숨겨진 조상이 있으면 이 노드는 장면 트리에 표시되지 않음

해당 노드 
visibility 활성화 = true
비활성화 = false 

부모노드 비활성화
해당노드 활성화 = false  

 

void
look_at(vector3 target ,
vector3 up = vector3(0,1,0) ,
bool use_model_front = false)
target 로컬 정방향(-Z)축이 target 위치를 가리키도록 노드를 회전함 
up 로컬 위쪽 Y(0,1,0)축은 전방 축에 수직을 유지함
use_model_front 기본적으로 Z-축이 전방으로 처리 되며 
true일시 Z축이 전방으로 처리됩니다 

 


void look_at_form_position(
vector3 position,
vector3 target,
vector3 up=vector3(0,1,0),
bool use_model_front=false)


position 으로 이동 후 target을 바라 본다 
나머지는 look_at과 동일하다 
 void orthonormalize() 이 노드의 transform3d에서 그램-슈미트 직교 정규화를 수행하여 회전 및 변환을 유지하면서 이 노드의 변환을 재설정합니다 
void rotate(vector3 axis, float angle) 지정된 각도(라디안)만큼
전역 축을 중심으로 로컬 회전합니다 
(로컬 회전 전역 축)
★나중에 gif
void rotate_object_local
(vector3 axis , float angle )
위와 같이 회전하며,
축은 객체-로컬 좌표계에 있습니다 
(로컬 회전 로컬 축)
void rotate_x(float angle) x축을 중심으로 라디안 단위의 각도로
로컬 회전함 
 
void rotate_y(float angle) y축을 중심으로 라디안 단위의 각도로
로컬 회전함 
 
void rotate_z(float angle) z축을 중심으로 라디안 단위의 각도로
로컬 회전함 
 
void scale_object_local (vector3 scale)  객체-로컬 좌표계에서 주어진
 3d 스케일 인자로
로컬 스케일을 조정합니다 

vec3(3.3.3)을 사용하여 3배 크게 만듬
★(global_scale과의 차이를 모르겠음)
void set_identity() 이 노드의 모든 변환을 재설정 함

transform의 모든 값이 초기화 되어 
0,0,0좌표 1,1,1크기 각도 0,0,0이되었다

 

vector3 to_global(vector3 local_point)
local_point를 글로벌 vec3로 반환 




현재 position + vec3(0,0,20)
의 벡터 위치를 글로벌 vec값을 반환 하여 40이 된다 
vector3 to_local(vector3 global_point)  global_point를 로컬 vec3로 반환 





void set_ignore_transform_notification(bool )  노드가 변환(클로벌 또는 로컬)이 변경되었다는 알림을
무시할지 여부를 설정 

 

void translate(vector3 offset ) 주어진 offset만큼 노트의 위치를 변경
scale에 영향을 받음
position(10,10,0)에
translate(vec3(10,0,0))
을 적용하면 
위치가 (20,0,0)가된다
void translate_object_local(vector3 offset) 로컬 공간에서 주어진 offset만큼 노드의 위치를 변경   뭔 차이인지 모르겠다 

 

 

 

global_position<< 나중에 추가 해야 함 그냥 글로벌 포지션 같음 

 

 

 

 





카테고리 글 더보기