Compare commits

...

164 Commits

Author SHA1 Message Date
f9d9c2397f Merge remote-tracking branch 'origin/develop' into develop 2025-08-01 17:37:27 +09:00
ef96639139 레스토랑 프랍 수정2 2025-08-01 17:37:11 +09:00
NTG_Lenovo
4b24122c3d Apply .gitignore 2025-08-01 12:25:47 +09:00
NTG_Lenovo
3709e3ac4c fixed gitignore 2025-08-01 12:24:31 +09:00
NTG_Lenovo
f9738bbd57 fixed gitignore 2025-08-01 12:23:09 +09:00
f2b60adacd 레스토랑 프랍 수정 2025-07-31 20:02:00 +09:00
Jeonghyeon Ha
2ed9f00844 Merge branch 'develop' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into develop
# Conflicts:
#	.gitignore
2025-07-31 19:14:40 +09:00
Jeonghyeon Ha
f95bd2f169 sbs file added 2025-07-31 19:12:31 +09:00
Jeonghyeon Ha
12f83a1428 Merge branch 'develop' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into develop 2025-07-31 19:11:58 +09:00
NTG_Lenovo
6f352858a3 Merge remote-tracking branch 'origin/develop' into feature/restaurant_management_ui 2025-07-31 19:09:37 +09:00
NTG_Lenovo
6feedab1e0 sprite atlas gitignore 추가 2025-07-31 19:06:42 +09:00
NTG_Lenovo
f1c03eea80 raw 폴더 최신화 2025-07-31 19:05:37 +09:00
NTG_Lenovo
d964eb647d 에셋 추가 2025-07-31 18:50:25 +09:00
5c5996dc73 레스토랑 프랍 작업 2025-07-31 18:45:38 +09:00
Jeonghyeon Ha
44420181ba sprite to pbr sbs file added 2025-07-31 18:12:31 +09:00
Jeonghyeon Ha
9037d662f4 Quad 메시 추가 2025-07-31 17:41:10 +09:00
NTG_Lenovo
6b7a1f5729 Ui 쉐이더 및 애니메이션 쉐이더 파라미터 에셋 추가 2025-07-31 17:33:30 +09:00
Jeonghyeon Ha
3ef3ff171d Merge branch 'feature/env_pbr_enhancement' into develop
# Conflicts:
#	Assets/_DDD/Restaurant/Environments/Props/_old/Spines/Coral/Coral_SkeletonData.asset
#	Assets/_DDD/Restaurant/Environments/Props/_old/Spines/Coral/Coral_SkeletonData.asset.meta
#	Assets/_DDD/Restaurant/Environments/Props/_old/Spines/SummerGrass01/SummerGrass01_SkeletonData.asset
#	Assets/_DDD/Restaurant/Environments/Props/_old/Spines/SummerGrass01/SummerGrass01_SkeletonData.asset.meta
2025-07-31 12:37:20 +09:00
Jeonghyeon Ha
34f6df59cf DDD-73 레스토랑 스테이징 준비 2025-07-31 12:34:34 +09:00
NTG_Lenovo
3ae4841644 리소스 추가 2025-07-31 12:26:13 +09:00
Jeonghyeon Ha
bed6fdcb96 벽, 문 PBR 시범 적용 2025-07-30 21:18:22 +09:00
Jeonghyeon Ha
63fe837419 셰이더 추가 2025-07-30 20:21:24 +09:00
Jeonghyeon Ha
e2cca37fcb ShaderGraph Sample 2025-07-30 19:44:58 +09:00
Jeonghyeon Ha
d1953d46f1 에셋 정리 및 렌더러 에셋 위치 변경 2025-07-30 19:39:22 +09:00
NTG_Lenovo
6d08ec9252 조리 도구 탭 작업 중 2025-07-30 19:38:12 +09:00
Jeonghyeon Ha
8846f415d8 셰이더그래프 세팅 업데이트 2025-07-30 19:25:32 +09:00
Jeonghyeon Ha
ad6c4f6280 현재 씬과 동일한 씬타입에 있을 경우 로드하지 않음 2025-07-30 19:24:23 +09:00
Jeonghyeon Ha
0c603187c7 렌더러 에셋 위치 변경 2025-07-30 19:23:54 +09:00
Jeonghyeon Ha
f9da2c2a64 Merge branch 'feature/event_default_impl' into feature/env_pbr_enhancement 2025-07-30 19:22:55 +09:00
NTG_Lenovo
cbc1d6982d DataManager 로직 변경 및 구글 시트 데이터 최신화 2025-07-30 18:42:33 +09:00
NTG_Lenovo
0c6ec55470 파일 정리 2025-07-30 16:46:11 +09:00
NTG_Lenovo
a2bb7a9f97 애니메이션 수정 2025-07-30 12:23:38 +09:00
9b9e5c1a9b 메뉴 Ui 2차 완성 2025-07-30 05:57:19 +09:00
4f735d3910 AssetManager 캐시 기능 추가 2025-07-30 03:52:13 +09:00
4b3e6187ff 폴더 정리 2025-07-30 03:18:16 +09:00
13c4f4be7c 메뉴 Ui 1차 완성 2025-07-30 00:56:47 +09:00
2210c9a33f 아틀라스 확장자 lf 추가 2025-07-29 10:17:18 +09:00
NTG_Lenovo
555126662e ui 작업중 2025-07-28 20:33:04 +09:00
NTG_Lenovo
5dde8020ba 현지화 방식 변경 2025-07-28 18:50:50 +09:00
NTG_Lenovo
441964bb68 OnlyAtlas AssetPostprocessors 추가 2025-07-28 16:11:02 +09:00
Jeonghyeon Ha
3d21d47e51 PBR 테스트 2025-07-28 12:01:50 +09:00
698fa977f4 ui 작업중 2025-07-28 07:55:07 +09:00
f01e00c1b4 AssetPostProcessors ui 처리 2025-07-28 07:18:39 +09:00
b836d2db17 tasteDataSo 추가 2025-07-28 06:21:22 +09:00
632ce9c565 구글 시트 데이터 최신화 2025-07-28 06:17:04 +09:00
3d4d0efdfe 구글 시트 매니저 기능 변경
#필드 생성 처리 방지
2025-07-28 06:10:42 +09:00
0630680f5e 에셋 추가 2025-07-28 04:51:20 +09:00
94b361f069 so 네이밍 변경 2025-07-28 04:51:11 +09:00
98354a30a1 디버그 삭제 2025-07-28 04:50:55 +09:00
e3806f23aa 디버그 수정 2025-07-28 04:50:34 +09:00
094984c7ac 현지화 데이터 변경 2025-07-28 04:41:39 +09:00
6c841577f9 구글 시트 -> 유니티 현지화 완전 덮어씌우기로 변경 2025-07-28 04:41:30 +09:00
9fda677d2c RestaurantManagementUi 작업 중 2025-07-28 04:32:41 +09:00
NTG_Lenovo
b575c422cf 누락 데이터 푸쉬 2025-07-25 17:19:11 +09:00
NTG_Lenovo
b6ee7274dd ui 작업 중 2025-07-25 16:58:53 +09:00
NTG_Lenovo
53dd1130d4 구글 시트 데이터 최신화 2025-07-24 17:45:02 +09:00
NTG_Lenovo
fce0c1c131 임시처리 2025-07-24 17:43:39 +09:00
NTG_Lenovo
e4a23dd190 Merge branch 'feature/event_default_impl' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into feature/restaurant_management_ui 2025-07-24 17:41:27 +09:00
NTG_Lenovo
952f993b8d Ui 작업중 2025-07-24 17:41:20 +09:00
NTG_Lenovo
632b8ebb4f 현지화 시스템 캐싱 로직 재수정 2025-07-23 15:14:35 +09:00
NTG_Lenovo
90afe5129a 현지화 시스템 로직 수정
캐싱된 key값 사용으로 변경
2025-07-23 14:47:23 +09:00
NTG_Lenovo
ad6f8fa409 에셋, 메타데이터 추가 2025-07-23 12:27:46 +09:00
NTG_Lenovo
f7615ee54b RestaurantManagementUi 팝업 ui 테스트용 2025-07-23 12:27:34 +09:00
NTG_Lenovo
90c0781796 파일 수정 2025-07-23 12:27:05 +09:00
NTG_Lenovo
bed61d2a0d 레스토랑 플레이어 데이터 변경 2025-07-23 12:26:57 +09:00
NTG_Lenovo
8fb94dc08a 레스토랑 플레이어 키 바인딩 구조 변경 2025-07-23 12:25:33 +09:00
NTG_Lenovo
2b483bf213 키 바인딩 시스템에 맞게 ui 시스템 개편 2025-07-23 12:24:52 +09:00
NTG_Lenovo
7d9c064165 인풋매니저 구조 개선 (키 직접 할당 방식) 2025-07-23 12:23:25 +09:00
Jeonghyeon Ha
59c03a843b 메타데이터 및 자동생성 데이터 추가 2025-07-22 20:15:38 +09:00
Jeonghyeon Ha
6c11c9e801 인터랙션 및 인터랙션 솔버 구조 작성 2025-07-22 20:15:20 +09:00
Jeonghyeon Ha
a54c3cec66 updated addressable 2025-07-22 19:07:52 +09:00
Jeonghyeon Ha
9992341492 GoogleSheetManager - NativeEnum 기능 추가 2025-07-22 19:07:14 +09:00
NTG_Lenovo
7096e82d43 so 생성 이름 변경 2025-07-22 16:58:07 +09:00
NTG_Lenovo
e9f597d5a9 불필요한 클래스 삭제 2025-07-22 16:53:47 +09:00
605e67bb6c Merge pull request 'feature/fix_ui_system' (#16) from feature/fix_ui_system into develop
Reviewed-on: #16
2025-07-22 07:47:23 +00:00
NTG_Lenovo
06001cd4f0 에셋, 메타데이터 추가 2025-07-22 16:46:47 +09:00
NTG_Lenovo
aae35a3563 Ui 시스템 구조 강화 2025-07-22 16:46:37 +09:00
NTG_Lenovo
4d9fd78c3a FadeUi 이벤트 순서 오류 및 동적 할당 오류 수정 2025-07-22 16:46:07 +09:00
NTG_Lenovo
10dbd0dc62 screenUi -> popupUi 통합 2025-07-22 13:09:38 +09:00
NTG_Lenovo
e8a7e1c289 게임 이벤트 정적으로 변경 2025-07-22 12:55:04 +09:00
NTG_Lenovo
7319ee8541 Merge branch 'feature/inventory_system' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into develop
# Conflicts:
#	Assets/_DDD/_Scripts/GameEvent/GameEvents.cs
2025-07-22 12:45:28 +09:00
NTG_Lenovo
ddf744ade4 메타 데이터 추가 2025-07-22 12:38:56 +09:00
NTG_Lenovo
02c675ed3f 이벤트 정적 호출 변경 및 폴더 이동 2025-07-22 12:38:48 +09:00
ddf4d3143a Merge pull request 'feature/ui_system' (#14) from feature/ui_system into develop
Reviewed-on: #14
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-22 03:16:37 +00:00
NTG_Lenovo
cc0459eb33 에셋 및 메타 데이터 추가 2025-07-21 19:51:22 +09:00
NTG_Lenovo
3d54e764bc DDD-64 아이템 인벤토리 시스템 기본 구성 2025-07-21 19:51:11 +09:00
NTG_Lenovo
6d1776cf20 에셋 및 메타 데이터 추가 2025-07-21 16:57:09 +09:00
NTG_Lenovo
d02af59100 Message Ui에서 사용될 현지화 테이블 추가 및 Importer 저장 문제 해결 2025-07-21 16:56:58 +09:00
NTG_Lenovo
5bd780214a Ui관련 게임 이벤트 추가 2025-07-21 16:56:12 +09:00
NTG_Lenovo
5323cccaaf TimeManager 추가 (Ui이벤트 등 연결) 2025-07-21 16:55:51 +09:00
NTG_Lenovo
173944f087 FadeManager 제거 -> FadeUi 단일 Ui로 변경 2025-07-21 16:54:58 +09:00
NTG_Lenovo
35dfe1a080 Ui 기본 구조 추가 2025-07-21 16:53:39 +09:00
NTG_Lenovo
689a4fe095 사용되지 않는 클래스, 에셋 제거 2025-07-21 13:20:31 +09:00
NTG_Lenovo
f0e24f4c43 게임 플로우 변경 (PreInit 추가) 2025-07-21 13:11:38 +09:00
NTG_Lenovo
ffd534cb13 불필요한 Task 재거 2025-07-21 12:09:15 +09:00
1f42e5b7f7 Merge pull request 'feature/localization_system' (#13) from feature/localization_system into develop
Reviewed-on: #13
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-21 03:01:54 +00:00
944a83a896 Merge pull request 'feature/restaurant_state' (#11) from feature/restaurant_state into develop
Reviewed-on: #11
2025-07-21 03:01:39 +00:00
ba5ad6513a Merge pull request 'feature/movement_constraint' (#12) from feature/movement_constraint into develop
Reviewed-on: #12
2025-07-21 03:01:31 +00:00
NTG_Lenovo
da2edd5504 DDD-61 현지화 시스템 에셋 및 meta 데이터 추가 2025-07-17 19:11:33 +09:00
NTG_Lenovo
8ee7d89b0c 현지화 시스템 로직 추가 2025-07-17 19:11:00 +09:00
Jeonghyeon Ha
36cef3e169 DDD-56 인터랙션 인터페이스 추가 2025-07-17 17:55:45 +09:00
Jeonghyeon Ha
ad17db114f updated EventBus 2025-07-17 17:15:40 +09:00
Jeonghyeon Ha
25ffd5e7fe 누락 So 추가 2025-07-17 15:53:58 +09:00
Jeonghyeon Ha
0f0c7019c2 updated metadata 2025-07-17 15:39:00 +09:00
Jeonghyeon Ha
a3cf0c1804 DDD-62 플레이어 무브먼트 컨스트레인 체크 추가 2025-07-17 15:38:50 +09:00
Jeonghyeon Ha
29b5d3db72 DDD-63 updated metadate and prefabs 2025-07-17 15:20:58 +09:00
Jeonghyeon Ha
9bae1b0f41 DDD-63 레스토랑 상태 기반 태스크 및 레스토랑 컨트롤러 2025-07-17 15:20:30 +09:00
929f7ecf55 Merge pull request '레스토랑 플레이어 무브먼트 리팩토링' (#9) from feature/playermovement_refactoring into develop
Reviewed-on: #9
2025-07-17 04:52:28 +00:00
NTG_Lenovo
398df6bb04 rigidbody interpolate 기능 설정 2025-07-17 13:29:09 +09:00
NTG_Lenovo
54e469d796 raycast istrigger 충돌체 무시 코드 추가 2025-07-17 13:28:50 +09:00
NTG_Lenovo
caace28eb8 Merge branch 'develop' of http://gitea.capers.co.kr:3000/iwnc2020/ProjectDDD into feature/playermovement_refactoring 2025-07-17 13:13:34 +09:00
22d5da9d71 Merge pull request 'Sprite Atlas 프로젝트 셋팅 변경' (#10) from feature/sprite_atlas_issue into develop
Reviewed-on: #10
2025-07-17 04:13:12 +00:00
NTG_Lenovo
654228bb87 Sprite Atlas 프로젝트 셋팅 변경 2025-07-17 13:11:53 +09:00
NTG_Lenovo
ebfc5677cd DDD-61 현지화 시스템 기본 구성 중 2025-07-17 12:32:31 +09:00
Jeonghyeon Ha
ae05e4ceda 레스토랑 플레이어 무브먼트 리팩토링 2025-07-17 12:04:09 +09:00
7b62494ad5 Merge pull request 'event_system' (#8) from event_system into develop
Reviewed-on: #8
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-17 02:46:11 +00:00
2564b4be67 Merge pull request 'player_polishing' (#7) from player_polishing into develop
Reviewed-on: #7
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-17 02:45:09 +00:00
d43efed5d7 Merge pull request 'restaurant_world_setting' (#6) from restaurant_world_setting into develop
Reviewed-on: #6
2025-07-17 02:44:15 +00:00
NTG_Lenovo
47ab5d8a0c 레스토랑 플레이어 매직넘버 데이터화 2025-07-17 11:39:10 +09:00
NTG_Lenovo
ddb65d9398 리터럴 제거, 주석 제거 2025-07-17 11:15:19 +09:00
NTG_Lenovo
06d3aaf077 EventBus 패턴 구현 2025-07-16 18:21:12 +09:00
NTG_Lenovo
5c21b07583 누락된 에셋 추가 2025-07-16 18:03:56 +09:00
NTG_Lenovo
b273bc04b4 불필요한 데이터 삭제 및 이동 2025-07-16 17:30:00 +09:00
NTG_Lenovo
4e8fd18a2a 플레이어 로직 변경에 따른 에셋 추가 2025-07-16 17:23:45 +09:00
NTG_Lenovo
ba2ef76e32 플레이어 가속, 감속, 충돌 슬라이딩 기능 추가 2025-07-16 17:22:04 +09:00
NTG_Lenovo
d5f4b54e6b 로직 변경에 따른 에셋 추가 2025-07-16 13:34:12 +09:00
NTG_Lenovo
12ff1ab2b9 Addressable에 SpriteAtlas를 등록해서 Sprite를 받아오는 방식으로 로직 변경 2025-07-16 13:33:47 +09:00
NTG_Lenovo
bcba4f0436 테스트 id 변경 2025-07-15 14:26:18 +09:00
NTG_Lenovo
7e88663e47 flow에 필요한 에셋 추가 2025-07-15 13:48:13 +09:00
NTG_Lenovo
7ddbf3be68 레스토랑 ready flow에서 createEnvironment 로직 추가 2025-07-15 13:48:01 +09:00
NTG_Lenovo
2804b9a240 구글 데이터 변경 2025-07-15 13:46:17 +09:00
NTG_Lenovo
3eeb91bfca 구글 시트 데이터 에셋 추가 2025-07-15 13:01:35 +09:00
NTG_Lenovo
df3341158a 구글 시트 매니저 로직 수정 2025-07-15 12:59:53 +09:00
NTG_Lenovo
c04291fdd4 Addressable path 오류 수정 2025-07-15 10:59:26 +09:00
NTG_Lenovo
e604ded93a Common의 materials Old폴더로 변경 2025-07-14 18:03:57 +09:00
NTG_Lenovo
c85b4f829b 기존에 사용하던 프리팹들 Old 폴더로 변경 2025-07-14 17:56:33 +09:00
NTG_Lenovo
d82596b9ce DDD-53 레스토랑 씬 월드 기본 구성 2025-07-14 17:50:25 +09:00
8e4a6d6118 Merge pull request 'camera_system' (#5) from camera_system into develop
Reviewed-on: #5
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-14 07:10:05 +00:00
NTG_Lenovo
2f125ba73c 로직 변경에 맞게 에셋 추가 2025-07-14 15:38:36 +09:00
NTG_Lenovo
2d123da297 게임 플로우 로직 변경 2025-07-14 15:38:22 +09:00
NTG_Lenovo
c66c9a201e 레스토랑 플레이어 애니메이션 이벤트 연결 2025-07-14 15:37:43 +09:00
NTG_Lenovo
97cf6c1b53 구조 개선에 맞게 에셋 추가 2025-07-14 14:57:29 +09:00
NTG_Lenovo
88604b4489 GameFlow 및 SceneManager 구조 개선 2025-07-14 14:57:10 +09:00
NTG_Lenovo
5edb192b63 Manager 파일 이름 변경 -> IManager 2025-07-14 14:20:20 +09:00
NTG_Lenovo
6e730835b8 카메라 오브젝트 enum 변경에 맞게 씬 수정 2025-07-14 14:14:17 +09:00
NTG_Lenovo
9a7e8f867a 기존 Player 스크립트 제거 2025-07-14 14:11:31 +09:00
NTG_Lenovo
c1ac0130c5 So 네이밍 변경 2025-07-14 14:11:22 +09:00
NTG_Lenovo
510d2a1466 필요없는 씬 제거 및 빌드 씬 관련 프로젝트 설정 변경 2025-07-14 14:09:47 +09:00
NTG_Lenovo
bfb7ccbe4b SpineController 추가, 애니메이션 이벤트로 관리
FlipVisualLook RestaurantPlayerCharacter에서 관리
2025-07-14 14:07:15 +09:00
NTG_Lenovo
5065d1a738 Utilities.Constants 에서 상수들을 따로 관리하는 클래스 추가 2025-07-14 13:39:09 +09:00
NTG_Lenovo
8a2abb5a40 안쓰는 스크립트, 폴더 삭제 2025-07-14 13:35:18 +09:00
NTG_Lenovo
6f7a5e131c 카메라 관리 방식 변경 string -> enum 2025-07-14 13:32:36 +09:00
NTG_Lenovo
ada20f3f91 Script 폴더 내의 에셋들을 ScriptAssets 폴더로 관리 2025-07-14 13:15:15 +09:00
NTG_Lenovo
a805d32f8a DDD-30 SwitchCamera 함수에서 id를 입력받아서 스위칭하는 식으로 변경 2025-07-14 11:10:12 +09:00
762140ed6e Merge pull request 'DDD-32 게임 플로우 매니저 및 씬 매니저 구현' (#4) from global_data_system into develop
Reviewed-on: #4
Reviewed-by: Jeonghyeon <jeonghyeon@capers.co.kr>
2025-07-14 02:04:57 +00:00
23b8a1c6c4 게임 시작 시 PostInit에서 3초 대기 제거 2025-07-14 02:01:59 +00:00
NTG_Lenovo
f76256d49d DDD-18 플레이어 조작 및 게임 플로우 수정 2025-07-11 14:48:49 +09:00
NTG_Lenovo
3d5090d905 DDD-29, 30 카메라 컴포넌트 추가 및 카메라 매니저 구현 2025-07-10 20:06:51 +09:00
NTG_Lenovo
b83e4c3a5e DDD-32 GameFlowManager의 기능 일부SceneManager로 이관 2025-07-10 19:32:01 +09:00
NTG_Lenovo
0a06c10e29 DDD-32 게임 플로우 매니저 및 씬 매니저 구현 2025-07-10 19:18:07 +09:00
c79d37a608 Merge pull request 'global_data_system' (#3) from global_data_system into develop
Reviewed-on: #3
2025-07-10 05:55:21 +00:00
NTG_Lenovo
32cf8177e8 DDD-33 에셋 매니저 구현 2025-07-10 14:48:44 +09:00
NTG_Lenovo
8fd305f106 데이터 구조 설계 중 2025-07-09 18:45:11 +09:00
NTG_Lenovo
a4550f55a1 이미지 누락 수정 2025-07-08 20:01:19 +09:00
2913 changed files with 1780459 additions and 8521 deletions

3
.gitattributes vendored
View File

@ -1,6 +1,5 @@
# --- 기본 텍스트 파일 정규화 ---
* text=auto
# --- C# 및 스크립트 파일 ---
*.cs text diff=csharp
*.shader text
@ -23,6 +22,7 @@
*.renderTexture text merge=union eol=lf
*.timeline text merge=union eol=lf
*.playable text merge=union eol=lf
*.spriteatlasv2 text merge=union eol=lf
# --- Git LFS 관리 대상 바이너리 파일들 ---
# 이미지
*.png filter=lfs diff=lfs merge=lfs -text
@ -70,3 +70,4 @@
*.sln text eol=crlf
*.csproj text
*.asmdef text
*.sbs filter=lfs diff=lfs merge=lfs -text

7
.gitignore vendored
View File

@ -93,8 +93,7 @@ Packages/com.distantlands.cozy.core/Samples~/Legacy Integrations/*.unitypackage.
packages-lock.json
.vscode
# Raw 폴더 전체 무시
#Assets/_Datas/Raw/
# 특정 atlas 파일 무시
#Assets/_Datas/Addressables/Sprites/Items.spriteatlasv2
# Unity SpriteAtlas auto-generated files
Assets/_DDD/_Addressables/Sprites/*
.autosave/

View File

@ -13,5 +13,10 @@ MonoBehaviour:
m_Name: AddressableAssetGroupSortSettings
m_EditorClassIdentifier:
sortOrder:
- fd6e789ea039d544692729b952eba73f
- e05c277fe5b7e264798fbe5a7c9239dc
- 28053bf0e188c634ca1f55c8f2767069
- af2825561e428e54ba49956c3b989420
- ecfcfda897c703f42a3e712e800a04bf
- 30e7f67fe9aaa7849a34c9b6e2bc53ae
- 7fe0c33d351391a45a0ea3c93ecef42e

View File

@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_currentHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
Hash: 7ed6932cd0bcae0a451e84a6b7db6da2
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 1
m_CatalogRequestsTimeout: 0
@ -59,8 +59,13 @@ MonoBehaviour:
m_BuildAddressablesWithPlayerBuild: 0
m_overridePlayerVersion: '[UnityEditor.PlayerSettings.bundleVersion]'
m_GroupAssets:
- {fileID: 11400000, guid: e1b57f580a1df344d80b1073dcfca317, type: 2}
- {fileID: 11400000, guid: 5329bd0c1faf253408343429c6a99b39, type: 2}
- {fileID: 11400000, guid: 5b7b9bd594e863849bf5e512f59ba0fc, type: 2}
- {fileID: 11400000, guid: de41279ce863bfd47bc8c25c6e70d38b, type: 2}
- {fileID: 11400000, guid: aa213c00ab7fb904baa2b0c3d1b90adf, type: 2}
- {fileID: 11400000, guid: 97c26bb69807990449c3b2f9323087a0, type: 2}
- {fileID: 11400000, guid: 9dfa0d89bb3450744b0195c8b19fd072, type: 2}
m_BuildSettings:
m_LogResourceManagerExceptions: 1
m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles
@ -106,6 +111,14 @@ MonoBehaviour:
- Atlas
- Sprite
- So
- Scene
- Material
- Locale
- Locale-ko
- Locale-en
- Locale-ja
- Preload
- AnimatorController
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}

View File

@ -15,20 +15,50 @@ MonoBehaviour:
m_GroupName: GoogleSheetSo_Group
m_GUID: 7fe0c33d351391a45a0ea3c93ecef42e
m_SerializeEntries:
- m_GUID: 3dee12c6902e0644fab1d0e2693857a8
m_Address: ItemSo
- m_GUID: 0384a1dd37d87c94dbe4089d3e7665fb
m_Address: IngredientDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b7e176e1cb8d76941af3b6344a4e1401
m_Address: FoodSo
- m_GUID: 2461248e3c8af814a865a34935d946d5
m_Address: TasteDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f38617ba14522db4d87bb7e10c280a2d
m_Address: MonsterSo
- m_GUID: 5c7c87af5db0e884eb3b979cb1d2188b
m_Address: CookwareDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7446495d3106eff4ab5b0f9d7d97b579
m_Address: DrinkDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7711950f44240644b940e1136ebe15c8
m_Address: RecipeDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8261ff435a6e2484086e02e556c0ba93
m_Address: FoodDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 84f8a3bf287dd904d9ba55d2ded55eb9
m_Address: EnvironmentDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c2be393a39588b647bacdd69f47f677d
m_Address: ItemDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo

View File

@ -1,23 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: GoogleSheetSprite_Group
m_EditorClassIdentifier:
m_GroupName: GoogleSheetSprite_Group
m_GUID: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_SerializeEntries: []
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 7e7c84ad73aefe14a8fe3acef1a1ef70, type: 2}
- {fileID: 11400000, guid: 446e71e39fbb9cc41bd76f6e78ea5347, type: 2}

View File

@ -0,0 +1,177 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Group
m_EditorClassIdentifier:
m_GroupName: Group
m_GUID: 30e7f67fe9aaa7849a34c9b6e2bc53ae
m_SerializeEntries:
- m_GUID: 034ac52b4c3fe854193b7c9c2d353be5
m_Address: Foods
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 077fbb30d2367574db4211e2945acda0
m_Address: TodayMenuSlotUi
m_ReadOnly: 0
m_SerializedLabels:
- AnimatorController
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0912c3de85fd61848a41575faa2794ed
m_Address: CreateEnvironmentSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0e912dc7ded8c2449bc4d0e2bbf1d2bf
m_Address: BaseRestaurantEnvironment
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2007acba03804024a801aee30991e439
m_Address: Ingredients
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 29d0dee3b70fbc44d992ea47012bc366
m_Address: InventoryTestDataSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 29dcda970aef9584d9b157e766b8a278
m_Address: RestaurantPlayer
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2eb88deceda8c443db7ec557aaef30af
m_Address: Entry
m_ReadOnly: 0
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 422e501a9731145439708c6759c8c546
m_Address: Coral_SkeletonData
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 43d183a6e5f0da746b6dbe4b447caa9e
m_Address: RestaurantProps
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 47e757b9a170ab649af14c4d7b80ac41
m_Address: CreateRestaurantPlayerSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 79f90744c9c7ada498ba1ee8c60272d3
m_Address: Common
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 83afdd7c8e0232443a83b09a90d0d3b1
m_Address: InventorySlotUi
m_ReadOnly: 0
m_SerializedLabels:
- AnimatorController
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8c4fcb278b09f944cbfa342ace27fcd4
m_Address: RestaurantManagementSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 91f41ed6ea0600f4abed98cf0bf53bc5
m_Address: Drinks
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 99d3d87bd43df65488e757c43a308f36
m_Address: RestaurantManagementUi_RestaurantUiActions_InputBindingSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a60e7a432b7eb65419f3942f4f422fb4
m_Address: Voyage
m_ReadOnly: 0
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a6e29c94b45be18498c195333e651353
m_Address: RestaurantManagementUi
m_ReadOnly: 0
m_SerializedLabels:
- Atlas
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c6d19267dabc844449cc778f2f03fb34
m_Address: SummerGrass01_SkeletonData
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d11d5cf80be02d7469f07db925af284a
m_Address: TabButtonUi
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ddb0db863be8f254bb8a8f07d39a960e
m_Address: RestaurantPlayerDataSo
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: de073d0136201ac4cbb36dbeb4b76fb2
m_Address: Restaurant
m_ReadOnly: 0
m_SerializedLabels:
- Scene
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e349efbef7b74ce47af461f7985bfdc2
m_Address: ItemSlotUi
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: efc890589b4c46948885cd750384bc6f
m_Address: BasePropSpriteMaterial
m_ReadOnly: 0
m_SerializedLabels:
- Material
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f28a226717a80c9408dc27c756ce6e2f
m_Address: KeySlot
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f9bb25b96d102c34ea2088901e9815df
m_Address: TasteHashTagSlotUi
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ff07d58cdb81fca4f80b04a12d40d7d9
m_Address: CheckListSlot
m_ReadOnly: 0
m_SerializedLabels:
- Prefab
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 7e7c84ad73aefe14a8fe3acef1a1ef70, type: 2}
- {fileID: 11400000, guid: 446e71e39fbb9cc41bd76f6e78ea5347, type: 2}

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-Assets-Shared
m_EditorClassIdentifier:
m_GroupName: Localization-Assets-Shared
m_GUID: fd6e789ea039d544692729b952eba73f
m_SerializeEntries:
- m_GUID: 3e0718b57bd880048bf024a4d639abdf
m_Address: Assets/_DDD/_ScriptAssets/Localization/Item_Taste/Item_Taste Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7ff74e35f1195e9459b036fb9e6d800d
m_Address: Assets/_DDD/_ScriptAssets/Localization/Item_Description/Item_Description
Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a1547fb82effcb847a7246892ab65b3b
m_Address: Assets/_DDD/_ScriptAssets/Localization/Item_Name/Item_Name Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d49dd382fc6ad83479443c229092aaa5
m_Address: Assets/_DDD/_ScriptAssets/Localization/Global_Message/Global_Message
Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 1fd7839e70b6ae64a90f35de9d2f0816, type: 2}
- {fileID: 11400000, guid: c56a00ae7a1522f43ab6deadaf605234, type: 2}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a98ebd2611b2e4e80a867f57fdc91fc9
guid: 9dfa0d89bb3450744b0195c8b19fd072
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -0,0 +1,41 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-Locales
m_EditorClassIdentifier:
m_GroupName: Localization-Locales
m_GUID: e05c277fe5b7e264798fbe5a7c9239dc
m_SerializeEntries:
- m_GUID: 12efb29359fb52b46bd231795abcf40f
m_Address: Korean (ko)
m_ReadOnly: 1
m_SerializedLabels:
- Locale
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5500d23f1f54da1469311b91b05000b0
m_Address: Japanese (ja)
m_ReadOnly: 1
m_SerializedLabels:
- Locale
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 74e2f2bb5b2eb284aa50c71bc0e602b0
m_Address: English (en)
m_ReadOnly: 1
m_SerializedLabels:
- Locale
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 2c0a96693e2d52c4e817ba256542b053, type: 2}
- {fileID: 11400000, guid: f6b12b9a1f788d345a122bd53fb8c854, type: 2}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b7e176e1cb8d76941af3b6344a4e1401
guid: aa213c00ab7fb904baa2b0c3d1b90adf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-String-Tables-English (en)
m_EditorClassIdentifier:
m_GroupName: Localization-String-Tables-English (en)
m_GUID: 28053bf0e188c634ca1f55c8f2767069
m_SerializeEntries:
- m_GUID: 0f43ff9604eb3e243b5194e61c362db1
m_Address: Item_Name_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1511b37b38652d24599de07509c79647
m_Address: Item_Taste_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 18379b0c354761040aaeb849df8cbabd
m_Address: Item_Description_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9693f4924a4737c47999c647fa717b5f
m_Address: Global_Message_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: a6ebe5e594db22c47a5ec57d4e9d5561, type: 2}
- {fileID: 11400000, guid: e2dbc665bf8d9ab4996582b40556fdd4, type: 2}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3dee12c6902e0644fab1d0e2693857a8
guid: e1b57f580a1df344d80b1073dcfca317
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-String-Tables-Japanese (ja)
m_EditorClassIdentifier:
m_GroupName: Localization-String-Tables-Japanese (ja)
m_GUID: af2825561e428e54ba49956c3b989420
m_SerializeEntries:
- m_GUID: 4aaf7e37b547cd64b9dc75dad1012884
m_Address: Item_Description_ja
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 99a51138544ab6347ab4160b20de9c00
m_Address: Global_Message_ja
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9a79f84fff1ffd544bfe25d4ca113cf8
m_Address: Item_Name_ja
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9e8ab3df51092aa459aa46a84e1765ee
m_Address: Item_Taste_ja
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 507c24bd9b6167c46be04b2d03a7afdc, type: 2}
- {fileID: 11400000, guid: 2f9b8913cc7c497429f8d9b742e2248d, type: 2}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f38617ba14522db4d87bb7e10c280a2d
guid: de41279ce863bfd47bc8c25c6e70d38b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-String-Tables-Korean (ko)
m_EditorClassIdentifier:
m_GroupName: Localization-String-Tables-Korean (ko)
m_GUID: ecfcfda897c703f42a3e712e800a04bf
m_SerializeEntries:
- m_GUID: 0dd986e516ee3594b886e2bf295eb6cf
m_Address: Item_Taste_ko
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ko
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7702cc2653c9dd440affa8484a2ac07e
m_Address: Global_Message_ko
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ko
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c04c3cfa9e0213d46850ff7ada3c6405
m_Address: Item_Name_ko
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ko
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e33b8f7778cf1ef46aecaf3e16ebb54c
m_Address: Item_Description_ko
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ko
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: d12ffbb6f886d48418efb0b6d15ccb88, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 0ae4285925d53be4b9c79fbdbe6fd83f, type: 2}
- {fileID: 11400000, guid: 13d50d1ad4c80aa489b2b5d0bfbd0a43, type: 2}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 97c26bb69807990449c3b2f9323087a0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: GoogleSheetSprite_Group_BundledAssetGroupSchema
m_Name: Group_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 5329bd0c1faf253408343429c6a99b39, type: 2}
m_InternalBundleIdMode: 1

View File

@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: GoogleSheetSprite_Group_ContentUpdateGroupSchema
m_Name: Group_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 5329bd0c1faf253408343429c6a99b39, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-Assets-Shared_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 9dfa0d89bb3450744b0195c8b19fd072, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 30b8e03fd76b09f46850a05b2650884d
m_LoadPath:
m_Id: 7852182deca226a488adf0342a6f6c9a
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 1
m_AssetLoadMode: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1fd7839e70b6ae64a90f35de9d2f0816
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -9,19 +9,8 @@ MonoBehaviour:
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7e1500a3fc388674fa8ef2759d5d1c95, type: 3}
m_Name: MonsterSo
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-Assets-Shared_ContentUpdateGroupSchema
m_EditorClassIdentifier:
MonsterList:
- Id: Test001
Name: A
T1: 1
- Id: Test002
Name: B
T1: 2
- Id: Test003
Name: C
T1: 3
- Id: Test004
Name: D
T1: 4
m_Group: {fileID: 11400000, guid: 9dfa0d89bb3450744b0195c8b19fd072, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c56a00ae7a1522f43ab6deadaf605234
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-Locales_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: aa213c00ab7fb904baa2b0c3d1b90adf, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 30b8e03fd76b09f46850a05b2650884d
m_LoadPath:
m_Id: 7852182deca226a488adf0342a6f6c9a
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 1
m_AssetLoadMode: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2c0a96693e2d52c4e817ba256542b053
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-Locales_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: aa213c00ab7fb904baa2b0c3d1b90adf, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f6b12b9a1f788d345a122bd53fb8c854
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-String-Tables-English (en)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: e1b57f580a1df344d80b1073dcfca317, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 30b8e03fd76b09f46850a05b2650884d
m_LoadPath:
m_Id: 7852182deca226a488adf0342a6f6c9a
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 1
m_AssetLoadMode: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a6ebe5e594db22c47a5ec57d4e9d5561
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-String-Tables-English (en)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: e1b57f580a1df344d80b1073dcfca317, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e2dbc665bf8d9ab4996582b40556fdd4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-String-Tables-Japanese (ja)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: de41279ce863bfd47bc8c25c6e70d38b, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 30b8e03fd76b09f46850a05b2650884d
m_LoadPath:
m_Id: 7852182deca226a488adf0342a6f6c9a
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 1
m_AssetLoadMode: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 507c24bd9b6167c46be04b2d03a7afdc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-String-Tables-Japanese (ja)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: de41279ce863bfd47bc8c25c6e70d38b, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2f9b8913cc7c497429f8d9b742e2248d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-String-Tables-Korean (ko)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 97c26bb69807990449c3b2f9323087a0, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 30b8e03fd76b09f46850a05b2650884d
m_LoadPath:
m_Id: 7852182deca226a488adf0342a6f6c9a
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_UseDefaultSchemaSettings: 0
m_SelectedPathPairIndex: 0
m_BundleNaming: 1
m_AssetLoadMode: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0ae4285925d53be4b9c79fbdbe6fd83f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-String-Tables-Korean (ko)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 97c26bb69807990449c3b2f9323087a0, type: 2}
m_StaticContent: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 13d50d1ad4c80aa489b2b5d0bfbd0a43
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b3c3d746a157af64695657762823e7cb
guid: 7ddc9a444b5824bcc9421fef5212845b
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -15,7 +15,7 @@ MonoBehaviour:
rulesEnabled: 1
allowGroupCreation: 1
rules:
- path: Assets/_Datas/Addressables/(?<category>[^/]+)/(?<asset>.*)\.spriteatlasv2
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.spriteatlasv2
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
@ -26,7 +26,7 @@ MonoBehaviour:
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_Datas/Addressables/(?<category>[^/]+)/(?<asset>.*)\.prefab
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.prefab
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
@ -37,7 +37,7 @@ MonoBehaviour:
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_Datas/Addressables/(?<category>[^/]+)/(?<asset>.*)\.png
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.png
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
@ -48,14 +48,46 @@ MonoBehaviour:
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_Datas/Addressables/(?<category>[^/]+)/(?<asset>.*)\.asset
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.asset
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels: []
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.unity
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels:
- So
- Scene
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.mat
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels:
- Material
LabelMode: 1
simplified: 0
addressReplacement: ${asset}
- path: Assets/_DDD/_Addressables/.*/(?<asset>.*)\.controller
matchType: 1
groupName:
groupTemplate: {fileID: 11400000, guid: f804fe78e7005554f9ba60273aade35b, type: 2}
groupTemplateApplicationMode: 0
labelRefs: []
dynamicLabels:
- AnimatorController
LabelMode: 1
simplified: 0
addressReplacement: ${asset}

View File

@ -1,963 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &258753385772826042
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5280945432137094137}
m_Layer: 0
m_Name: CinemachineCameras
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5280945432137094137
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 258753385772826042}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3417753514894892473}
- {fileID: 2993592665475887429}
- {fileID: 9101347620823304471}
- {fileID: 4498532076256692955}
- {fileID: 3872803206768363411}
- {fileID: 424525070842800962}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1399409491643257879
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 424525070842800962}
- component: {fileID: 3741436788799057641}
- component: {fileID: 2091984449051004701}
- component: {fileID: 1759013958658073954}
m_Layer: 0
m_Name: FavorabilityConfiner02
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &424525070842800962
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1399409491643257879}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -700, y: 1.5, z: -5}
m_LocalScale: {x: 6.5, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3741436788799057641
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1399409491643257879}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &2091984449051004701
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1399409491643257879}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1759013958658073954
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1399409491643257879}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0.25, z: 0.5}
--- !u!1 &1851567781837438493
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4498532076256692955}
- component: {fileID: 5114046926123711169}
- component: {fileID: 3246232290853291449}
- component: {fileID: 4159505730507518888}
m_Layer: 0
m_Name: FavorabilityConfiner01
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4498532076256692955
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1851567781837438493}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -600, y: 1.5, z: -5}
m_LocalScale: {x: 6.5, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5114046926123711169
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1851567781837438493}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3246232290853291449
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1851567781837438493}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &4159505730507518888
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1851567781837438493}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0.25, z: 0.5}
--- !u!1 &3015334612539596982
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3417753514894892473}
- component: {fileID: 6081101986301835619}
- component: {fileID: 5019153103860828927}
- component: {fileID: 3688312069452880174}
- component: {fileID: 6463147863012176903}
- component: {fileID: 3956599978364099181}
m_Layer: 0
m_Name: BaseCamera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3417753514894892473
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: 0.46, y: 7.4278765, z: -16.600447}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
--- !u!114 &6081101986301835619
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
m_Name:
m_EditorClassIdentifier:
Priority:
Enabled: 1
m_Value: 1
OutputChannel: 1
StandbyUpdate: 2
m_StreamingVersion: 20241001
m_LegacyPriority: 0
Target:
TrackingTarget: {fileID: 0}
LookAtTarget: {fileID: 0}
CustomLookAtTarget: 1
Lens:
FieldOfView: 60
OrthographicSize: 15.39
NearClipPlane: 0.01
FarClipPlane: 300
Dutch: 0
ModeOverride: 2
PhysicalProperties:
GateFit: 2
SensorSize: {x: 1, y: 1}
LensShift: {x: 0, y: 0}
FocusDistance: 10
Iso: 200
ShutterSpeed: 0.005
Aperture: 16
BladeCount: 5
Curvature: {x: 2, y: 11}
BarrelClipping: 0.25
Anamorphism: 0
BlendHint: 0
--- !u!114 &5019153103860828927
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 886251e9a18ece04ea8e61686c173e1b, type: 3}
m_Name:
m_EditorClassIdentifier:
CameraDistance: 10
DeadZoneDepth: 0
Composition:
ScreenPosition: {x: 0, y: 0}
DeadZone:
Enabled: 1
Size: {x: 0, y: 0}
HardLimits:
Enabled: 1
Size: {x: 0.8, y: 0.8}
Offset: {x: 0, y: 0}
CenterOnActivate: 1
TargetOffset: {x: 0, y: 1, z: 0}
Damping: {x: 0, y: 0, z: 0}
Lookahead:
Enabled: 0
Time: 0
Smoothing: 0
IgnoreY: 0
--- !u!114 &3688312069452880174
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 00b2d199b96b516448144ab30fb26aed, type: 3}
m_Name:
m_EditorClassIdentifier:
ApplyAfter: 2
ChannelMask: 1
Gain: 1
Use2DDistance: 0
UseCameraSpace: 1
ReactionSettings:
m_SecondaryNoise: {fileID: 0}
AmplitudeGain: 1
FrequencyGain: 1
Duration: 1
m_NoiseOffsets: {x: 0, y: 0, z: 0}
--- !u!114 &6463147863012176903
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 180ecf9b41d478f468eb3e9083753217, type: 3}
m_Name:
m_EditorClassIdentifier:
ImpulseDefinition:
ImpulseChannel: 1
ImpulseShape: 2
CustomImpulseShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
ImpulseDuration: 0.1
ImpulseType: 3
DissipationRate: 0.25
RawSignal: {fileID: 11400000, guid: 69ce8388f6785dd4c8c39915efece2f4, type: 2}
AmplitudeGain: 1
FrequencyGain: 1
RepeatMode: 0
Randomize: 1
TimeEnvelope:
AttackShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
DecayShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
AttackTime: 0
SustainTime: 0.2
DecayTime: 0.7
ScaleWithImpact: 1
HoldForever: 0
ImpactRadius: 100
DirectionMode: 0
DissipationMode: 2
DissipationDistance: 100
PropagationSpeed: 343
DefaultVelocity: {x: 0, y: -1, z: 0}
--- !u!114 &3956599978364099181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3015334612539596982}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d75924d76b05344aa410607bc57db98, type: 3}
m_Name:
m_EditorClassIdentifier:
BoundingVolume: {fileID: 7616611601100776538}
SlowingDistance: 0
--- !u!1 &5666707408206032765
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3872803206768363411}
- component: {fileID: 1091547984251894149}
- component: {fileID: 176693043332870689}
- component: {fileID: 2490158901784685334}
- component: {fileID: 8655929703897222507}
- component: {fileID: 3874106422436459894}
m_Layer: 0
m_Name: FavorabilityCamera02
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3872803206768363411
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.46, y: 0, z: -11.94}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1091547984251894149
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
m_Name:
m_EditorClassIdentifier:
Priority:
Enabled: 1
m_Value: 0
OutputChannel: 1
StandbyUpdate: 2
m_StreamingVersion: 20241001
m_LegacyPriority: 0
Target:
TrackingTarget: {fileID: 0}
LookAtTarget: {fileID: 0}
CustomLookAtTarget: 1
Lens:
FieldOfView: 60
OrthographicSize: 15.39
NearClipPlane: 0.01
FarClipPlane: 300
Dutch: 0
ModeOverride: 2
PhysicalProperties:
GateFit: 2
SensorSize: {x: 1, y: 1}
LensShift: {x: 0, y: 0}
FocusDistance: 10
Iso: 200
ShutterSpeed: 0.005
Aperture: 16
BladeCount: 5
Curvature: {x: 2, y: 11}
BarrelClipping: 0.25
Anamorphism: 0
BlendHint: 0
--- !u!114 &176693043332870689
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 886251e9a18ece04ea8e61686c173e1b, type: 3}
m_Name:
m_EditorClassIdentifier:
CameraDistance: 3
DeadZoneDepth: 0
Composition:
ScreenPosition: {x: 0, y: 0}
DeadZone:
Enabled: 0
Size: {x: 0.2, y: 0.2}
HardLimits:
Enabled: 0
Size: {x: 0.8, y: 0.8}
Offset: {x: 0, y: 0}
CenterOnActivate: 1
TargetOffset: {x: 0, y: 0, z: 0}
Damping: {x: 0, y: 0, z: 0}
Lookahead:
Enabled: 0
Time: 0
Smoothing: 0
IgnoreY: 0
--- !u!114 &2490158901784685334
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 00b2d199b96b516448144ab30fb26aed, type: 3}
m_Name:
m_EditorClassIdentifier:
ApplyAfter: 2
ChannelMask: 1
Gain: 1
Use2DDistance: 0
UseCameraSpace: 1
ReactionSettings:
m_SecondaryNoise: {fileID: 0}
AmplitudeGain: 1
FrequencyGain: 1
Duration: 1
m_NoiseOffsets: {x: 0, y: 0, z: 0}
--- !u!114 &8655929703897222507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 180ecf9b41d478f468eb3e9083753217, type: 3}
m_Name:
m_EditorClassIdentifier:
ImpulseDefinition:
ImpulseChannel: 1
ImpulseShape: 2
CustomImpulseShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
ImpulseDuration: 0.1
ImpulseType: 3
DissipationRate: 0.25
RawSignal: {fileID: 11400000, guid: 69ce8388f6785dd4c8c39915efece2f4, type: 2}
AmplitudeGain: 1
FrequencyGain: 1
RepeatMode: 0
Randomize: 1
TimeEnvelope:
AttackShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
DecayShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
AttackTime: 0
SustainTime: 0.2
DecayTime: 0.7
ScaleWithImpact: 1
HoldForever: 0
ImpactRadius: 100
DirectionMode: 0
DissipationMode: 2
DissipationDistance: 100
PropagationSpeed: 343
DefaultVelocity: {x: 0, y: -1, z: 0}
--- !u!114 &3874106422436459894
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5666707408206032765}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d75924d76b05344aa410607bc57db98, type: 3}
m_Name:
m_EditorClassIdentifier:
BoundingVolume: {fileID: 1759013958658073954}
SlowingDistance: 0
--- !u!1 &8099051105394480214
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2993592665475887429}
- component: {fileID: 9168805733832927465}
- component: {fileID: 8741925650167915769}
- component: {fileID: 7616611601100776538}
m_Layer: 0
m_Name: RestaurantConfiner
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2993592665475887429
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8099051105394480214}
serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: 1.39, y: 10.14, z: -18.37}
m_LocalScale: {x: 1, y: 1, z: 0}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0}
--- !u!33 &9168805733832927465
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8099051105394480214}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &8741925650167915769
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8099051105394480214}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &7616611601100776538
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8099051105394480214}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0.25, z: 0.5}
--- !u!1 &9144536868628880732
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9101347620823304471}
- component: {fileID: 7925743883516488271}
- component: {fileID: 6386630335796914625}
- component: {fileID: 6820439003877352298}
- component: {fileID: 1175509414232144639}
- component: {fileID: 8009384721736740101}
m_Layer: 0
m_Name: FavorabilityCamera01
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9101347620823304471
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.46, y: 0, z: -11.94}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5280945432137094137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7925743883516488271
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
m_Name:
m_EditorClassIdentifier:
Priority:
Enabled: 1
m_Value: 0
OutputChannel: 1
StandbyUpdate: 2
m_StreamingVersion: 20241001
m_LegacyPriority: 0
Target:
TrackingTarget: {fileID: 0}
LookAtTarget: {fileID: 0}
CustomLookAtTarget: 1
Lens:
FieldOfView: 60
OrthographicSize: 15.39
NearClipPlane: 0.01
FarClipPlane: 300
Dutch: 0
ModeOverride: 2
PhysicalProperties:
GateFit: 2
SensorSize: {x: 1, y: 1}
LensShift: {x: 0, y: 0}
FocusDistance: 10
Iso: 200
ShutterSpeed: 0.005
Aperture: 16
BladeCount: 5
Curvature: {x: 2, y: 11}
BarrelClipping: 0.25
Anamorphism: 0
BlendHint: 0
--- !u!114 &6386630335796914625
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 886251e9a18ece04ea8e61686c173e1b, type: 3}
m_Name:
m_EditorClassIdentifier:
CameraDistance: 3
DeadZoneDepth: 0
Composition:
ScreenPosition: {x: 0, y: 0}
DeadZone:
Enabled: 0
Size: {x: 0.2, y: 0.2}
HardLimits:
Enabled: 0
Size: {x: 0.8, y: 0.8}
Offset: {x: 0, y: 0}
CenterOnActivate: 1
TargetOffset: {x: 0, y: 0, z: 0}
Damping: {x: 0, y: 0, z: 0}
Lookahead:
Enabled: 0
Time: 0
Smoothing: 0
IgnoreY: 0
--- !u!114 &6820439003877352298
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 00b2d199b96b516448144ab30fb26aed, type: 3}
m_Name:
m_EditorClassIdentifier:
ApplyAfter: 2
ChannelMask: 1
Gain: 1
Use2DDistance: 0
UseCameraSpace: 1
ReactionSettings:
m_SecondaryNoise: {fileID: 0}
AmplitudeGain: 1
FrequencyGain: 1
Duration: 1
m_NoiseOffsets: {x: 0, y: 0, z: 0}
--- !u!114 &1175509414232144639
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 180ecf9b41d478f468eb3e9083753217, type: 3}
m_Name:
m_EditorClassIdentifier:
ImpulseDefinition:
ImpulseChannel: 1
ImpulseShape: 2
CustomImpulseShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
ImpulseDuration: 0.1
ImpulseType: 3
DissipationRate: 0.25
RawSignal: {fileID: 11400000, guid: 69ce8388f6785dd4c8c39915efece2f4, type: 2}
AmplitudeGain: 1
FrequencyGain: 1
RepeatMode: 0
Randomize: 1
TimeEnvelope:
AttackShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
DecayShape:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
AttackTime: 0
SustainTime: 0.2
DecayTime: 0.7
ScaleWithImpact: 1
HoldForever: 0
ImpactRadius: 100
DirectionMode: 0
DissipationMode: 2
DissipationDistance: 100
PropagationSpeed: 343
DefaultVelocity: {x: 0, y: -1, z: 0}
--- !u!114 &8009384721736740101
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9144536868628880732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4d75924d76b05344aa410607bc57db98, type: 3}
m_Name:
m_EditorClassIdentifier:
BoundingVolume: {fileID: 4159505730507518888}
SlowingDistance: 0

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8c6253a415257994bbbe372aad7f1a33
guid: 0d6b6e0b91d0d49e9bcb6e6be066ee9e
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2795dd42be3500745ad7932d0aecc438
guid: 7223f0a1d441b43e4a878b026a328e20
folderAsset: yes
DefaultImporter:
externalObjects: {}

