수정 이벤트
수정 이벤트를 사용하면 특정 데이터가 조작될 때(예: AddressableAssetGroup
또는 AddressableAssetEntry
가 추가 또는 제거될 때) 어드레서블 시스템의 일부에 신호를 보낼 수 있습니다.
수정 이벤트는 어드레서블 내 SetDirty
호출의 일부로 트리거됩니다. SetDirty
는 AssetDatabase
가 에셋을 다시 직렬화해야 할 때를 나타내는 데 사용됩니다. SetDirty
의 일부로 두 개의 수정 이벤트 콜백이 트리거될 수 있습니다.
public static event Action<AddressableAssetSettings, ModificationEvent, object> OnModificationGlobal
public Action<AddressableAssetSettings, ModificationEvent, object> OnModification { get; set; }
이러한 콜백은 AddressableAssetSettings
에서 각각 정적 또는 인스턴스 접근자를 통해 찾을 수 있습니다.
수정 이벤트 예제
AddressableAssetSettings.OnModificationGlobal += (settings, modificationEvent, data) =>
{
if(modificationEvent == AddressableAssetSettings.ModificationEvent.EntryAdded)
{
//Do work
}
};
AddressableAssetSettingsDefaultObject.Settings.OnModification += (settings, modificationEvent, data) =>
{
if (modificationEvent == AddressableAssetSettings.ModificationEvent.EntryAdded)
{
//Do work
}
};
수정 이벤트는 이벤트와 관련된 데이터에 대한 일반 object
를 전달합니다. 다음 표에는 수정 이벤트의 목록 및 그와 함께 전달되는 데이터 유형이 간략하게 나와 있습니다.
수정 이벤트 | 전달 데이터 |
---|---|
GroupAdded | AddressableAssetGroup 또는 추가된 그룹 목록 |
GroupRemoved | AddressableAssetGroup 또는 제거된 그룹 목록 |
GroupRenamed | AddressableAssetGroup 또는 이름이 변경된 그룹 목록 |
GroupSchemaAdded | AddressableAssetGroup 또는 스키마가 추가된 그룹 목록 |
GroupSchemaRemoved | AddressableAssetGroup 또는 스키마가 제거된 그룹 목록 |
GroupSchemaModified | 수정된 AddressableAssetGroupSchema |
GroupTemplateAdded | ScriptableObject . 일반적으로 추가된 Group Template 오브젝트인 IGroupTemplate 을 구현하는 스크립터블 오브젝트입니다. |
GroupTemplateRemoved | ScriptableObject . 일반적으로 제거된 Group Template 오브젝트인 IGroupTemplate 을 구현하는 스크립터블 오브젝트입니다. |
GroupTemplateSchemaAdded | 스키마가 추가된 AddressableAssetGroupTemplate |
GroupTemplateSchemaRemoved | 스키마가 제거된 AddressableAssetGroupTemplate |
EntryCreated | 생성된 AddressableAssetEntry |
EntryAdded | AddressableAssetEntry 또는 추가된 엔트리의 목록 |
EntryMoved | AddressableAssetEntry 또는 한 그룹에서 다른 그룹으로 옮겨진 엔트리의 목록 |
EntryRemoved | AddressableAssetEntry 또는 제거된 엔트리의 목록 |
LabelAdded | 추가된 string 레이블 |
LabelRemoved | 제거된 string 레이블 |
ProfileAdded | 추가된 BuildProfile |
ProfileRemoved | 제거된 프로파일 ID의 string |
ProfileModified | 수정된 BuildProfile 또는 null (BuildProfile 오브젝트 배치가 수정된 경우) |
ActiveProfileSet | 활성 프로파일로 설정된 프로파일 ID의 string 인 경우 이 이벤트와 함께 전달되는 데이터 |
EntryModified | AddressableAssetEntry 또는 수정된 엔트리의 목록 |
BuildSettingsChanged | 수정된 AddressableAssetBuildSettings 오브젝트 |
ActiveBuildScriptChanged | 활성 빌더로 설정된 IDataBuilder 빌드 스크립트 |
DataBuilderAdded | ScriptableObject . 일반적으로 DataBuilder 목록에 추가된 IDataBuilder 를 구현하는 스크립터블 오브젝트입니다. |
DataBuilderRemoved | ScriptableObject . 일반적으로 DataBuilder 목록에서 제거된 IDataBuilder 를 구현하는 스크립터블 오브젝트입니다. |
InitializationObjectAdded | ScriptableObject . 일반적으로 InitializationObject 목록에 추가된 IObjectInitializationDataProvider 를 구현하는 스크립터블 오브젝트입니다. |
InitializationObjectRemoved | ScriptableObject . 일반적으로 InitializationObject 목록에서 제거된 IObjectInitializationDataProvider 를 구현하는 스크립터블 오브젝트입니다. |
ActivePlayModeScriptChanged | 새로운 활성 플레이 모드 데이터 빌더로 설정된 IDataBuilder |
BatchModification | null . 이 이벤트는 주로 여러 수정 이벤트가 동시에 발생하여 AddressableAssetSettings 오브젝트가 더티로 표시되어야 함을 나타내는 데 사용됩니다. |
HostingServicesManagerModified | 수정된 HostingServicesManager 또는 HttpHostingService |
GroupMoved | AddressableAssetGroups 의 전체 목록 |
CertificateHandlerChanged | 사용할 인증서 핸들러의 새로운 System.Type |