-
Notifications
You must be signed in to change notification settings - Fork 1
HotLoadSystem
29thnight edited this page Nov 27, 2025
·
1 revision
간단 설명: 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, 삭제/목록 함수
| 영역 | 함수 | 설명 |
|---|---|---|
| 모듈 |
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()로 빌드/로드 절차 수행.
API Reference
Main
PhysicsSystem
RenderEngine
- Animation
- AnimationJob_Internal
- AnimatorData
- BillboardModuleGPU
- BillboardType
- Camera
- CullingManager
- DeviceState
- DeviceState_Deferred_Unsafe
- Foliage
- LightMapping
- MeshRendererProxy
- PipelineStateObject
- PrimitiveRenderProxy
- Projection_RenderPipelinePass
- ProxyCommand
- RenderGraphBuilder
- RenderModules
- RenderPassData
- RenderScene
- RenderScene_ComponentFlows
- Terrain_Foliage_LightMapping
- TerrainBuffers
ScriptBinder
- ActionMap
- AIManager
- AnchorPreset
- AniBehavior
- AnimationBehviourFatory
- AnimationController
- AnimationState
- Animator
- AniTransition
- ArticulationData
- ArticulationLoader
- AvatarMask
- BehaviorTreeComponent
- BillboardType
- BlackBoard
- BlackBoardType
- BlackBoardValue
- BoneMask
- BoxColliderComponent
- BTBuildGraph
- BTBuildNode
- BTEnum
- BTHeader
- CameraComponent
- Canvas
- CapsuleColliderComponent
- CharacterControllerComponent
- Component
- Component_Binding
- ComponentFactory
- ConditionParameter
- CSharpScriptComponent
- CurvePoint
- DecalComponent
- EBodyType
- EffectComponent
- EForceMode
- FoliageComponent
- FoliageInstance
- FoliageType
- FormIntPtr
- FSMState
- FunctionRegistry
- GameObject
- GameObject_Binding
- GameObjectType
- HotLoadSystem
- IAIComponent
- ImageComponent
- InputAction
- InputActionManager
- InputManager
- InvalidScriptComponent
- IObject
- IProjectSetting
- IRegistableEvent
- IRenderable
- IScriptedFSM
- ISerializable
- KeyArray
- KeyBitFlag
- KeyState
- LightComponent
- LightMapping
- LightProperty
- LinkData
- MeshColliderComponent
- MeshRenderer
- ModuleBehavior
- MonoBehaviorRecord
- MonoManager
- MSBuildHelper
- Navigation
- NodeFactory
- Object
- Object_Binding
- PhysicsManager
- PlayerInputComponent
- Prefab
- PrefabEditor
- PrefabUtility
- RagdollComponent
- RectTransform_Binding
- RectTransformComponent
- RegisterReflect
- RenderableComponents
- RigidBodyComponent
- Scene
- SceneManager
- ScriptStringModule
- SoundComponent
- SoundDefinition
- SoundManager
- SphereColliderComponent
- SpriteRenderer
- SpriteSheetComponent
- StateMachineComponent
- TagManager
- TerrainBuffers
- TerrainColliderComponent
- TerrainComponent
- TextComponent
- TransCondition
- Transform
- Transform_Binding
- Transition
- UIButton
- UIComponent
- UIManager
- VolumeComponent
Utility_Framework
- BaseTypeDef
- Benchmark
- BitFlag
- CircularQueue
- ClassProperty
- Core.Assert
- Core.Barrier
- Core.Coroutine
- Core.CountingSemaphore
- Core.Definition
- Core.Fence
- Core.FenceFlag
- Core.Mathf
- Core.Minimal
- Core.OctreeNode
- Core.Property
- Core.Random
- Core.Runtime
- Core.Thread
- Core.ThreadPool
- CoreWindow
- CSVLoader
- DebugStreamBuf
- Delegate
- DeviceResources
- DirectXHelper
- EngineBootstrap
- FileDialog
- FileIO
- GlobalImGuiContext
- HashingString
- HLSLCompiler
- LinkedListLib
- LogEntry
- LogSink
- LogSystem
- MemoryPool
- MetaAlias
- MetaStateCommand
- MetaUtility
- Octree
- PakHelper
- Paklib
- PathFinder
- QuadTree
- Reflection
- RingBuffer
- SimpleIniFile
- SpinLock
- StringHelper
- TimeSystem
- Trim
- TypeDefinition
- TypeIO
- TypeTrait
- WinProcProxy