BIN
Assets/ExternalResources/Substance/sprite_to_pbr.sbs (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 99c9720ab356a0642a771bea13969a05
guid: e320bde0dc9de4010b5e7778fd620e7a
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,361 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5574617127821673956
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1849900422445597553}
- component: {fileID: 2948334477632440266}
- component: {fileID: 6507771935240846504}
m_Layer: 0
m_Name: UiCamera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1849900422445597553
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5574617127821673956}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2423743769255920818}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &2948334477632440266
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5574617127821673956}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 4
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.01
far clip plane: 300
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 32
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!114 &6507771935240846504
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5574617127821673956}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 1
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!1 &7727113593216724847
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2423743769255920818}
- component: {fileID: 6008054305768097179}
- component: {fileID: 2987331736261580458}
- component: {fileID: 2452097276729338941}
- component: {fileID: 4486147806006301901}
- component: {fileID: 3221727036937652292}
- component: {fileID: 2197148195609688218}
- component: {fileID: 1476729262720757075}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2423743769255920818
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: 0.8899999, y: 9.948489, z: -18.530699}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1849900422445597553}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 9.569, y: 87.98, z: 0}
--- !u!20 &6008054305768097179
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.01
far clip plane: 300
field of view: 60
orthographic: 0
orthographic size: 15.39
m_Depth: 1
m_CullingMask:
serializedVersion: 2
m_Bits: 2148138967
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!124 &2987331736261580458
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
--- !u!81 &2452097276729338941
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
--- !u!114 &4486147806006301901
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras:
- {fileID: 0}
- {fileID: 2948334477632440266}
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 8
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 1
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!114 &3221727036937652292
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
m_Name:
m_EditorClassIdentifier:
ShowDebugText: 0
ShowCameraFrustum: 1
IgnoreTimeScale: 0
WorldUpOverride: {fileID: 0}
ChannelMask: -1
UpdateMethod: 0
BlendUpdateMethod: 1
LensModeOverride:
Enabled: 1
DefaultMode: 2
DefaultBlend:
Style: 6
Time: 1
CustomCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
CustomBlends: {fileID: 0}
--- !u!114 &2197148195609688218
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a856a42a0bf4a7444a3efb5466fc1d4c, type: 3}
m_Name:
m_EditorClassIdentifier:
_persistent: 0
<MainCamera>k__BackingField: {fileID: 6008054305768097179}
<UiCamera>k__BackingField: {fileID: 2948334477632440266}
<LiquidOverlayCamera>k__BackingField: {fileID: 0}
cameraLocation: {fileID: 0}
<BaseCamera>k__BackingField: {fileID: 0}
<FavorabilityCamera01>k__BackingField: {fileID: 0}
<FavorabilityCamera02>k__BackingField: {fileID: 0}
_confinerCollider: {fileID: 0}
_transparencySortAxis: {x: 0, y: 0, z: 0}
_cameraDistance: {x: 3, y: 10}
_initializedDistance: 5
_zoomPower: 0.5
_zoomLerpSpeed: 5
_zoomOutConfinerScale: {x: 1, y: 1, z: 0}
_zoomInConfinerScale: {x: 10, y: 10, z: 10}
--- !u!114 &1476729262720757075
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7727113593216724847}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dec61aec08a92c54282e06819b88a31c, type: 3}
m_Name:
m_EditorClassIdentifier:
_cameras:
- {fileID: 6008054305768097179}
- {fileID: 2948334477632440266}
- {fileID: 0}
_canvasRectTransforms:
- {fileID: 0}
- {fileID: 0}

