Skip to content

HotLoadSystem

29thnight edited this page Nov 27, 2025 · 1 revision

HotLoadSystem

간단 설명: DLL 핫리로드/스크립트 자동 생성 및 바인딩을 담당하는 싱글턴. 모듈 스크립트, BT 노드, 애니메이션 비헤이비어를 동적으로 로드/교체.

주요 기능

항목 설명
초기화/종료 Initialize(), Shutdown()
최신 여부 IsScriptUpToDate()로 DLL/스크립트 최신 상태 점검
리로드 ReloadDynamicLibrary()로 DLL 재로딩
교체 ReplaceScriptComponent() / ReplaceScriptComponentTargetScene(scene)로 씬 내 스크립트 컴포넌트 교체
빌드 이벤트 CompileEvent() 호출 및 플래그 관리
스크립트 파일 생성 CreateScriptFile(name) 등 자동 코드 생성(모듈/BT/AniBehavior)
바인딩 BindScriptEvents(script, name) / UnbindScriptEvents로 이벤트 연결/해제
리플렉션 등록 RegisterScriptReflection(name, script) / UnRegisterScriptReflection(name)
재수집 RecollectScriptComponents(gameObjects)

팩토리/삭제 함수 포인터

  • 모듈: ModuleBehaviorFunc, ModuleBehaviorDeleteFunc, GetScriptNamesFunc
  • BT: BTActionNodeFunc, BTConditionNodeFunc, BTConditionDecoratorNodeFunc 및 각 삭제/목록 함수
  • 애니: AniBehaviorFunc, 삭제/목록 함수

헬퍼 API

영역 함수 설명
모듈 CreateMonoBehavior(name) / DestroyMonoBehavior(script) 스크립트 생성/삭제 래퍼
BT CreateActionNode/ConditionNode/ConditionDecoratorNode(name) 노드 생성
BT DestroyActionNode/ConditionNode/ConditionDecoratorNode(node) 노드 삭제
BT ListBTActionNodeNames/ConditionNodeNames/ConditionDecoratorNodeNames(count*) 등록 노드 이름 목록
애니 CreateAniBehavior(name) / DestroyAniBehavior(ptr) 비헤이비어 생성/삭제
애니 ListAniBehaviorNames(count*) 등록된 비헤이비어 이름 목록
애니 CollectAniBehavior(state) / UnCollectAniBehavior(state) 상태 추적 목록에 추가/제거
공통 IsScriptExists(name) 스크립트 이름 존재 여부 확인
공통 GetScriptNames() 모듈 스크립트 이름 목록
공통 IsCompileEventInvoked()/SetCompileEventInvoked(val) 컴파일 이벤트 트리거/상태
공통 SetReload(val) 리로드 플래그 설정

내부 상태/스레딩

필드 설명
hDll 로드된 DLL 핸들
msbuildPath/command/rebuildCommand 빌드 실행 관련 경로/명령어
m_isStartUp 초기화 상태 플래그
m_scriptNames 모듈 스크립트 이름 목록
m_scriptComponentIndexs 스크립트 컴포넌트 인덱스(게임오브젝트, idx, 이름)
m_scriptComponentMetaIndexs 스크립트 메타 정보 목록
m_aniBehaviorNames 애니메이션 비헤이비어 이름 목록
m_aniBehaviorStates 비헤이비어가 연결된 AnimationState* 목록
스레드/동기화 m_scriptFileThread, m_scriptFileMutex
플래그 m_isReloading, m_isCompileEventInvoked, m_isCompileDertyFlag
m_lastWriteFileTime 마지막 파일 수정 시간

내부 Compile()/LoadForceDLL()로 빌드/로드 절차 수행.

CreatorEngine

API Docs

API Reference
Main
PhysicsSystem
RenderEngine
ScriptBinder
Utility_Framework

etc

Clone this wiki locally