View File

@ -1,3 +0,0 @@
{
"Tiles": []
}

View File

@ -0,0 +1,759 @@
#if UNITY_EDITOR
using System.Linq;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.Rendering;
[CanEditMultipleObjects]
public class AllIn1SpriteShaderUiMask2MaterialInspector : ShaderGUI
{
private Material targetMat;
private BlendMode srcMode, dstMode;
private GUIStyle propertiesStyle, bigLabelStyle, smallLabelStyle, toggleButtonStyle;
private const int bigFontSize = 16, smallFontSize = 11;
private string[] oldKeyWords;
private int effectCount = 1;
private Material originalMaterialCopy;
private MaterialEditor matEditor;
private MaterialProperty[] matProperties;
private uint[] materialDrawers = new uint[] { 1, 2, 4 };
bool[] currEnabledDrawers;
private const uint advancedConfigDrawer = 0;
private const uint colorFxShapeDrawer = 1;
private const uint uvFxShapeDrawer = 2;
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
matEditor = materialEditor;
matProperties = properties;
targetMat = materialEditor.target as Material;
effectCount = 1;
oldKeyWords = targetMat.shaderKeywords;
propertiesStyle = new GUIStyle(EditorStyles.helpBox);
propertiesStyle.margin = new RectOffset(0, 0, 0, 0);
bigLabelStyle = new GUIStyle(EditorStyles.boldLabel);
bigLabelStyle.fontSize = bigFontSize;
smallLabelStyle = new GUIStyle(EditorStyles.boldLabel);
smallLabelStyle.fontSize = smallFontSize;
toggleButtonStyle = new GUIStyle(GUI.skin.button) { alignment = TextAnchor.MiddleCenter, richText = true };
currEnabledDrawers = new bool[materialDrawers.Length];
uint iniDrawers = (uint)ShaderGUI.FindProperty("_EditorDrawers", matProperties).floatValue;
for(int i = 0; i < materialDrawers.Length; i++) currEnabledDrawers[i] = (materialDrawers[i] & iniDrawers) > 0;
GUILayout.Label("General Properties", bigLabelStyle);
DrawProperty(0);
DrawProperty(1);
DrawProperty(2);
currEnabledDrawers[advancedConfigDrawer] = GUILayout.Toggle(currEnabledDrawers[advancedConfigDrawer], new GUIContent("<size=12>Show Advanced Configuration</size>"), toggleButtonStyle);
if(currEnabledDrawers[advancedConfigDrawer])
{
EditorGUILayout.BeginVertical(propertiesStyle);
Blending();
DrawLine(Color.grey, 1, 3);
SpriteAtlas("Sprite inside an atlas?", "ATLAS_ON");
DrawLine(Color.grey, 1, 3);
materialEditor.EnableInstancingField();
DrawLine(Color.grey, 1, 3);
materialEditor.RenderQueueField();
EditorGUILayout.EndVertical();
}
EditorGUILayout.Separator();
DrawLine(Color.grey, 1, 3);
GUILayout.Label("Color Effects", bigLabelStyle);
currEnabledDrawers[colorFxShapeDrawer] = GUILayout.Toggle(currEnabledDrawers[colorFxShapeDrawer], new GUIContent("Show Color Effects"), toggleButtonStyle);
if(currEnabledDrawers[colorFxShapeDrawer])
{
Glow("Glow", "GLOW_ON");
GenericEffect("Fade", "FADE_ON", 7, 13);
Outline("Outline", "OUTBASE_ON");
GenericEffect("Alpha Outline", "ALPHAOUTLINE_ON", 26, 30, true, "A more performant but less flexible outline");
InnerOutline("Inner Outline", "INNEROUTLINE_ON", 66, 69);
Gradient("Gradient & Radial Gradient", "GRADIENT_ON");
GenericEffect("Color Swap", "COLORSWAP_ON", 36, 42, true, "You will need a mask texture (see Documentation)", new int[] { 154 });
GenericEffect("Hue Shift", "HSV_ON", 43, 45);
ColorChange("Change 1 Color", "CHANGECOLOR_ON");
ColorRamp("Color Ramp", "COLORRAMP_ON");
GenericEffect("Hit Effect", "HITEFFECT_ON", 46, 48);
GenericEffect("Negative", "NEGATIVE_ON", 49, 49);
GenericEffect("Pixelate", "PIXELATE_ON", 50, 50, true, "Looks bad with distorition effects");
GreyScale("GreyScale", "GREYSCALE_ON");
Posterize("Posterize", "POSTERIZE_ON");
Blur("Blur", "BLUR_ON");
GenericEffect("Motion Blur", "MOTIONBLUR_ON", 62, 63);
GenericEffect("Ghost", "GHOST_ON", 64, 65, true, "This effect will not affect the outline", new int[] { 157 });
GenericEffect("Hologram", "HOLOGRAM_ON", 73, 77, true, null, new int[] { 140, 158 });
GenericEffect("Chromatic Aberration", "CHROMABERR_ON", 78, 79);
GenericEffect("Glitch", "GLITCH_ON", 80, 80, true, null, new int[] { 139 });
GenericEffect("Flicker", "FLICKER_ON", 81, 83);
GenericEffect("Shadow", "SHADOW_ON", 84, 87);
GenericEffect("Shine", "SHINE_ON", 133, 138);
GenericEffect("Contrast & Brightness", "CONTRAST_ON", 152, 153);
Overlay("Overlay Texture", "OVERLAY_ON");
GenericEffect("Alpha Cutoff", "ALPHACUTOFF_ON", 70, 70);
GenericEffect("Alpha Round", "ALPHAROUND_ON", 144, 144);
}
DrawLine(Color.grey, 1, 3);
GUILayout.Label("UV Effects", bigLabelStyle);
currEnabledDrawers[uvFxShapeDrawer] = GUILayout.Toggle(currEnabledDrawers[uvFxShapeDrawer], new GUIContent("Show Alpha Effects"), toggleButtonStyle);
if(currEnabledDrawers[uvFxShapeDrawer])
{
GenericEffect("Hand Drawn", "DOODLE_ON", 88, 89);
Grass("Grass Movement / Wind", "WIND_ON");
GenericEffect("Wave", "WAVEUV_ON", 94, 98);
GenericEffect("Round Wave", "ROUNDWAVEUV_ON", 127, 128);
GenericEffect("Rect Size (Enable wireframe to see result)", "RECTSIZE_ON", 99, 99, true, "Only on single sprites spritesheets NOT supported");
GenericEffect("Offset", "OFFSETUV_ON", 100, 101);
GenericEffect("Clipping / Fill Amount", "CLIPPING_ON", 102, 105);
GenericEffect("Radial Clipping / Radial Fill", "RADIALCLIPPING_ON", 164, 166);
GenericEffect("Texture Scroll", "TEXTURESCROLL_ON", 106, 107, true, "Set Texture Wrap Mode to Repeat");
GenericEffect("Zoom", "ZOOMUV_ON", 108, 108);
GenericEffect("Distortion", "DISTORT_ON", 109, 112);
GenericEffect("Warp Distortion", "WARP_ON", 167, 169);
GenericEffect("Twist", "TWISTUV_ON", 113, 116);
GenericEffect("Rotate", "ROTATEUV_ON", 117, 117, true, "_Tip_ Use Clipping effect to avoid possible undesired parts");
GenericEffect("Polar Coordinates (Tile texture for good results)", "POLARUV_ON", -1, -1);
GenericEffect("Fish Eye", "FISHEYE_ON", 118, 118);
GenericEffect("Pinch", "PINCH_ON", 119, 119);
GenericEffect("Shake", "SHAKEUV_ON", 120, 122);
}
SetAndSaveEnabledDrawers(iniDrawers);
}
private void SetAndSaveEnabledDrawers(uint iniDrawers)
{
uint currDrawers = 0;
for(int i = 0; i < currEnabledDrawers.Length; i++)
{
if(currEnabledDrawers[i]) currDrawers |= materialDrawers[i];
}
if(iniDrawers != currDrawers) ShaderGUI.FindProperty("_EditorDrawers", matProperties).floatValue = currDrawers;
}
private void Blending()
{
MaterialProperty srcM = ShaderGUI.FindProperty("_MySrcMode", matProperties);
MaterialProperty dstM = ShaderGUI.FindProperty("_MyDstMode", matProperties);
if(srcM.floatValue == 0 && dstM.floatValue == 0)
{
srcM.floatValue = 5;
dstM.floatValue = 10;
}
GUILayout.Label("Look for 'ShaderLab: Blending' if you don't know what this is", smallLabelStyle);
if(GUILayout.Button("Back To Default Blending"))
{
srcM.floatValue = 5;
dstM.floatValue = 10;
targetMat.DisableKeyword("PREMULTIPLYALPHA_ON");
}
srcMode = (BlendMode)srcM.floatValue;
dstMode = (BlendMode)dstM.floatValue;
srcMode = (BlendMode)EditorGUILayout.EnumPopup("SrcMode", srcMode);
dstMode = (BlendMode)EditorGUILayout.EnumPopup("DstMode", dstMode);
srcM.floatValue = (float)(srcMode);
dstM.floatValue = (float)(dstMode);
bool ini = oldKeyWords.Contains("PREMULTIPLYALPHA_ON");
bool toggle = EditorGUILayout.Toggle("Premultiply Alpha?", ini);
if(ini != toggle) Save();
if(toggle) targetMat.EnableKeyword("PREMULTIPLYALPHA_ON");
else targetMat.DisableKeyword("PREMULTIPLYALPHA_ON");
}
private void SpriteAtlas(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
toggle = GUILayout.Toggle(toggle, inspector);
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword(keyword);
EditorGUILayout.BeginVertical(propertiesStyle);
{
GUILayout.Label("Make sure SpriteAtlasUV component is added \n " +
"*Check documentation if unsure what this does or how it works", smallLabelStyle);
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword(keyword);
}
private void Outline(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + ".Outline";
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("OUTBASE_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
DrawProperty(14);
DrawProperty(15);
DrawProperty(16);
DrawEffectSubKeywordToggle("Outline High Resolution?", "OUTBASE8DIR_ON");
DrawLine(Color.grey, 1, 3);
bool outlinePixelPerf = DrawEffectSubKeywordToggle("Outline is Pixel Perfect?", "OUTBASEPIXELPERF_ON");
if(outlinePixelPerf) DrawProperty(18);
else DrawProperty(17);
DrawLine(Color.grey, 1, 3);
bool outlineTexture = DrawEffectSubKeywordToggle("Outline uses texture?", "OUTTEX_ON");
if(outlineTexture)
{
DrawProperty(19);
DrawProperty(20);
DrawProperty(21);
DrawProperty(172);
}
DrawLine(Color.grey, 1, 3);
bool outlineDistort = DrawEffectSubKeywordToggle("Outline uses distortion?", "OUTDIST_ON");
if(outlineDistort)
{
DrawProperty(22);
DrawProperty(23);
DrawProperty(24);
DrawProperty(25);
}
DrawLine(Color.grey, 1, 3);
DrawEffectSubKeywordToggle("Only render outline?", "ONLYOUTLINE_ON");
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("OUTBASE_ON");
EditorGUILayout.EndToggleGroup();
}
private void GenericEffect(string inspector, string keyword, int first, int last, bool effectCounter = true, string preMessage = null, int[] extraProperties = null, bool boldToggleLetters = true)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
if(effectCounter)
{
effectNameLabel.text = effectCount + "." + inspector;
effectCount++;
}
else effectNameLabel.text = inspector;
if(boldToggleLetters) toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
else toggle = GUILayout.Toggle(toggle, effectNameLabel);
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword(keyword);
if(first > 0)
{
EditorGUILayout.BeginVertical(propertiesStyle);
{
if(preMessage != null) GUILayout.Label(preMessage, smallLabelStyle);
for(int i = first; i <= last; i++) DrawProperty(i);
if(extraProperties != null)
foreach(int i in extraProperties)
DrawProperty(i);
}
EditorGUILayout.EndVertical();
}
}
else targetMat.DisableKeyword(keyword);
if(boldToggleLetters) EditorGUILayout.EndToggleGroup();
}
private void Glow(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("GLOW_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
bool useGlowTex = DrawEffectSubKeywordToggle("Use Glow Texture?", "GLOWTEX_ON");
if(useGlowTex) DrawProperty(6);
DrawProperty(3);
DrawProperty(4);
DrawProperty(5, true);
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("GLOW_ON");
EditorGUILayout.EndToggleGroup();
}
private void ColorRamp(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("COLORRAMP_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
bool useEditableGradient = false;
if(AssetDatabase.Contains(targetMat))
{
useEditableGradient = oldKeyWords.Contains("GRADIENTCOLORRAMP_ON");
bool gradientTex = useEditableGradient;
gradientTex = GUILayout.Toggle(gradientTex, new GUIContent("Use Editable Gradient?"));
if(useEditableGradient != gradientTex)
{
Save();
if(gradientTex)
{
useEditableGradient = true;
targetMat.EnableKeyword("GRADIENTCOLORRAMP_ON");
}
else targetMat.DisableKeyword("GRADIENTCOLORRAMP_ON");
}
if(useEditableGradient) matEditor.ShaderProperty(matProperties[159], matProperties[159].displayName);
}
else GUILayout.Label("*Save to folder to allow for dynamic Gradient property", smallLabelStyle);
if(!useEditableGradient) DrawProperty(51);
DrawProperty(52);
DrawProperty(53, true);
MaterialProperty colorRampOut = matProperties[53];
if(colorRampOut.floatValue == 1) targetMat.EnableKeyword("COLORRAMPOUTLINE_ON");
else targetMat.DisableKeyword("COLORRAMPOUTLINE_ON");
DrawProperty(155);
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("COLORRAMP_ON");
EditorGUILayout.EndToggleGroup();
}
private void ColorChange(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("CHANGECOLOR_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
for(int i = 123; i < 127; i++) DrawProperty(i);
DrawLine(Color.grey, 1, 3);
ini = oldKeyWords.Contains("CHANGECOLOR2_ON");
bool toggle2 = ini;
toggle2 = EditorGUILayout.Toggle("Use Color 2", ini);
if(ini != toggle2) Save();
if(toggle2)
{
targetMat.EnableKeyword("CHANGECOLOR2_ON");
for(int i = 146; i < 149; i++) DrawProperty(i);
}
else targetMat.DisableKeyword("CHANGECOLOR2_ON");
DrawLine(Color.grey, 1, 3);
ini = oldKeyWords.Contains("CHANGECOLOR3_ON");
toggle2 = ini;
toggle2 = EditorGUILayout.Toggle("Use Color 3", toggle2);
if(ini != toggle2) Save();
if(toggle2)
{
targetMat.EnableKeyword("CHANGECOLOR3_ON");
for(int i = 149; i < 152; i++) DrawProperty(i);
}
else targetMat.DisableKeyword("CHANGECOLOR3_ON");
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("CHANGECOLOR_ON");
EditorGUILayout.EndToggleGroup();
}
private void GreyScale(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("GREYSCALE_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
DrawProperty(54);
DrawProperty(56);
DrawProperty(55, true);
MaterialProperty greyScaleOut = matProperties[55];
if(greyScaleOut.floatValue == 1) targetMat.EnableKeyword("GREYSCALEOUTLINE_ON");
else targetMat.DisableKeyword("GREYSCALEOUTLINE_ON");
DrawProperty(156);
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("GREYSCALE_ON");
EditorGUILayout.EndToggleGroup();
}
private void Posterize(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("POSTERIZE_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
DrawProperty(57);
DrawProperty(58);
DrawProperty(59, true);
MaterialProperty posterizeOut = matProperties[59];
if(posterizeOut.floatValue == 1) targetMat.EnableKeyword("POSTERIZEOUTLINE_ON");
else targetMat.DisableKeyword("POSTERIZEOUTLINE_ON");
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("POSTERIZE_ON");
EditorGUILayout.EndToggleGroup();
}
private void Blur(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("BLUR_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
GUILayout.Label("This effect will not affect the outline", smallLabelStyle);
DrawProperty(60);
DrawProperty(61, true);
MaterialProperty blurIsHd = matProperties[61];
if(blurIsHd.floatValue == 1) targetMat.EnableKeyword("BLURISHD_ON");
else targetMat.DisableKeyword("BLURISHD_ON");
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("BLUR_ON");
EditorGUILayout.EndToggleGroup();
}
private void Grass(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword("WIND_ON");
EditorGUILayout.BeginVertical(propertiesStyle);
{
DrawProperty(90);
DrawProperty(91);
DrawProperty(145);
DrawProperty(92);
DrawProperty(93, true);
MaterialProperty grassManual = matProperties[92];
if(grassManual.floatValue == 1) targetMat.EnableKeyword("MANUALWIND_ON");
else targetMat.DisableKeyword("MANUALWIND_ON");
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword("WIND_ON");
EditorGUILayout.EndToggleGroup();
}
private void InnerOutline(string inspector, string keyword, int first, int last)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword(keyword);
if(first > 0)
{
EditorGUILayout.BeginVertical(propertiesStyle);
{
for(int i = first; i <= last; i++) DrawProperty(i);
EditorGUILayout.Separator();
DrawProperty(72, true);
MaterialProperty onlyInOutline = matProperties[72];
if(onlyInOutline.floatValue == 1) targetMat.EnableKeyword("ONLYINNEROUTLINE_ON");
else targetMat.DisableKeyword("ONLYINNEROUTLINE_ON");
}
EditorGUILayout.EndVertical();
}
}
else targetMat.DisableKeyword(keyword);
EditorGUILayout.EndToggleGroup();
}
private void Gradient(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword(keyword);
EditorGUILayout.BeginVertical(propertiesStyle);
{
DrawProperty(143, true);
MaterialProperty gradIsRadial = matProperties[143];
if(gradIsRadial.floatValue == 1)
{
targetMat.EnableKeyword("RADIALGRADIENT_ON");
DrawProperty(31);
DrawProperty(32);
DrawProperty(34);
DrawProperty(141);
}
else
{
targetMat.DisableKeyword("RADIALGRADIENT_ON");
bool simpleGradient = oldKeyWords.Contains("GRADIENT2COL_ON");
bool simpleGradToggle = EditorGUILayout.Toggle("2 Color Gradient?", simpleGradient);
if(simpleGradient && !simpleGradToggle) targetMat.DisableKeyword("GRADIENT2COL_ON");
else if(!simpleGradient && simpleGradToggle) targetMat.EnableKeyword("GRADIENT2COL_ON");
DrawProperty(31);
DrawProperty(32);
if(!simpleGradToggle) DrawProperty(33);
DrawProperty(34);
if(!simpleGradToggle) DrawProperty(35);
if(!simpleGradToggle) DrawProperty(141);
DrawProperty(142);
}
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword(keyword);
EditorGUILayout.EndToggleGroup();
}
private void Overlay(string inspector, string keyword)
{
bool toggle = oldKeyWords.Contains(keyword);
bool ini = toggle;
GUIContent effectNameLabel = new GUIContent();
effectNameLabel.tooltip = keyword + " (C#)";
effectNameLabel.text = effectCount + "." + inspector;
toggle = EditorGUILayout.BeginToggleGroup(effectNameLabel, toggle);
effectCount++;
if(ini != toggle) Save();
if(toggle)
{
targetMat.EnableKeyword(keyword);
EditorGUILayout.BeginVertical(propertiesStyle);
{
bool multModeOn = oldKeyWords.Contains("OVERLAYMULT_ON");
bool isMultMode = multModeOn;
isMultMode = GUILayout.Toggle(isMultMode, new GUIContent("Is overlay multiplicative?"));
if(multModeOn != isMultMode)
{
Save();
if(isMultMode)
{
multModeOn = true;
targetMat.EnableKeyword("OVERLAYMULT_ON");
}
else targetMat.DisableKeyword("OVERLAYMULT_ON");
}
if(multModeOn) GUILayout.Label("Overlay is set to multiplicative mode", smallLabelStyle);
else GUILayout.Label("Overlay is set to additive mode", smallLabelStyle);
for(int i = 160; i <= 163; i++) DrawProperty(i);
for(int i = 170; i <= 171; i++) DrawProperty(i);
}
EditorGUILayout.EndVertical();
}
else targetMat.DisableKeyword(keyword);
EditorGUILayout.EndToggleGroup();
}
private void DrawProperty(int index, bool noReset = false)
{
MaterialProperty targetProperty = matProperties[index];
EditorGUILayout.BeginHorizontal();
{
GUIContent propertyLabel = new GUIContent();
propertyLabel.text = targetProperty.displayName;
propertyLabel.tooltip = targetProperty.name + " (C#)";
matEditor.ShaderProperty(targetProperty, propertyLabel);
if(!noReset)
{
GUIContent resetButtonLabel = new GUIContent();
resetButtonLabel.text = "R";
resetButtonLabel.tooltip = "Resets to default value";
if(GUILayout.Button(resetButtonLabel, GUILayout.Width(20))) ResetProperty(targetProperty);
}
}
EditorGUILayout.EndHorizontal();
}
private void ResetProperty(MaterialProperty targetProperty)
{
if(originalMaterialCopy == null) originalMaterialCopy = new Material(targetMat.shader);
if(targetProperty.type == MaterialProperty.PropType.Float || targetProperty.type == MaterialProperty.PropType.Range)
{
targetProperty.floatValue = originalMaterialCopy.GetFloat(targetProperty.name);
}
else if(targetProperty.type == MaterialProperty.PropType.Vector)
{
targetProperty.vectorValue = originalMaterialCopy.GetVector(targetProperty.name);
}
else if(targetProperty.type == MaterialProperty.PropType.Color)
{
targetProperty.colorValue = originalMaterialCopy.GetColor(targetProperty.name);
}
else if(targetProperty.type == MaterialProperty.PropType.Texture)
{
targetProperty.textureValue = originalMaterialCopy.GetTexture(targetProperty.name);
}
}
private bool DrawEffectSubKeywordToggle(string inspector, string keyword, bool setCustomConfigAfter = false)
{
GUIContent propertyLabel = new GUIContent();
propertyLabel.text = inspector;
propertyLabel.tooltip = keyword + " (C#)";
bool ini = oldKeyWords.Contains(keyword);
bool toggle = ini;
toggle = GUILayout.Toggle(toggle, propertyLabel);
if(ini != toggle)
{
if(toggle) targetMat.EnableKeyword(keyword);
else targetMat.DisableKeyword(keyword);
}
return toggle;
}
private void Save()
{
if(!Application.isPlaying) EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
EditorUtility.SetDirty(targetMat);
}
private void DrawLine(Color color, int thickness = 2, int padding = 10)
{
Rect r = EditorGUILayout.GetControlRect(GUILayout.Height(padding + thickness));
r.height = thickness;
r.y += (padding / 2);
r.x -= 2;
r.width += 6;
EditorGUI.DrawRect(r, color);
}
}
#endif

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2634386595cc60d40ae4e46b9ae970c0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: e320962886da01749b5c68627fde4db9
ShaderImporter:
externalObjects: {}
defaultTextures:
- _MainTex: {instanceID: 0}
- _GlowTex: {instanceID: 0}
- _FadeTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3}
- _FadeBurnTex: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3}
- _OutlineTex: {fileID: 2800000, guid: 74087f6d03f233e4a8a142fa01f9e5cf, type: 3}
- _OutlineDistortTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97,
type: 3}
- _ColorSwapTex: {instanceID: 0}
- _ColorRampTex: {fileID: 2800000, guid: 279657edc397ece4b8029c727adf6ddc, type: 3}
- _DistortTex: {fileID: 2800000, guid: 7aad8c583ef292e48b06af0d1f2fab97, type: 3}
- _ShineMask: {instanceID: 0}
- _ColorRampTexGradient: {instanceID: 0}
- _OverlayTex: {fileID: 2800000, guid: 677cca399782dea41aedc1d292ecb67d, type: 3}
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 625ba2096e714466b6d44ccb456bd731
timeCreated: 1682058264

View File

@ -0,0 +1,3 @@
{
"name": "Assembly-GraphicMaterialOverride"
}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 0e6c16ac130388f4493d7bf4eff725f1
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Assembly-AnimateUIMaterials.asmdef
uploadId: 766200

View File

@ -0,0 +1,131 @@
using UnityEngine;
using UnityEngine.UI;
namespace Plugins.Animate_UI_Materials
{
/// <summary>
/// Implements IMaterialModifier while avoiding the creation of too many garbage materials
/// WARNING: will destroy the modified material if the source material changes shader or on its own destruction
/// </summary>
public abstract class BufferedMaterialModifier : MonoBehaviour, IMaterialModifier
{
private static readonly int Stencil = Shader.PropertyToID("_Stencil");
/// <summary>
/// Hold the last modified material, to be re-used if possible
/// </summary>
Material _bufferedMaterial;
/// <summary>
/// Holds the base material used to create _bufferedMaterial
/// </summary>
Material _bufferedMaterialSource;
/// <summary>
/// From IMaterialModifier
/// Receives a material to be modified before display, and returns a new material
/// Only called once per frame per Graphic if changed, as Graphic is well optimized
/// </summary>
/// <param name="baseMaterial"></param>
/// <returns>A new material object, or the reset previous return value if possible</returns>
public Material GetModifiedMaterial(Material baseMaterial)
{
// Return the base material if invalid or if this component is disabled
if (!enabled || baseMaterial == null) return baseMaterial;
if (!_bufferedMaterial || _bufferedMaterial.shader != baseMaterial.shader || baseMaterial != _bufferedMaterialSource)
{
DestroyBuffer();
// Create a child material of the original
_bufferedMaterial = CreateNewMaterial(baseMaterial, "OVERRIDE");
_bufferedMaterialSource = baseMaterial;
}
_bufferedMaterial.CopyPropertiesFromMaterial(baseMaterial);
ModifyMaterial(_bufferedMaterial);
return _bufferedMaterial;
}
private int? GetStencilId(Material baseMaterial)
{
if (baseMaterial == null) return null;
// Check if material has stencil prop to avoid warning
if (!baseMaterial.HasInt(Stencil)) return null;
int id = baseMaterial.GetInt(Stencil);
return id > 0 ? id : null;
}
/// <summary>
/// Create a new material variant of the base material.
/// Tries to set parent value from the source material for prettier editing.
/// Sets flags to avoid saving the material in assets.
/// Used for creating new buffered material or for the fake editor screen.
/// </summary>
/// <param name="baseMaterial">IMaterialModifier argument</param>
/// <param name="suffix">Suffix to append to the original material name</param>
/// <returns></returns>
private Material CreateNewMaterial(Material baseMaterial, string suffix)
{
Material realSource;
// Try to retrieve real base Material
if (TryGetComponent(out Graphic graphic))
{
realSource = graphic.material ? graphic.material : Canvas.GetDefaultCanvasMaterial();
}
else
{
Debug.LogWarning("No graphic found");
realSource = baseMaterial;
}
// Add mask info to the Material
if (GetStencilId(baseMaterial) is {} stencilId)
{
suffix = $"{suffix} MASKED {stencilId}";
}
Material modifiedMaterial = new (baseMaterial.shader)
{
// Set a new name, to warn about editor modifications
name = $"{realSource.name} {suffix}",
hideFlags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor,
};
// Set parent if supported
#if UNITY_2022_1_OR_NEWER && UNITY_EDITOR
modifiedMaterial.parent = realSource;
#endif
return modifiedMaterial;
}
void DestroyBuffer()
{
if (Application.isPlaying) Destroy(_bufferedMaterial);
else DestroyImmediate(_bufferedMaterial);
}
/// <summary>
/// Child class implement this class, modifying directly the buffered material
/// </summary>
/// <param name="modifiedMaterial"></param>
protected abstract void ModifyMaterial(Material modifiedMaterial);
/// <summary>
/// Destroy the buffered material
/// </summary>
void OnDestroy()
{
DestroyBuffer();
}
public Material GetEditorMaterial(Material baseMaterial)
{
// Create a child material of the original
Material modifiedMaterial = CreateNewMaterial(baseMaterial, "EDITOR");
modifiedMaterial.CopyPropertiesFromMaterial(baseMaterial);
ModifyMaterial(modifiedMaterial);
return modifiedMaterial;
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 32c21f564129429aa7afa1c3fbb90d85
timeCreated: 1699906395
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/BufferedMaterialModifier.cs
uploadId: 766200

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 010680a99335d304b8c3fc7dbf0b3a38
guid: 94c69a3c49225fd4e8fc7eb449623d14
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 91b66ac0a1f9e5f48a4a1ffaefef1a01
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Docs/Animate UI Materials - Readme.pdf
uploadId: 766200

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6f6208cdf31d456cbbfb65574612dae0
timeCreated: 1681720611

View File

@ -0,0 +1,18 @@
{
"name": "Assembly-AnimateGraphicMaterials-Editor",
"rootNamespace": "",
"references": [
"GUID:0e6c16ac130388f4493d7bf4eff725f1"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 4cc83c889fcb65645bc6aae95a9ff24e
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/Assembly-AnimateUIMaterials-Editor.asmdef
uploadId: 766200

View File

@ -0,0 +1,34 @@
namespace UnityEditor
{
/// <summary>
/// Broken implementation of MaterialEditor meant to be injected in a standard Editor
/// Hacky, but only way to get custom shader editors to work with this packages
/// </summary>
public class CustomMaterialEditor: MaterialEditor
{
public override void OnInspectorGUI()
{
// Commented lines are those removed from the base implementation
serializedObject.Update();
// Remove most checks
// this.CheckSetup();
// this.DetectShaderEditorNeedsUpdate();
// this.isVisible && (UnityEngine.Object) this.m_Shader != (UnityEngine.Object) null && !this.HasMultipleMixedShaderValues() && this.
// Draw properties
if (PropertiesGUI())
{
// Do not validate materials since we don't have access to their editor scripts
// foreach (Material target in this.targets)
// {
// if (this.m_CustomShaderGUI != null)
// this.m_CustomShaderGUI.ValidateMaterial(target);
// }
//
PropertiesChanged();
}
// this.DetectTextureStackValidationIssues();
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 39cd41d8ca92456dbb37f87b7de14c4e
timeCreated: 1701269432
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/CustomMaterialEditor.cs
uploadId: 766200

View File

@ -0,0 +1,644 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using Plugins.Animate_UI_Materials.EditorExtensions;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
using UnityEngine.UI;
using Object = UnityEngine.Object;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
[CustomEditor(typeof(GraphicMaterialOverride), true)]
public class GraphicMaterialOverrideEditor : UnityEditor.Editor
{
/// <summary>
/// The scroll position in the modifiers ScrollView
/// Usually not needed, but good to have
/// </summary>
Vector2 _scrollPosition;
/// <summary>
/// A fake material used to create an inspector
/// </summary>
Material _editorMaterial;
Object[] _editorMaterialArray;
/// <summary>
/// The editor of the fake material
/// </summary>
MaterialEditor _editorMaterialEditor;
/// <summary>
/// Override the reset context menu to implement the reset function
/// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because we need to record an Undo
/// </summary>
[MenuItem("CONTEXT/GraphicMaterialOverride/Reset")]
static void ResetMaterialModifiers(MenuCommand b)
{
GraphicMaterialOverride materialOverride = (GraphicMaterialOverride)b.context;
if (!materialOverride) return;
List<IMaterialPropertyModifier> modifiers = materialOverride.GetModifiers().ToList();
Object[] modifiersAsObjects = modifiers.Select(m => (Object)m).ToArray();
Undo.RecordObjects(modifiersAsObjects, "Reset material modifiers");
foreach (IMaterialPropertyModifier modifier in modifiers)
{
modifier.ResetPropertyToDefault();
PrefabUtility.RecordPrefabInstancePropertyModifications((Object)modifier);
}
}
/// <summary>
/// Ask the Graphic component to reload the modified material
/// </summary>
[MenuItem("CONTEXT/GraphicMaterialOverride/Reload Source Material")]
static void ReloadSourceMaterial(MenuCommand b)
{
if (b.context is not GraphicMaterialOverride materialOverride) return;
materialOverride.SetMaterialDirty();
EditorUtility.SetDirty(materialOverride);
}
[MenuItem("CONTEXT/MonoBehaviour/Bake Material Variant", true)]
static bool BakeMaterialVariantValidator(MenuCommand b)
{
return b.context is IMaterialModifier;
}
/// <summary>
/// Ask the Graphic component to reload the modified material
/// </summary>
[MenuItem("CONTEXT/MonoBehaviour/Bake Material Variant")]
static void BakeMaterialVariant(MenuCommand b)
{
if (b.context is not IMaterialModifier) return;
if (b.context is not Component materialModifier) return;
if (materialModifier.TryGetComponent(out Graphic materialSource) == false)
{
Debug.LogWarning("Cannot find associated Graphic");
return;
}
Material original = materialSource.material;
Material modified = materialSource.materialForRendering;
Material asset = new(modified);
#if UNITY_2022_1_OR_NEWER && UNITY_EDITOR
asset.parent = original;
#endif
asset.hideFlags = HideFlags.None;
string path = GetMaterialVariantPath(original);
AssetDatabase.CreateAsset(asset, path);
EditorGUIUtility.PingObject(AssetDatabase.LoadAssetAtPath<Material>(path));
}
static string GetMaterialVariantPath(Material original)
{
string path = null;
string name = original ? original.name : "Material";
#if UNITY_2022_1_OR_NEWER && UNITY_EDITOR
{
Material current = original;
while (path == null && current)
{
path = AssetDatabase.GetAssetPath(current);
current = current.parent;
}
}
#else
if (original != null) path = AssetDatabase.GetAssetPath(original);
#endif
path = Path.GetDirectoryName(path);
path ??= Application.dataPath;
path += $"/{name} Override.asset";
return AssetDatabase.GenerateUniqueAssetPath(path);
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
// Get the materialOverride component
GraphicMaterialOverride materialOverride = (GraphicMaterialOverride)target;
if (materialOverride.GetComponent<Graphic>() == null)
EditorGUILayout.HelpBox(
"Cannot find any sibling UI element. Add a UI element to use this component",
MessageType.Warning);
else if (GetTargetMaterial() == null)
EditorGUILayout.HelpBox(
"Cannot find any material. Add a material to the UI element to use this component",
MessageType.Warning);
Material baseMaterial = GetTargetMaterial();
if (baseMaterial == null) return;
if (!_editorMaterial)
{
_editorMaterial = materialOverride.GetEditorMaterial(GetTargetMaterial());
_editorMaterialArray = new Object[] { _editorMaterial };
}
InternalEditorUtility.SetIsInspectorExpanded(_editorMaterial, true);
if (!_editorMaterialEditor || _editorMaterialEditor.target != _editorMaterial)
_editorMaterialEditor = CreateEditor(_editorMaterial) as MaterialEditor;
var properties = ShaderPropertyInfo.GetMaterialProperties(baseMaterial);
var names = properties.Select(p => p.name).ToList();
// Get the active modifiers
List<IMaterialPropertyModifier> modifiers = materialOverride
.GetModifiers(true)
.OrderBy(m => names.IndexOf(m.PropertyName))
.ToList();
// Display the current modifier values
DisplayModifiers(modifiers);
// Use a popup to create new modifiers
if (DisplayCreationPopup(modifiers, properties) is { } toCreate)
CreateNewModifier(materialOverride.transform, toCreate);
}
/// <summary>
/// Display all added modifiers and their value
/// </summary>
/// <param name="modifiers"></param>
void DisplayModifiers(List<IMaterialPropertyModifier> modifiers)
{
EditorGUILayout.LabelField("Modifiers");
if (modifiers.Count == 0)
EditorGUILayout.HelpBox("Select a value from the dropdown to add a property modifier", MessageType.Info);
using GUILayout.ScrollViewScope scrollViewScope = new(_scrollPosition);
using GUILayout.HorizontalScope horizontalScope = new();
ForEachParameterVertical(modifiers, DrawModifier);
}
/// <summary>
/// Returns the heights of each modifiers as a list
/// </summary>
/// <param name="modifiers"> The modifiers to get the heights of</param>
/// <returns></returns>
List<float> GetModifiersHeights(List<IMaterialPropertyModifier> modifiers)
{
Object[] targetMat = _editorMaterialArray;
return modifiers.Select(m => m.PropertyName)
.Select(n => MaterialEditor.GetMaterialProperty(targetMat, n))
.Select(_editorMaterialEditor.GetPropertyHeight)
.ToList();
}
/// <summary>
/// Begin a vertical group, and call a draw function on each modifier
/// </summary>
/// <param name="modifiers">The modifiers to draw</param>
/// <param name="action">The draw function for a modifier property</param>
static void ForEachParameterVertical(
List<IMaterialPropertyModifier> modifiers,
Action<IMaterialPropertyModifier> action
)
{
using EditorGUILayout.VerticalScope scope = new();
foreach (IMaterialPropertyModifier modifier in modifiers)
{
using GUILayout.HorizontalScope hScope = new();
action(modifier);
}
}
void DrawModifier(IMaterialPropertyModifier modifier)
{
DrawModifierToggle(modifier);
DrawModifierKebabMenu(modifier);
DrawModifierValue(modifier);
}
// The cached style of the kebab menu button
GUIStyle _kebabMenuStyle;
/// <summary>
/// Draw a button that activate the context menu
/// </summary>
/// <param name="modifier"></param>
void DrawModifierKebabMenu(IMaterialPropertyModifier modifier)
{
if (_kebabMenuStyle == null)
{
_kebabMenuStyle = new GUIStyle(GUI.skin.GetStyle("PaneOptions"));
// Force the height of the button
_kebabMenuStyle.fixedHeight = EditorGUIUtility.singleLineHeight;
_kebabMenuStyle.margin = new RectOffset(0, 0, 3, 0);
}
if (GUILayout.Button("", _kebabMenuStyle)) DrawModifierContextMenu(modifier);
}
/// <summary>
/// Draw a toggle to enable or disable the target modifier component
/// </summary>
/// <param name="modifier">The modifier component</param>
void DrawModifierToggle(IMaterialPropertyModifier modifier)
{
GameObject targetObject = modifier.gameObject;
SerializedObject targetSO = new(targetObject);
SerializedProperty activeProp = targetSO.FindProperty("m_IsActive");
EditorGUI.ChangeCheckScope scope = new();
EditorGUILayout.PropertyField(activeProp, GUIContent.none, false, GUILayout.MaxWidth(16f));
if (scope.changed) targetSO.ApplyModifiedProperties();
}
/// <summary>
/// Draw the value field from the property modifier
/// </summary>
/// <param name="modifier">The target IMaterialPropertyModifier</param>
protected virtual void DrawModifierValue(IMaterialPropertyModifier modifier)
{
MonoBehaviour modifierComponent = (MonoBehaviour)modifier;
// Add change checks to the property field
EditorGUI.BeginChangeCheck();
// Create a serialized object on the modifier, to display it properly
SerializedObject obj = new(modifierComponent);
// Get the serialized property
SerializedProperty property = obj.FindProperty("propertyValue");
try
{
EditorGUIUtility.fieldWidth = 64f;
DrawMaterialProperty(modifier, property);
EditorGUIUtility.fieldWidth = -1;
}
catch (ExitGUIException e)
{
throw;
}
// e is used for debugging purposes
#pragma warning disable CS0168 // Variable is declared but never used
catch (Exception e)
#pragma warning restore CS0168 // Variable is declared but never used
{
// Put breakpoint here
EditorGUIUtility.fieldWidth = -1;
DrawFallbackProperty(modifier, property);
}
// If no change was applied, ignore storage
if (!EditorGUI.EndChangeCheck()) return;
// Set the serialized property from the current prop
// Record an undo
Undo.RecordObject(modifierComponent, $"Modified property override {modifier.PropertyName}");
// If we are in a prefab, ensure unity knows about the modification
PrefabUtility.RecordPrefabInstancePropertyModifications(modifierComponent);
// Apply the modified property
obj.ApplyModifiedProperties();
}
void DrawFallbackProperty(IMaterialPropertyModifier modifier, SerializedProperty property)
{
GUI.backgroundColor = new Color(1, 0.5f, 0);
EditorGUILayout.PropertyField(property, new GUIContent(modifier.PropertyName));
GUI.backgroundColor = Color.white;
}
FieldInfo _materialPropertyFlagsField =
typeof(MaterialProperty).GetField("m_Flags", BindingFlags.NonPublic | BindingFlags.Instance);
void DrawMaterialProperty(
IMaterialPropertyModifier modifier,
SerializedProperty property
)
{
// Get the actual Shader Property
MaterialProperty materialProperty = MaterialEditor.GetMaterialProperty(_editorMaterialArray, modifier.PropertyName);
MaterialProperty.PropFlags oldFlags = materialProperty.flags;
MaterialProperty.PropFlags flags = oldFlags;
// Hide the scale offset in the texture property drawer
if (modifier is GraphicPropertyOverrideTexture or GraphicPropertyOverrideScaleAndOffset)
{
bool wantsScaleOffset = modifier is GraphicPropertyOverrideScaleAndOffset;
flags &= ~MaterialProperty.PropFlags.NoScaleOffset;
if (!wantsScaleOffset)
flags |= MaterialProperty.PropFlags.NoScaleOffset;
}
flags &= ~MaterialProperty.PropFlags.PerRendererData;
if (oldFlags != flags)
{
_materialPropertyFlagsField.SetValue(materialProperty, (int)flags);
}
// Asset correct property type
SerializedMaterialPropertyUtility.AssertTypeEqual(property, materialProperty);
// Set the buffer shader property to our current value
SerializedMaterialPropertyUtility.CopyProperty(materialProperty, property);
// Get the height needed to render
float height = _editorMaterialEditor.GetPropertyHeight(materialProperty);
// Get the control rect
Rect rect = EditorGUILayout.GetControlRect(true, height);
using EditorGUI.PropertyScope scope = new(rect, new GUIContent(modifier.DisplayName), property);
// Set the animator colored backgrounds
if (GraphicMaterialOverrideHelper.OverridePropertyColor(materialProperty, (Object)modifier, out Color background))
{
GUI.backgroundColor = background;
}
using EditorGUI.ChangeCheckScope changes = new();
// Draw the property using the hidden editor
_editorMaterialEditor.ShaderProperty(rect, materialProperty, scope.content, 0);
// Reset the background color
GUI.backgroundColor = Color.white;
if (changes.changed)
{
// Place the result in the SerializedProperty
SerializedMaterialPropertyUtility.CopyProperty(property, materialProperty);
}
}
/// <summary>
/// Draw the context menu for one modifier
/// </summary>
/// <param name="modifier"></param>
void DrawModifierContextMenu(IMaterialPropertyModifier modifier)
{
MonoBehaviour modifierComponent = (MonoBehaviour)modifier;
GenericMenu menu = new();
menu.AddItem(new GUIContent("Select"), false, () => Selection.activeGameObject = modifierComponent.gameObject);
menu.AddItem(new GUIContent("Set Default"), false, () => ResetModifier(modifier));
if (modifierComponent.isActiveAndEnabled)
menu.AddItem(new GUIContent("Disable"), false, () => ModifierSetActive(modifier, false));
else
menu.AddItem(new GUIContent("Enable"), false, () => ModifierSetActive(modifier, true));
menu.AddItem(new GUIContent("Delete"), false, () => DeleteModifier(modifier));
menu.ShowAsContext();
}
/// <summary>
/// Reset a modifier object to the default material value and record an undo
/// </summary>
/// <param name="modifier"></param>
void ResetModifier(IMaterialPropertyModifier modifier)
{
Undo.RecordObject(modifier as Object, "Reset modifier component");
modifier.ResetPropertyToDefault();
PrefabUtility.RecordPrefabInstancePropertyModifications(modifier as Object);
}
/// <summary>
/// Delete the GameObject of a modifier and record an Undo
/// </summary>
/// <param name="modifier"></param>
void DeleteModifier(IMaterialPropertyModifier modifier)
{
Undo.DestroyObjectImmediate(modifier.gameObject);
}
/// <summary>
/// Set the active state of a modifier and its GameObject
/// Records an undo
/// </summary>
/// <param name="modifier"></param>
/// <param name="isActive"></param>
void ModifierSetActive(IMaterialPropertyModifier modifier, bool isActive)
{
// Make sure any modifications are properly propagated to unity
Undo.RecordObjects(
new[] { modifier as Object, modifier.gameObject },
"Toggled modifier component");
// If enabling, set the component and GameObject as active
if (isActive)
{
modifier.enabled = true;
modifier.gameObject.SetActive(true);
}
// If disabling, disable the GameObject only
else
{
modifier.gameObject.SetActive(false);
}
PrefabUtility.RecordPrefabInstancePropertyModifications(modifier as Object);
PrefabUtility.RecordPrefabInstancePropertyModifications(modifier.gameObject);
}
/// <summary>
/// Try to draw a range field for a shader property
/// If the information cannot be found, draw a float property
/// </summary>
/// <param name="material">The material holding the shader property</param>
/// <param name="propertyIndex">The index of the shader property</param>
/// <param name="property">The serialized property in the modifier</param>
/// <param name="label">The label of the property</param>
public static void DrawFloatPropertyAsRange(
Material material,
int propertyIndex,
SerializedProperty property,
GUIContent label
)
{
if (!material || propertyIndex < 0)
{
EditorGUILayout.PropertyField(property);
return;
}
Rect rect = GUILayoutUtility.GetRect(
EditorGUIUtility.fieldWidth,
EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 110f,
18f,
18f);
Shader shader = material.shader;
float min = ShaderUtil.GetRangeLimits(shader, propertyIndex, 1);
float max = ShaderUtil.GetRangeLimits(shader, propertyIndex, 2);
using EditorGUI.PropertyScope scope = new(rect, label, property);
EditorGUI.BeginChangeCheck();
float newValue = EditorGUI.Slider(rect, "⇔", property.floatValue, min, max);
// Only assign the value back if it was actually changed by the user.
// Otherwise a single value will be assigned to all objects when multi-object editing,
// even when the user didn't touch the control.
if (EditorGUI.EndChangeCheck())
property.floatValue = newValue;
}
/// <summary>
/// Draw a color field for a shader property, hdr if required
/// If the information cannot be found, draw a color property
/// </summary>
/// <param name="material">The material holding the shader property</param>
/// <param name="property">The serialized property in the modifier</param>
/// <param name="isHdr">If the property should be drawn as HDR</param>
/// <param name="label">The label of the property</param>
public static void DrawColorPropertyAsHdr(
Material material,
SerializedProperty property,
bool isHdr,
GUIContent label
)
{
if (!material)
{
EditorGUILayout.PropertyField(property);
return;
}
property.colorValue = EditorGUILayout.ColorField(label, property.colorValue, true, true, isHdr);
}
static readonly (string, string)[] LowerPropertyStrings =
{
("_StencilComp", "UI Hidden Properties/StencilComp"),
("_Stencil", "UI Hidden Properties/Stencil"),
("_StencilOp", "UI Hidden Properties/StencilOp"),
("_StencilWriteMask", "UI Hidden Properties/StencilWriteMask"),
("_StencilReadMask", "UI Hidden Properties/StencilReadMask"),
("_ColorMask", "UI Hidden Properties/ColorMask"),
("_UseUIAlphaClip", "UI Hidden Properties/UseUIAlphaClip"),
};
static string GetPropertyName(ShaderPropertyInfo prop)
{
foreach (var (lower, upper) in LowerPropertyStrings)
{
if (prop.name == lower) return upper;
}
return prop.name;
}
struct PropertyEntry
{
public string Name;
public string DisplayName;
public Type ComponentType;
}
/// <summary>
/// Display a dropdown to select a modifier
/// Filters out modifiers that are already added
/// </summary>
/// <returns></returns>
PropertyEntry? DisplayCreationPopup(List<IMaterialPropertyModifier> modifiers, List<ShaderPropertyInfo> properties)
{
// Create a set to filter out modifiers that are already added
HashSet<string> namesAlreadyUsed = modifiers
.Select(p => p.DisplayName)
.ToHashSet();
List<PropertyEntry> entries = new();
foreach (ShaderPropertyInfo info in properties)
{
if (!namesAlreadyUsed.Contains(info.name))
{
entries.Add(
new PropertyEntry
{
Name = info.name,
DisplayName = GetPropertyName(info),
ComponentType = info.type switch
{
PropertyType.Color => typeof(GraphicPropertyOverrideColor),
PropertyType.Float => typeof(GraphicPropertyOverrideFloat),
PropertyType.Range => typeof(GraphicPropertyOverrideRange),
PropertyType.Vector => typeof(GraphicPropertyOverrideVector),
PropertyType.TexEnv => typeof(GraphicPropertyOverrideTexture),
_ => throw new ArgumentOutOfRangeException(),
},
});
}
if (info.type == PropertyType.TexEnv)
{
string displayName = GetPropertyName(info) + " Scale Offset";
if (!namesAlreadyUsed.Contains(displayName))
{
entries.Add(
new PropertyEntry
{
Name = info.name,
DisplayName = displayName,
ComponentType = typeof(GraphicPropertyOverrideScaleAndOffset),
});
}
}
}
string[] propertyNames = entries.Select(e => e.DisplayName).ToArray();
int selectedIndex = EditorGUILayout.Popup(new GUIContent("Add Override"), -1, propertyNames);
if (selectedIndex >= 0) return entries[selectedIndex];
return null;
}
/// <summary>
/// Create a new GraphicPropertyOverride in a new child GameObject
/// </summary>
/// <param name="parent">The transform of the GraphicMaterialOverride</param>
/// <param name="propertyInfo">The property to override</param>
/// <exception cref="ArgumentOutOfRangeException">thrown when ShaderPropertyType is invalid</exception>
void CreateNewModifier(Transform parent, PropertyEntry propertyInfo)
{
// Increment undo group
Undo.IncrementCurrentGroup();
GameObject child = new($"{propertyInfo.DisplayName} Override");
Undo.RegisterCreatedObjectUndo(child, $"Added override GameObject");
child.layer = parent.gameObject.layer;
Undo.SetTransformParent(child.transform, parent, false, "Moved override GameObject");
GraphicPropertyOverride propertyOverride =
Undo.AddComponent(child, propertyInfo.ComponentType) as GraphicPropertyOverride;
propertyOverride!.PropertyName = propertyInfo.Name;
propertyOverride.ResetPropertyToDefault();
Undo.RegisterCompleteObjectUndo(child, "Added override component");
Undo.SetCurrentGroupName($"Override ${propertyInfo.DisplayName}");
}
/// <summary>
/// Try to get the material from the Graphic component
/// </summary>
/// <returns></returns>
Material GetTargetMaterial()
{
GraphicMaterialOverride graphicMaterialOverride = (GraphicMaterialOverride)target;
return graphicMaterialOverride.TryGetComponent(out Graphic graphic) ? graphic.material : null;
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 2ea82f5a694c494db5eb813e0232cd6d
timeCreated: 1682064216
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicMaterialOverrideEditor.cs
uploadId: 766200

View File

@ -0,0 +1,33 @@
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
/// <summary>
/// A special editor for Color properties
/// Retrieves the hdr flag from the property override
/// </summary>
[CustomEditor(typeof(GraphicPropertyOverrideColor), true)]
public class GraphicPropertyOverrideColorEditor : GraphicPropertyOverrideEditor
{
protected override void DrawValueProperty(SerializedProperty property)
{
// If in multi-edit mode, just display a color field
if (targets.Length > 1 || target is not GraphicPropertyOverrideColor propertyOverride)
{
base.DrawValueProperty(property);
return;
}
Material material = GetTargetMaterial();
GraphicMaterialOverrideEditor.DrawColorPropertyAsHdr(
material,
property,
propertyOverride.isHDR,
new GUIContent(""));
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: ccb1a192bc074b67b10eca77f5af23d7
timeCreated: 1686516497
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideColorEditor.cs
uploadId: 766200

View File

@ -0,0 +1,164 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
[CustomEditor(typeof(GraphicPropertyOverride), true)]
[CanEditMultipleObjects]
public class GraphicPropertyOverrideEditor : UnityEditor.Editor
{
SerializedProperty _propertyName;
SerializedProperty _propertyValue;
void OnEnable()
{
// Get the serializedProperty of the shader property name
_propertyName = serializedObject.FindProperty("propertyName");
// Get the serializedProperty of the shader property propertyValue
_propertyValue = serializedObject.FindProperty("propertyValue");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
// Draw the script header
using (new EditorGUI.DisabledScope(true))
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_Script"));
// Start change check
using EditorGUI.ChangeCheckScope scope = new();
// If single target (not multi-editing)
if (targets.Length == 1)
{
// Draw a warning if the material cannot be found
if (!GetTargetMaterial())
EditorGUILayout.HelpBox(
"The parent doesn't contain a GraphicMaterialOverride. Add one to continue",
MessageType.Error);
string[] properties = GetPropertyNames().ToArray();
// Draw a dropdown list of float properties in the material
EditorGUI.BeginChangeCheck();
int currentIndex = GetPropertyIndexDropdown();
int index = EditorGUILayout.Popup("Property Name", currentIndex, properties);
if (EditorGUI.EndChangeCheck()) _propertyName.stringValue = properties[index];
}
else
{
EditorGUILayout.LabelField("Cannot multi-edit property name");
}
DrawPropertiesExcluding(serializedObject, "m_Script", "propertyName", "propertyValue");
DrawValueProperty(_propertyValue);
// If change happened, apply modified properties
if (scope.changed) serializedObject.ApplyModifiedProperties();
}
/// <summary>
/// Overridable method to draw the value property
/// Overriden by GraphicPropertyOverrideRange to display ranges
/// </summary>
protected virtual void DrawValueProperty(SerializedProperty property)
{
EditorGUILayout.PropertyField(property);
}
/// <summary>
/// Try to get the material of the associated Graphic object
/// </summary>
/// <returns>The material being overriden or null</returns>
protected Material GetTargetMaterial()
{
GraphicPropertyOverride animated = (GraphicPropertyOverride)target;
return animated.transform.parent.TryGetComponent(out Graphic graphic) ? graphic.material : null;
}
/// <summary>
/// Get the property type from the target object
/// </summary>
/// <returns></returns>
protected PropertyType GetPropertyType()
{
GraphicPropertyOverride animated = (GraphicPropertyOverride)target;
return animated switch
{
GraphicPropertyOverrideColor => PropertyType.Color,
GraphicPropertyOverrideFloat => PropertyType.Float,
GraphicPropertyOverrideVector => PropertyType.Vector,
GraphicPropertyOverrideInt => PropertyType.Int,
GraphicPropertyOverrideRange => PropertyType.Range,
GraphicPropertyOverrideTexture => PropertyType.TexEnv,
GraphicPropertyOverrideScaleAndOffset => PropertyType.TexEnv,
_ when target != null => throw new Exception($"Unknown type {target.GetType()}"),
_ => throw new Exception($"Target is null"),
};
}
/// <summary>
/// Get the index inside the filtered dropdown
/// </summary>
/// <returns>The index, or -1 in case of invalid property</returns>
int GetPropertyIndexDropdown()
{
string propertyName = _propertyName.stringValue;
return GetPropertyNames()
.FindIndex(dropdownOptionName => dropdownOptionName == propertyName);
}
/// <summary>
/// Get the index of the property in the shade
/// </summary>
/// <returns>The index of the property or -1 in vase of invalid property</returns>
protected int GetPropertyIndex()
{
Material material = GetTargetMaterial();
string propertyName = _propertyName.stringValue;
return ShaderPropertyInfo.GetMaterialProperties(material)
.Find(p => p.name == propertyName)
?.index ??
-1;
}
/// <summary>
/// Get all matching properties from the shader
/// </summary>
/// <returns></returns>
List<string> GetPropertyNames()
{
Material material = GetTargetMaterial();
PropertyType type = GetPropertyType();
return ShaderPropertyInfo.GetMaterialProperties(material)
.Where(p => p.type == type)
.Select(p => p.name)
.ToList();
}
/// <summary>
/// Override the reset context menu to implement the reset function
/// Needed instead of "MonoBehavior.Reset" on GraphicMaterialOverride because Reset is called in other contexts
/// </summary>
[MenuItem("CONTEXT/GraphicPropertyOverride/Reset")]
static void ResetPropertyValue(MenuCommand b)
{
if (b.context is not GraphicPropertyOverride propertyOverride) return;
Undo.RecordObject(propertyOverride, "Reset material override");
propertyOverride.ResetPropertyToDefault();
PrefabUtility.RecordPrefabInstancePropertyModifications(propertyOverride);
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a8d03d3fad4347d09e530cd5a4590835
timeCreated: 1681915604
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideEditor.cs
uploadId: 766200

View File

@ -0,0 +1,34 @@
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
/// <summary>
/// A special editor for Range properties
/// Retrieves the range min and max from the shader, and draws the slider field
/// In case of failure to retrieve, it will simply display a float property
/// </summary>
[CustomEditor(typeof(GraphicPropertyOverrideRange), true)]
public class GraphicPropertyOverrideRangeEditor : GraphicPropertyOverrideEditor
{
protected override void DrawValueProperty(SerializedProperty property)
{
// If in multi-edit mode, just display a float field
if (targets.Length > 1)
{
base.DrawValueProperty(property);
return;
}
Material material = GetTargetMaterial();
int propertyIndex = GetPropertyIndex();
GraphicMaterialOverrideEditor.DrawFloatPropertyAsRange(material,
propertyIndex,
property,
new GUIContent(""));
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c999cb1c916847bd8cc931d65f1b195f
timeCreated: 1682061875
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/GraphicPropertyOverrideRangeEditor.cs
uploadId: 766200

View File

@ -0,0 +1,93 @@
using System;
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
public static class SerializedMaterialPropertyUtility
{
public static void AssertTypeEqual(SerializedProperty a, MaterialProperty b)
{
AssertTypeEqual(b, a);
}
public static void AssertTypeEqual(MaterialProperty a, SerializedProperty b)
{
switch (a.type)
{
case MaterialProperty.PropType.Color when b.propertyType == SerializedPropertyType.Color: return;
case MaterialProperty.PropType.Float when b.propertyType == SerializedPropertyType.Float: return;
case MaterialProperty.PropType.Vector when b.propertyType == SerializedPropertyType.Vector4: return;
case MaterialProperty.PropType.Range when b.propertyType == SerializedPropertyType.Float: return;
case MaterialProperty.PropType.Int when b.propertyType == SerializedPropertyType.Integer: return;
case MaterialProperty.PropType.Texture when b.propertyType == SerializedPropertyType.ObjectReference: return;
case MaterialProperty.PropType.Texture when b.propertyType == SerializedPropertyType.Generic: return;
default: throw new Exception("Wrong Material Override Type");
}
}
public static void CopyProperty(SerializedProperty to, MaterialProperty from)
{
switch (from.type)
{
case MaterialProperty.PropType.Color:
to.colorValue = from.colorValue;
return;
case MaterialProperty.PropType.Float:
to.floatValue = from.floatValue;
return;
case MaterialProperty.PropType.Vector:
to.vector4Value = from.vectorValue;
return;
case MaterialProperty.PropType.Range:
to.floatValue = from.floatValue;
return;
case MaterialProperty.PropType.Int:
to.intValue = from.intValue;
return;
case MaterialProperty.PropType.Texture when to.propertyType == SerializedPropertyType.Generic:
to.FindPropertyRelative(nameof(TextureScaleOffset.ScaleOffset)).vector4Value = from.textureScaleAndOffset;
to.FindPropertyRelative(nameof(TextureScaleOffset.Texture)).objectReferenceValue = from.textureValue;
return;
case MaterialProperty.PropType.Texture when to.propertyType == SerializedPropertyType.ObjectReference:
to.objectReferenceValue = from.textureValue;
return;
default:
Debug.LogWarning($"WEIRD TYPES {to.type} {from.type}");
return;
}
}
public static void CopyProperty(MaterialProperty to, SerializedProperty from)
{
switch (to.type)
{
case MaterialProperty.PropType.Color:
to.colorValue = from.colorValue;
return;
case MaterialProperty.PropType.Float:
to.floatValue = from.floatValue;
return;
case MaterialProperty.PropType.Vector:
to.vectorValue = from.vector4Value;
return;
case MaterialProperty.PropType.Range:
to.floatValue = from.floatValue;
return;
case MaterialProperty.PropType.Int:
to.intValue = from.intValue;
return;
case MaterialProperty.PropType.Texture when from.propertyType == SerializedPropertyType.Generic:
to.textureScaleAndOffset = from.FindPropertyRelative(nameof(TextureScaleOffset.ScaleOffset)).vector4Value;
to.textureValue = from.FindPropertyRelative(nameof(TextureScaleOffset.Texture)).objectReferenceValue as Texture;
return;
case MaterialProperty.PropType.Texture when from.propertyType == SerializedPropertyType.ObjectReference:
to.textureValue = from.objectReferenceValue as Texture;
return;
default:
Debug.LogWarning("WEIRD TYPES");
return;
}
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c3a2b7d21ca74321a9fdd6f784784901
timeCreated: 1701444411
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/SerializedMaterialPropertyUtility.cs
uploadId: 766200

View File

@ -0,0 +1,60 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace Plugins.Animate_UI_Materials.Editor
{
using PropertyType = ShaderUtil.ShaderPropertyType;
internal class ShaderPropertyInfo
{
/// <summary>
/// The index of the property inside the shader
/// </summary>
public int index;
/// <summary>
/// The name of the property inside the shader
/// </summary>
public string name;
/// <summary>
/// The type of the property, as defined by ShaderUtil
/// </summary>
public PropertyType type;
/// <summary>
/// Get all properties from a shader, with their name, index, and type
/// </summary>
/// <param name="shader">The shader to get the properties from</param>
/// <param name="allowHidden">Include properties marked as hidden and _MainTex</param>
/// <returns></returns>
public static List<ShaderPropertyInfo> GetShaderProperties(Shader shader, bool allowHidden = false)
{
List<ShaderPropertyInfo> properties = new List<ShaderPropertyInfo>();
int propertyCount = ShaderUtil.GetPropertyCount(shader);
for (int i = 0; i < propertyCount; i++)
if (!ShaderUtil.IsShaderPropertyHidden(shader, i) || !allowHidden)
if (!ShaderUtil.IsShaderPropertyNonModifiableTexureProperty(shader, i) || allowHidden)
properties.Add(new ShaderPropertyInfo
{
index = i,
name = ShaderUtil.GetPropertyName(shader, i),
type = ShaderUtil.GetPropertyType(shader, i)
});
return properties;
}
/// <summary>
/// Get all properties from a material, with their name, index, and type
/// </summary>
/// <param name="material">The material to get the properties from</param>
/// <param name="allowHidden">Include properties marked as hidden and _MainTex</param>
/// <returns></returns>
public static List<ShaderPropertyInfo> GetMaterialProperties(Material material, bool allowHidden = false)
{
if (!material) return new List<ShaderPropertyInfo>();
return GetShaderProperties(material.shader, allowHidden);
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 36a87bf77f35458e8da8b3037e3b2321
timeCreated: 1682088408
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Editor/ShaderPropertyInfo.cs
uploadId: 766200

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d7ba558eff1e4d3189ce4b8dc9cd46cf
timeCreated: 1701272938

View File

@ -0,0 +1,3 @@
{
"reference": "GUID:343deaaf83e0cee4ca978e7df0b80d21"
}

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 3426bd6b92ad21241be6117321949a82
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/EditorExtensions/AssemblyRef-EditorExtensions.asmref
uploadId: 766200

View File

@ -0,0 +1,79 @@
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
namespace Plugins.Animate_UI_Materials.EditorExtensions
{
public static class GraphicMaterialOverrideHelper
{
public static bool OverridePropertyColor(
MaterialProperty materialProp,
Object target,
out Color color)
{
List<string> stringList = new();
string str = "propertyValue";
if (materialProp.type == MaterialProperty.PropType.Texture)
{
stringList.Add(str);
stringList.Add(str + "_ST.x");
stringList.Add(str + "_ST.y");
stringList.Add(str + "_ST.z");
stringList.Add(str + "_ST.w");
}
else if (materialProp.type == MaterialProperty.PropType.Color)
{
stringList.Add(str + ".r");
stringList.Add(str + ".g");
stringList.Add(str + ".b");
stringList.Add(str + ".a");
}
else if (materialProp.type == MaterialProperty.PropType.Vector)
{
stringList.Add(str + ".x");
stringList.Add(str + ".y");
stringList.Add(str + ".z");
stringList.Add(str + ".w");
}
else
{
stringList.Add(str);
}
bool found = false;
foreach (string propName in stringList)
{
if (AnimationMode.IsPropertyAnimated(target, propName))
{
found = true;
break;
}
}
if (!found)
{
color = Color.white;
return false;
}
if (AnimationMode.InAnimationRecording())
{
color = AnimationMode.recordedPropertyColor;
return true;
}
foreach (string propName in stringList)
{
if (AnimationMode.IsPropertyCandidate(target, propName))
{
color = AnimationMode.candidatePropertyColor;
return true;
}
}
color = AnimationMode.animatedPropertyColor;
return true;
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: fe7b10245245441ba4ac6ff89dd23ab3
timeCreated: 1701273095
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/EditorExtensions/GraphicMaterialOverrideHelper.cs
uploadId: 766200

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bc85c94df8771d44788e610e60a1958f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 196814563dea2d7469ff1de55d0d3815
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/Example Animation.anim
uploadId: 766200

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 404da49678522824d82c5911593942ce
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/Example Scene.unity
uploadId: 766200

View File

@ -0,0 +1,144 @@
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
// Modified with rights for use in demonstration by Lou Garczynski
Shader "Animate UI Material/Example"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_OverlayTex ("Overlay", 2D) = "white" {}
[HDR]_OverlayColor ("Overlay Color", Color) = (1, 1, 1, 1)
_Scale ("Scale", Range(0, 2)) = 1
_Rotation ("Rotation", Range(0, 360)) = 0
_Offset ("Offset", Vector) = (0, 0, 0, 0)
_StencilComp ("Stencil Comparison", Float) = 8
_Stencil ("Stencil ID", Float) = 0
_StencilOp ("Stencil Operation", Float) = 0
_StencilWriteMask ("Stencil Write Mask", Float) = 255
_StencilReadMask ("Stencil Read Mask", Float) = 255
_ColorMask ("Color Mask", Float) = 15
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
}
SubShader
{
Tags
{
"Queue"="Transparent"
"IgnoreProjector"="True"
"RenderType"="Transparent"
"PreviewType"="Plane"
"CanUseSpriteAtlas"="True"
}
Stencil
{
Ref [_Stencil]
Comp [_StencilComp]
Pass [_StencilOp]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
}
Cull Off
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend SrcAlpha OneMinusSrcAlpha
ColorMask [_ColorMask]
Pass
{
Name "Default"
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#include "UnityCG.cginc"
#include "UnityUI.cginc"
#pragma multi_compile_local _ UNITY_UI_CLIP_RECT
#pragma multi_compile_local _ UNITY_UI_ALPHACLIP
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
float4 worldPosition : TEXCOORD1;
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
fixed4 _Color;
fixed4 _TextureSampleAdd;
float4 _ClipRect;
float4 _MainTex_ST;
sampler2D _OverlayTex;
float4 _OverlayColor;
float _Scale;
float _Rotation;
float2 _Offset;
v2f vert(appdata_t v)
{
v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
OUT.worldPosition = v.vertex;
OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
OUT.color = v.color * _Color;
return OUT;
}
fixed4 frag(v2f IN) : SV_Target
{
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
// Calculate the overlay texture coordinates and sample it
float2 centeredUV = (IN.texcoord - 0.5)*2;
float2 overlayUV = centeredUV * _Scale;
float rad = _Rotation / 360 * 2 * UNITY_PI;
float2 rotatedUV = float2(
overlayUV.x * cos(rad) - overlayUV.y * sin(rad),
overlayUV.x * sin(rad) + overlayUV.y * cos(rad)
);
float2 normalizedUV = rotatedUV / 2 + 0.5;
float2 offsetUV = normalizedUV + float2(_Offset.x, _Offset.y);
fixed4 overlay = tex2D(_OverlayTex, offsetUV) * _OverlayColor;
// Blend the background and overlay textures
color = lerp(color, overlay, overlay.a);
#ifdef UNITY_UI_CLIP_RECT
color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
#endif
#ifdef UNITY_UI_ALPHACLIP
clip (color.a - 0.001);
#endif
return color;
}
ENDCG
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: d8010de858794e33a27636c6183ce4d2
timeCreated: 1682164300
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/ExampleUIShader.shader
uploadId: 766200

View File

@ -0,0 +1,72 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-7894766971529659986
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Animation
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 196814563dea2d7469ff1de55d0d3815, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Image
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 5797805570552003858}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &5797805570552003858
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -7894766971529659986}
m_Position: {x: 260, y: 120, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -7894766971529659986}

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: ba1af5f887a74c44190010c05f6748ee
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/Image.controller
uploadId: 766200

BIN
Assets/Plugins/Animate UI Materials/Examples/Texture 1.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,131 @@
fileFormatVersion: 2
guid: 212f10d282ba58242b61e8ad04af89d1
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/Texture 1.png
uploadId: 766200

BIN
Assets/Plugins/Animate UI Materials/Examples/Texture 2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,131 @@
fileFormatVersion: 2
guid: f5588e963e393074a943ed2b8a86fb1a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/Texture 2.png
uploadId: 766200

View File

@ -0,0 +1,50 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: UI Overlay
m_Shader: {fileID: 4800000, guid: d8010de858794e33a27636c6183ce4d2, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OverlayTex:
m_Texture: {fileID: 2800000, guid: 212f10d282ba58242b61e8ad04af89d1, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _ColorMask: 15
- _OffsetX: 0
- _OffsetY: 0
- _Rotation: 0
- _Scale: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _UseUIAlphaClip: 0
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _OverlayColor: {r: 1, g: 1, b: 1, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: da1cb4f2f1551d948a65d84276aef03d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 253197
packageName: Animate UI Materials
packageVersion: 1.3.0
assetPath: Assets/Plugins/Animate UI Materials/Examples/UI Overlay.mat
uploadId: 766200

Some files were not shown because too many files have changed in this diff Show More