├── .editorconfig
├── .gitattributes
├── .gitignore
├── Assets
├── Editor.meta
├── Editor
│ ├── BxUniMissingReferenceFinder.asset
│ └── BxUniMissingReferenceFinder.asset.meta
├── Materials.meta
├── Materials
│ ├── Material1.mat
│ ├── Material1.mat.meta
│ ├── Material2.mat
│ └── Material2.mat.meta
├── Scenes.meta
├── Scenes
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
├── TestObjects.prefab
├── TestObjects.prefab.meta
├── TestPrefab.prefab
└── TestPrefab.prefab.meta
├── Packages
├── MissingFinder
│ ├── Documentation~
│ │ ├── images
│ │ │ ├── .gitkeep
│ │ │ ├── mf01.png
│ │ │ └── mf02.png
│ │ └── index.md
│ ├── Editor.meta
│ ├── Editor
│ │ ├── BxUni.MissingFinder.Editor.asmdef
│ │ ├── BxUni.MissingFinder.Editor.asmdef.meta
│ │ ├── MissingFinderSettings.cs
│ │ ├── MissingFinderSettings.cs.meta
│ │ ├── MissingReferenceFinder.cs
│ │ └── MissingReferenceFinder.cs.meta
│ ├── LICENSE.md
│ ├── LICENSE.md.meta
│ ├── package.json
│ └── package.json.meta
├── manifest.json
└── packages-lock.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── PackageManagerSettings.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
└── XRSettings.asset
├── README.md
└── UserSettings
└── EditorUserSettings.asset
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.cs]
4 | indent_style = space
5 | indent_size = 4
6 | end_of_line = lf
7 | charset = utf-8
8 | # charset = utf-8-bom
9 |
10 | # CSharp code style settings:
11 | # Prefer "var" everywhere
12 | csharp_style_var_for_built_in_types = false : warning
13 | csharp_style_var_when_type_is_apparent = true : warning
14 | csharp_style_var_elsewhere = true : warning
15 |
16 | # Prefer method-like constructs to have a block body
17 | csharp_style_expression_bodied_methods = false : none
18 | csharp_style_expression_bodied_constructors = false : none
19 | csharp_style_expression_bodied_operators = false : none
20 |
21 | # Prefer property-like constructs to have an expression-body
22 | csharp_style_expression_bodied_properties = true : none
23 | csharp_style_expression_bodied_indexers = true : none
24 | csharp_style_expression_bodied_accessors = true : none
25 |
26 | # Suggest more modern language features when available
27 | csharp_style_pattern_matching_over_is_with_cast_check = true : suggestion
28 | csharp_style_pattern_matching_over_as_with_null_check = true : suggestion
29 | csharp_style_inlined_variable_declaration = true : suggestion
30 | csharp_style_throw_expression = true : suggestion
31 | csharp_style_conditional_delegate_call = true : suggestion
32 |
33 | # Newline settings
34 | csharp_new_line_before_open_brace = all
35 | csharp_new_line_before_else = true
36 | csharp_new_line_before_catch = true
37 | csharp_new_line_before_finally = true
38 | csharp_new_line_before_members_in_object_initializers = true
39 | csharp_new_line_before_members_in_anonymous_types = true
40 |
41 | # Indentation options
42 | csharp_indent_switch_labels = false
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ## Unity ##
2 | *.cs diff=csharp text
3 | *.cginc text
4 | *.shader text
5 | *.mat merge=unityyamlmerge
6 | *.anim merge=unityyamlmerge
7 | *.unity merge=unityyamlmerge
8 | *.physicsMaterial2D merge=unityyamlmerge
9 | *.physicsMaterial merge=unityyamlmerge
10 | *.asset merge=unityyamlmerge
11 | *.meta merge=unityyamlmerge
12 | *.controller merge=unityyamlmerge
13 |
14 | ## git-lfs ##
15 | #Image
16 | *.jpg filter=lfs diff=lfs merge=lfs -text
17 | *.jpeg filter=lfs diff=lfs merge=lfs -text
18 | *.png filter=lfs diff=lfs merge=lfs -text
19 | *.gif filter=lfs diff=lfs merge=lfs -text
20 | *.psd filter=lfs diff=lfs merge=lfs -text
21 | *.ai filter=lfs diff=lfs merge=lfs -text
22 | *.bmp filter=lfs diff=lfs merge=lfs -text
23 | *.tiff filter=lfs diff=lfs merge=lfs -text
24 | *.iff filter=lfs diff=lfs merge=lfs -text
25 | *.pict filter=lfs diff=lfs merge=lfs -text
26 |
27 | #Audio
28 | *.mp3 filter=lfs diff=lfs merge=lfs -text
29 | *.wav filter=lfs diff=lfs merge=lfs -text
30 | *.ogg filter=lfs diff=lfs merge=lfs -text
31 | *.aiff filter=lfs diff=lfs merge=lfs -text
32 | *.mod filter=lfs diff=lfs merge=lfs -text
33 | *.it filter=lfs diff=lfs merge=lfs -text
34 | *.s3m filter=lfs diff=lfs merge=lfs -text
35 | *.xm filter=lfs diff=lfs merge=lfs -text
36 | *.aif filter=lfs diff=lfs merge=lfs -text
37 |
38 | #Video
39 | *.mp4 filter=lfs diff=lfs merge=lfs -text
40 | *.mov filter=lfs diff=lfs merge=lfs -text
41 | *.avi filter=lfs diff=lfs merge=lfs -text
42 | *.mpg filter=lfs diff=lfs merge=lfs -text
43 | *.mpeg filter=lfs diff=lfs merge=lfs -text
44 | *.asf filter=lfs diff=lfs merge=lfs -text
45 |
46 | #3D Object
47 | *.FBX filter=lfs diff=lfs merge=lfs -text
48 | *.fbx filter=lfs diff=lfs merge=lfs -text
49 | *.blend filter=lfs diff=lfs merge=lfs -text
50 | *.obj filter=lfs diff=lfs merge=lfs -text
51 | *.dae filter=lfs diff=lfs merge=lfs -text
52 | *.3ds filter=lfs diff=lfs merge=lfs -text
53 | *.dxf filter=lfs diff=lfs merge=lfs -text
54 | *.max filter=lfs diff=lfs merge=lfs -text
55 | *.ma filter=lfs diff=lfs merge=lfs -text
56 | *.mb filter=lfs diff=lfs merge=lfs -text
57 |
58 | #font
59 | *.ttf filter=lfs diff=lfs merge=lfs -text
60 | *.otf filter=lfs diff=lfs merge=lfs -text
61 |
62 | # Android
63 | *.a filter=lfs diff=lfs merge=lfs -text
64 | *.so filter=lfs diff=lfs merge=lfs -text
65 |
66 | # library
67 | *.dll filter=lfs diff=lfs merge=lfs -text
68 |
69 | #ETC
70 | *.exr filter=lfs diff=lfs merge=lfs -text
71 | *.tga filter=lfs diff=lfs merge=lfs -text
72 | *.pdf filter=lfs diff=lfs merge=lfs -text
73 | *.zip filter=lfs diff=lfs merge=lfs -text
74 | *.rns filter=lfs diff=lfs merge=lfs -text
75 | *.reason filter=lfs diff=lfs merge=lfs -text
76 | *.lxo filter=lfs diff=lfs merge=lfs -text
77 | *.rar filter=lfs diff=lfs merge=lfs -text
78 | *.tar filter=lfs diff=lfs merge=lfs -text
79 | *.gz filter=lfs diff=lfs merge=lfs -text
80 | *.lzh filter=lfs diff=lfs merge=lfs -text
81 | *.7z filter=lfs diff=lfs merge=lfs -text
82 |
83 | #
84 | *.spm filter=lfs diff=lfs merge=lfs -text
85 | *.tif filter=lfs diff=lfs merge=lfs -text
86 | *.tiff filter=lfs diff=lfs merge=lfs -text
87 | *.unitypackage filter=lfs diff=lfs merge=lfs -text
88 | *.apk filter=lfs diff=lfs merge=lfs -text
89 |
90 | LightingData.asset filter=lfs diff=lfs merge=lfs -text
91 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Add any directories, files, or patterns you don't want to be tracked by version control
2 | /[Ll]ibrary/
3 | /[Tt]emp/
4 | /[Oo]bj/
5 | /[Bb]uild/
6 | /[Bb]uilds/
7 | /[Ss]witchIL2CPPCache/
8 | /[Ss]witchIL2CPPStats/
9 | /_[Cc]apture/
10 | /Assets/AssetStoreTools*
11 | /Logs/
12 | /Assets/Editor/CriWare/CriAtom/CriAtomWindowPrefs.asset
13 | /Assets/Editor/CriWare/CriAtom/CriAtomWindowPrefs.asset.meta
14 | /Assets/Editor/CriWare/CriAtom/saveAcfData.json
15 | /Assets/Editor/CriWare/CriAtom/saveAcfData.json.meta
16 | /Assets/AddressableAssetsData/iOS/
17 | /Assets/AddressableAssetsData/iOS.meta
18 | /Assets/AddressableAssetsData/Android/
19 | /Assets/AddressableAssetsData/Android.meta
20 |
21 | /Assets/Plugins/CodeStage/AntiCheatToolkit/Integration/
22 |
23 |
24 | /Assets/ScriptTemplates/
25 | /Assets/ScriptTemplates.meta
26 | /Assets/Application/Timeline/SpineAnimationTimeline/
27 | /Assets/Application/Timeline/SpineAnimationTimeline.meta
28 |
29 | /Recordings/
30 |
31 | # Autogenerated VS/MD solution and project files
32 | ExportedObj/
33 | *.csproj
34 | *.unityproj
35 | *.sln
36 | *.suo
37 | *.tmp
38 | *.user
39 | *.userprefs
40 | *.pidb
41 | *.booproj
42 | *.svd
43 |
44 | # output AddressableAssets folder.
45 | /ServerData
46 |
47 | # Unity3D generated meta files
48 | *.pidb.meta
49 |
50 | # Unity3D Generated File On Crash Reports
51 | sysinfo.txt
52 |
53 | # Builds
54 | *.apk
55 | *.unitypackage
56 |
57 | # VisualStudio
58 | /.vs/
59 | /.vscode/
60 | /.vsconfig
61 |
62 | # gradle build output
63 | /.gradle/
64 |
65 | # tools folder.
66 | /tools/node_modules/
67 | /tools/credentials.json
68 | /tools/package-lock.json
69 |
70 | # JetBrains IDEA
71 | /.idea/
72 |
--------------------------------------------------------------------------------
/Assets/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1356e04b012446247b04ba612a922a0b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Editor/BxUniMissingReferenceFinder.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: 07765c71d71d4584286ff664ca0b5b65, type: 3}
13 | m_Name: BxUniMissingReferenceFinder
14 | m_EditorClassIdentifier:
15 | m_targetFolder: {fileID: 0}
16 |
--------------------------------------------------------------------------------
/Assets/Editor/BxUniMissingReferenceFinder.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e13519c4148459841903dccef426f67c
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Materials.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 43c2ddad16adb29478d3e8c346908eaf
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Materials/Material1.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: Material1
11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords:
13 | m_LightmapFlags: 4
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 0}
44 | m_Scale: {x: 1, y: 1}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 0
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0.5
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 0
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 1
73 | - _UVSec: 0
74 | - _ZWrite: 1
75 | m_Colors:
76 | - _Color: {r: 1, g: 1, b: 1, a: 1}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 | m_BuildTextureStacks: []
79 |
--------------------------------------------------------------------------------
/Assets/Materials/Material1.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c6f4393cd33b1a548aead97f37212ef4
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Materials/Material2.mat:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!21 &2100000
4 | Material:
5 | serializedVersion: 6
6 | m_ObjectHideFlags: 0
7 | m_CorrespondingSourceObject: {fileID: 0}
8 | m_PrefabInstance: {fileID: 0}
9 | m_PrefabAsset: {fileID: 0}
10 | m_Name: Material2
11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
12 | m_ShaderKeywords:
13 | m_LightmapFlags: 4
14 | m_EnableInstancingVariants: 0
15 | m_DoubleSidedGI: 0
16 | m_CustomRenderQueue: -1
17 | stringTagMap: {}
18 | disabledShaderPasses: []
19 | m_SavedProperties:
20 | serializedVersion: 3
21 | m_TexEnvs:
22 | - _BumpMap:
23 | m_Texture: {fileID: 0}
24 | m_Scale: {x: 1, y: 1}
25 | m_Offset: {x: 0, y: 0}
26 | - _DetailAlbedoMap:
27 | m_Texture: {fileID: 0}
28 | m_Scale: {x: 1, y: 1}
29 | m_Offset: {x: 0, y: 0}
30 | - _DetailMask:
31 | m_Texture: {fileID: 0}
32 | m_Scale: {x: 1, y: 1}
33 | m_Offset: {x: 0, y: 0}
34 | - _DetailNormalMap:
35 | m_Texture: {fileID: 0}
36 | m_Scale: {x: 1, y: 1}
37 | m_Offset: {x: 0, y: 0}
38 | - _EmissionMap:
39 | m_Texture: {fileID: 0}
40 | m_Scale: {x: 1, y: 1}
41 | m_Offset: {x: 0, y: 0}
42 | - _MainTex:
43 | m_Texture: {fileID: 2800000, guid: b8b0de46327d5b64db16791852994217, type: 3}
44 | m_Scale: {x: 1, y: 1}
45 | m_Offset: {x: 0, y: 0}
46 | - _MetallicGlossMap:
47 | m_Texture: {fileID: 0}
48 | m_Scale: {x: 1, y: 1}
49 | m_Offset: {x: 0, y: 0}
50 | - _OcclusionMap:
51 | m_Texture: {fileID: 0}
52 | m_Scale: {x: 1, y: 1}
53 | m_Offset: {x: 0, y: 0}
54 | - _ParallaxMap:
55 | m_Texture: {fileID: 0}
56 | m_Scale: {x: 1, y: 1}
57 | m_Offset: {x: 0, y: 0}
58 | m_Floats:
59 | - _BumpScale: 1
60 | - _Cutoff: 0.5
61 | - _DetailNormalMapScale: 1
62 | - _DstBlend: 0
63 | - _GlossMapScale: 1
64 | - _Glossiness: 0.5
65 | - _GlossyReflections: 1
66 | - _Metallic: 0
67 | - _Mode: 0
68 | - _OcclusionStrength: 1
69 | - _Parallax: 0.02
70 | - _SmoothnessTextureChannel: 0
71 | - _SpecularHighlights: 1
72 | - _SrcBlend: 1
73 | - _UVSec: 0
74 | - _ZWrite: 1
75 | m_Colors:
76 | - _Color: {r: 1, g: 1, b: 1, a: 1}
77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
78 | m_BuildTextureStacks: []
79 |
--------------------------------------------------------------------------------
/Assets/Materials/Material2.mat.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 76f8e99e21c82c64f9b8c018797d0e50
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 2100000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 30aaf280e2cb6b34c91a8d248d81a691
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 9
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 3
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 0
55 | m_EnableRealtimeLightmaps: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 512
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 256
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 1
83 | m_PVRDenoiserTypeDirect: 1
84 | m_PVRDenoiserTypeIndirect: 1
85 | m_PVRDenoiserTypeAO: 1
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 1
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightProbeSampleCountMultiplier: 4
100 | m_LightingDataAsset: {fileID: 0}
101 | m_LightingSettings: {fileID: 0}
102 | --- !u!196 &4
103 | NavMeshSettings:
104 | serializedVersion: 2
105 | m_ObjectHideFlags: 0
106 | m_BuildSettings:
107 | serializedVersion: 2
108 | agentTypeID: 0
109 | agentRadius: 0.5
110 | agentHeight: 2
111 | agentSlope: 45
112 | agentClimb: 0.4
113 | ledgeDropHeight: 0
114 | maxJumpAcrossDistance: 0
115 | minRegionArea: 2
116 | manualCellSize: 0
117 | cellSize: 0.16666667
118 | manualTileSize: 0
119 | tileSize: 256
120 | accuratePlacement: 0
121 | maxJobWorkers: 0
122 | preserveTilesOutsideBounds: 0
123 | debug:
124 | m_Flags: 0
125 | m_NavMeshData: {fileID: 0}
126 | --- !u!1001 &1336841109
127 | PrefabInstance:
128 | m_ObjectHideFlags: 0
129 | serializedVersion: 2
130 | m_Modification:
131 | m_TransformParent: {fileID: 0}
132 | m_Modifications:
133 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
134 | propertyPath: m_RootOrder
135 | value: 1
136 | objectReference: {fileID: 0}
137 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
138 | propertyPath: m_LocalPosition.x
139 | value: 0
140 | objectReference: {fileID: 0}
141 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
142 | propertyPath: m_LocalPosition.y
143 | value: 0
144 | objectReference: {fileID: 0}
145 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
146 | propertyPath: m_LocalPosition.z
147 | value: 0
148 | objectReference: {fileID: 0}
149 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
150 | propertyPath: m_LocalRotation.w
151 | value: 1
152 | objectReference: {fileID: 0}
153 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
154 | propertyPath: m_LocalRotation.x
155 | value: 0
156 | objectReference: {fileID: 0}
157 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
158 | propertyPath: m_LocalRotation.y
159 | value: 0
160 | objectReference: {fileID: 0}
161 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
162 | propertyPath: m_LocalRotation.z
163 | value: 0
164 | objectReference: {fileID: 0}
165 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
166 | propertyPath: m_LocalEulerAnglesHint.x
167 | value: 0
168 | objectReference: {fileID: 0}
169 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
170 | propertyPath: m_LocalEulerAnglesHint.y
171 | value: 0
172 | objectReference: {fileID: 0}
173 | - target: {fileID: 4738414965533116576, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
174 | propertyPath: m_LocalEulerAnglesHint.z
175 | value: 0
176 | objectReference: {fileID: 0}
177 | - target: {fileID: 8677026975993777373, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
178 | propertyPath: m_Name
179 | value: TestPrefab
180 | objectReference: {fileID: 0}
181 | m_RemovedComponents: []
182 | m_SourcePrefab: {fileID: 100100000, guid: 61aaf5635f4aace4ca78fa373aa25d42, type: 3}
183 | --- !u!1 &1990607210
184 | GameObject:
185 | m_ObjectHideFlags: 0
186 | m_CorrespondingSourceObject: {fileID: 0}
187 | m_PrefabInstance: {fileID: 0}
188 | m_PrefabAsset: {fileID: 0}
189 | serializedVersion: 6
190 | m_Component:
191 | - component: {fileID: 1990607213}
192 | - component: {fileID: 1990607212}
193 | - component: {fileID: 1990607211}
194 | m_Layer: 0
195 | m_Name: Main Camera
196 | m_TagString: MainCamera
197 | m_Icon: {fileID: 0}
198 | m_NavMeshLayer: 0
199 | m_StaticEditorFlags: 0
200 | m_IsActive: 1
201 | --- !u!81 &1990607211
202 | AudioListener:
203 | m_ObjectHideFlags: 0
204 | m_CorrespondingSourceObject: {fileID: 0}
205 | m_PrefabInstance: {fileID: 0}
206 | m_PrefabAsset: {fileID: 0}
207 | m_GameObject: {fileID: 1990607210}
208 | m_Enabled: 1
209 | --- !u!20 &1990607212
210 | Camera:
211 | m_ObjectHideFlags: 0
212 | m_CorrespondingSourceObject: {fileID: 0}
213 | m_PrefabInstance: {fileID: 0}
214 | m_PrefabAsset: {fileID: 0}
215 | m_GameObject: {fileID: 1990607210}
216 | m_Enabled: 1
217 | serializedVersion: 2
218 | m_ClearFlags: 1
219 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
220 | m_projectionMatrixMode: 1
221 | m_GateFitMode: 2
222 | m_FOVAxisMode: 0
223 | m_SensorSize: {x: 36, y: 24}
224 | m_LensShift: {x: 0, y: 0}
225 | m_FocalLength: 50
226 | m_NormalizedViewPortRect:
227 | serializedVersion: 2
228 | x: 0
229 | y: 0
230 | width: 1
231 | height: 1
232 | near clip plane: 0.3
233 | far clip plane: 1000
234 | field of view: 60
235 | orthographic: 1
236 | orthographic size: 5
237 | m_Depth: -1
238 | m_CullingMask:
239 | serializedVersion: 2
240 | m_Bits: 4294967295
241 | m_RenderingPath: -1
242 | m_TargetTexture: {fileID: 0}
243 | m_TargetDisplay: 0
244 | m_TargetEye: 3
245 | m_HDR: 1
246 | m_AllowMSAA: 1
247 | m_AllowDynamicResolution: 0
248 | m_ForceIntoRT: 0
249 | m_OcclusionCulling: 1
250 | m_StereoConvergence: 10
251 | m_StereoSeparation: 0.022
252 | --- !u!4 &1990607213
253 | Transform:
254 | m_ObjectHideFlags: 0
255 | m_CorrespondingSourceObject: {fileID: 0}
256 | m_PrefabInstance: {fileID: 0}
257 | m_PrefabAsset: {fileID: 0}
258 | m_GameObject: {fileID: 1990607210}
259 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
260 | m_LocalPosition: {x: 0, y: 0, z: -10}
261 | m_LocalScale: {x: 1, y: 1, z: 1}
262 | m_Children: []
263 | m_Father: {fileID: 0}
264 | m_RootOrder: 0
265 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
266 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2cda990e2423bbf4892e6590ba056729
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/TestObjects.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &3943136416056154452
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 847193534531403265}
12 | - component: {fileID: 82692249728275680}
13 | m_Layer: 0
14 | m_Name: Manager
15 | m_TagString: Untagged
16 | m_Icon: {fileID: 0}
17 | m_NavMeshLayer: 0
18 | m_StaticEditorFlags: 0
19 | m_IsActive: 1
20 | --- !u!4 &847193534531403265
21 | Transform:
22 | m_ObjectHideFlags: 0
23 | m_CorrespondingSourceObject: {fileID: 0}
24 | m_PrefabInstance: {fileID: 0}
25 | m_PrefabAsset: {fileID: 0}
26 | m_GameObject: {fileID: 3943136416056154452}
27 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28 | m_LocalPosition: {x: 0, y: 0, z: 0}
29 | m_LocalScale: {x: 1, y: 1, z: 1}
30 | m_Children: []
31 | m_Father: {fileID: 9122012603335456481}
32 | m_RootOrder: 2
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!114 &82692249728275680
35 | MonoBehaviour:
36 | m_ObjectHideFlags: 0
37 | m_CorrespondingSourceObject: {fileID: 0}
38 | m_PrefabInstance: {fileID: 0}
39 | m_PrefabAsset: {fileID: 0}
40 | m_GameObject: {fileID: 3943136416056154452}
41 | m_Enabled: 1
42 | m_EditorHideFlags: 0
43 | m_Script: {fileID: 11500000, guid: 3f9e32f6f35eb304eae1636d869f7f59, type: 3}
44 | m_Name:
45 | m_EditorClassIdentifier:
46 | --- !u!1 &9122012603185260372
47 | GameObject:
48 | m_ObjectHideFlags: 0
49 | m_CorrespondingSourceObject: {fileID: 0}
50 | m_PrefabInstance: {fileID: 0}
51 | m_PrefabAsset: {fileID: 0}
52 | serializedVersion: 6
53 | m_Component:
54 | - component: {fileID: 9122012603185260375}
55 | - component: {fileID: 9122012603185260374}
56 | m_Layer: 0
57 | m_Name: Sprite1
58 | m_TagString: Untagged
59 | m_Icon: {fileID: 0}
60 | m_NavMeshLayer: 0
61 | m_StaticEditorFlags: 0
62 | m_IsActive: 1
63 | --- !u!4 &9122012603185260375
64 | Transform:
65 | m_ObjectHideFlags: 0
66 | m_CorrespondingSourceObject: {fileID: 0}
67 | m_PrefabInstance: {fileID: 0}
68 | m_PrefabAsset: {fileID: 0}
69 | m_GameObject: {fileID: 9122012603185260372}
70 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
71 | m_LocalPosition: {x: 0, y: 0, z: 10}
72 | m_LocalScale: {x: 1, y: 1, z: 1}
73 | m_Children: []
74 | m_Father: {fileID: 9122012603335456481}
75 | m_RootOrder: 0
76 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
77 | --- !u!212 &9122012603185260374
78 | SpriteRenderer:
79 | m_ObjectHideFlags: 0
80 | m_CorrespondingSourceObject: {fileID: 0}
81 | m_PrefabInstance: {fileID: 0}
82 | m_PrefabAsset: {fileID: 0}
83 | m_GameObject: {fileID: 9122012603185260372}
84 | m_Enabled: 1
85 | m_CastShadows: 0
86 | m_ReceiveShadows: 0
87 | m_DynamicOccludee: 1
88 | m_MotionVectors: 1
89 | m_LightProbeUsage: 1
90 | m_ReflectionProbeUsage: 1
91 | m_RayTracingMode: 0
92 | m_RayTraceProcedural: 0
93 | m_RenderingLayerMask: 1
94 | m_RendererPriority: 0
95 | m_Materials:
96 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
97 | m_StaticBatchInfo:
98 | firstSubMesh: 0
99 | subMeshCount: 0
100 | m_StaticBatchRoot: {fileID: 0}
101 | m_ProbeAnchor: {fileID: 0}
102 | m_LightProbeVolumeOverride: {fileID: 0}
103 | m_ScaleInLightmap: 1
104 | m_ReceiveGI: 1
105 | m_PreserveUVs: 0
106 | m_IgnoreNormalsForChartDetection: 0
107 | m_ImportantGI: 0
108 | m_StitchLightmapSeams: 1
109 | m_SelectedEditorRenderState: 0
110 | m_MinimumChartSize: 4
111 | m_AutoUVMaxDistance: 0.5
112 | m_AutoUVMaxAngle: 89
113 | m_LightmapParameters: {fileID: 0}
114 | m_SortingLayerID: 0
115 | m_SortingLayer: 0
116 | m_SortingOrder: 0
117 | m_Sprite: {fileID: 0}
118 | m_Color: {r: 1, g: 1, b: 1, a: 1}
119 | m_FlipX: 0
120 | m_FlipY: 0
121 | m_DrawMode: 0
122 | m_Size: {x: 1, y: 1}
123 | m_AdaptiveModeThreshold: 0.5
124 | m_SpriteTileMode: 0
125 | m_WasSpriteAssigned: 0
126 | m_MaskInteraction: 0
127 | m_SpriteSortPoint: 0
128 | --- !u!1 &9122012603210578570
129 | GameObject:
130 | m_ObjectHideFlags: 0
131 | m_CorrespondingSourceObject: {fileID: 0}
132 | m_PrefabInstance: {fileID: 0}
133 | m_PrefabAsset: {fileID: 0}
134 | serializedVersion: 6
135 | m_Component:
136 | - component: {fileID: 9122012603210578573}
137 | - component: {fileID: 9122012603210578572}
138 | m_Layer: 0
139 | m_Name: Sprite2
140 | m_TagString: Untagged
141 | m_Icon: {fileID: 0}
142 | m_NavMeshLayer: 0
143 | m_StaticEditorFlags: 0
144 | m_IsActive: 1
145 | --- !u!4 &9122012603210578573
146 | Transform:
147 | m_ObjectHideFlags: 0
148 | m_CorrespondingSourceObject: {fileID: 0}
149 | m_PrefabInstance: {fileID: 0}
150 | m_PrefabAsset: {fileID: 0}
151 | m_GameObject: {fileID: 9122012603210578570}
152 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
153 | m_LocalPosition: {x: 0, y: 0, z: 10}
154 | m_LocalScale: {x: 1, y: 1, z: 1}
155 | m_Children: []
156 | m_Father: {fileID: 9122012603335456481}
157 | m_RootOrder: 1
158 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
159 | --- !u!212 &9122012603210578572
160 | SpriteRenderer:
161 | m_ObjectHideFlags: 0
162 | m_CorrespondingSourceObject: {fileID: 0}
163 | m_PrefabInstance: {fileID: 0}
164 | m_PrefabAsset: {fileID: 0}
165 | m_GameObject: {fileID: 9122012603210578570}
166 | m_Enabled: 1
167 | m_CastShadows: 0
168 | m_ReceiveShadows: 0
169 | m_DynamicOccludee: 1
170 | m_MotionVectors: 1
171 | m_LightProbeUsage: 1
172 | m_ReflectionProbeUsage: 1
173 | m_RayTracingMode: 0
174 | m_RayTraceProcedural: 0
175 | m_RenderingLayerMask: 1
176 | m_RendererPriority: 0
177 | m_Materials:
178 | - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
179 | m_StaticBatchInfo:
180 | firstSubMesh: 0
181 | subMeshCount: 0
182 | m_StaticBatchRoot: {fileID: 0}
183 | m_ProbeAnchor: {fileID: 0}
184 | m_LightProbeVolumeOverride: {fileID: 0}
185 | m_ScaleInLightmap: 1
186 | m_ReceiveGI: 1
187 | m_PreserveUVs: 0
188 | m_IgnoreNormalsForChartDetection: 0
189 | m_ImportantGI: 0
190 | m_StitchLightmapSeams: 1
191 | m_SelectedEditorRenderState: 0
192 | m_MinimumChartSize: 4
193 | m_AutoUVMaxDistance: 0.5
194 | m_AutoUVMaxAngle: 89
195 | m_LightmapParameters: {fileID: 0}
196 | m_SortingLayerID: 0
197 | m_SortingLayer: 0
198 | m_SortingOrder: 0
199 | m_Sprite: {fileID: 7482667652216324306, guid: ba5d06461818c2243802743d1e0edefe, type: 3}
200 | m_Color: {r: 1, g: 1, b: 1, a: 1}
201 | m_FlipX: 0
202 | m_FlipY: 0
203 | m_DrawMode: 0
204 | m_Size: {x: 1, y: 1}
205 | m_AdaptiveModeThreshold: 0.5
206 | m_SpriteTileMode: 0
207 | m_WasSpriteAssigned: 0
208 | m_MaskInteraction: 0
209 | m_SpriteSortPoint: 0
210 | --- !u!1 &9122012603335456494
211 | GameObject:
212 | m_ObjectHideFlags: 0
213 | m_CorrespondingSourceObject: {fileID: 0}
214 | m_PrefabInstance: {fileID: 0}
215 | m_PrefabAsset: {fileID: 0}
216 | serializedVersion: 6
217 | m_Component:
218 | - component: {fileID: 9122012603335456481}
219 | m_Layer: 0
220 | m_Name: TestObjects
221 | m_TagString: Untagged
222 | m_Icon: {fileID: 0}
223 | m_NavMeshLayer: 0
224 | m_StaticEditorFlags: 0
225 | m_IsActive: 1
226 | --- !u!4 &9122012603335456481
227 | Transform:
228 | m_ObjectHideFlags: 0
229 | m_CorrespondingSourceObject: {fileID: 0}
230 | m_PrefabInstance: {fileID: 0}
231 | m_PrefabAsset: {fileID: 0}
232 | m_GameObject: {fileID: 9122012603335456494}
233 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
234 | m_LocalPosition: {x: 0, y: 0, z: 0}
235 | m_LocalScale: {x: 1, y: 1, z: 1}
236 | m_Children:
237 | - {fileID: 9122012603185260375}
238 | - {fileID: 9122012603210578573}
239 | - {fileID: 847193534531403265}
240 | m_Father: {fileID: 0}
241 | m_RootOrder: 0
242 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
243 |
--------------------------------------------------------------------------------
/Assets/TestObjects.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a3a5adf3c73719c428b39e2f9d756d2e
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/TestPrefab.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &8677026975993777373
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | serializedVersion: 6
10 | m_Component:
11 | - component: {fileID: 4738414965533116576}
12 | m_Layer: 0
13 | m_Name: TestPrefab
14 | m_TagString: Untagged
15 | m_Icon: {fileID: 0}
16 | m_NavMeshLayer: 0
17 | m_StaticEditorFlags: 0
18 | m_IsActive: 1
19 | --- !u!4 &4738414965533116576
20 | Transform:
21 | m_ObjectHideFlags: 0
22 | m_CorrespondingSourceObject: {fileID: 0}
23 | m_PrefabInstance: {fileID: 0}
24 | m_PrefabAsset: {fileID: 0}
25 | m_GameObject: {fileID: 8677026975993777373}
26 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
27 | m_LocalPosition: {x: 0, y: 0, z: 0}
28 | m_LocalScale: {x: 1, y: 1, z: 1}
29 | m_Children:
30 | - {fileID: 455256634751554500}
31 | m_Father: {fileID: 0}
32 | m_RootOrder: 0
33 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
34 | --- !u!1001 &8702787772214388005
35 | PrefabInstance:
36 | m_ObjectHideFlags: 0
37 | serializedVersion: 2
38 | m_Modification:
39 | m_TransformParent: {fileID: 4738414965533116576}
40 | m_Modifications:
41 | - target: {fileID: 1800082445630344486, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
42 | propertyPath: m_Sprite
43 | value:
44 | objectReference: {fileID: 0}
45 | - target: {fileID: 1800082445630344486, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
46 | propertyPath: m_WasSpriteAssigned
47 | value: 0
48 | objectReference: {fileID: 0}
49 | - target: {fileID: 9122012603210578572, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
50 | propertyPath: m_Size.x
51 | value: 0.16
52 | objectReference: {fileID: 0}
53 | - target: {fileID: 9122012603210578572, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
54 | propertyPath: m_Size.y
55 | value: 0.16
56 | objectReference: {fileID: 0}
57 | - target: {fileID: 9122012603210578572, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
58 | propertyPath: m_Sprite
59 | value:
60 | objectReference: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
61 | - target: {fileID: 9122012603210578572, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
62 | propertyPath: m_WasSpriteAssigned
63 | value: 1
64 | objectReference: {fileID: 0}
65 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
66 | propertyPath: m_RootOrder
67 | value: 0
68 | objectReference: {fileID: 0}
69 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
70 | propertyPath: m_LocalPosition.x
71 | value: 0
72 | objectReference: {fileID: 0}
73 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
74 | propertyPath: m_LocalPosition.y
75 | value: 0
76 | objectReference: {fileID: 0}
77 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
78 | propertyPath: m_LocalPosition.z
79 | value: -10
80 | objectReference: {fileID: 0}
81 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
82 | propertyPath: m_LocalRotation.w
83 | value: 1
84 | objectReference: {fileID: 0}
85 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
86 | propertyPath: m_LocalRotation.x
87 | value: -0
88 | objectReference: {fileID: 0}
89 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
90 | propertyPath: m_LocalRotation.y
91 | value: -0
92 | objectReference: {fileID: 0}
93 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
94 | propertyPath: m_LocalRotation.z
95 | value: -0
96 | objectReference: {fileID: 0}
97 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
98 | propertyPath: m_LocalEulerAnglesHint.x
99 | value: 0
100 | objectReference: {fileID: 0}
101 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
102 | propertyPath: m_LocalEulerAnglesHint.y
103 | value: 0
104 | objectReference: {fileID: 0}
105 | - target: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
106 | propertyPath: m_LocalEulerAnglesHint.z
107 | value: 0
108 | objectReference: {fileID: 0}
109 | - target: {fileID: 9122012603335456494, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
110 | propertyPath: m_Name
111 | value: TestObjects
112 | objectReference: {fileID: 0}
113 | m_RemovedComponents: []
114 | m_SourcePrefab: {fileID: 100100000, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
115 | --- !u!4 &455256634751554500 stripped
116 | Transform:
117 | m_CorrespondingSourceObject: {fileID: 9122012603335456481, guid: a3a5adf3c73719c428b39e2f9d756d2e, type: 3}
118 | m_PrefabInstance: {fileID: 8702787772214388005}
119 | m_PrefabAsset: {fileID: 0}
120 |
--------------------------------------------------------------------------------
/Assets/TestPrefab.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 61aaf5635f4aace4ca78fa373aa25d42
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Documentation~/images/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bexide/BxUni-MissingFinder/5b347054c784a4322242b52e99827ed24f631773/Packages/MissingFinder/Documentation~/images/.gitkeep
--------------------------------------------------------------------------------
/Packages/MissingFinder/Documentation~/images/mf01.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c536b401daff8671cdc38e134413263ce0231206e5074827915360a5ddb9a140
3 | size 23169
4 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Documentation~/images/mf02.png:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1420accd4e89c8511b9d808c308c93c70fbc6c482b6daf2eef678e1629fdcb34
3 | size 49563
4 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Documentation~/index.md:
--------------------------------------------------------------------------------
1 | # Missing Finder
2 |
3 | ## 概要
4 |
5 | アセット中の参照切れ(Missing)を検出します
6 |
7 | ## インストール
8 |
9 | ### Package Manager からのインストール
10 |
11 | * Package Manager → Scoped Registries に以下を登録
12 | * URL: https://package.openupm.com
13 | * Scope: jp.co.bexide
14 | * Package Manager → My Registries から以下を選択して Install
15 | * BxUni Missing Finder
16 |
17 | ## 使い方
18 |
19 | ### 起動
20 |
21 | UnityEditorメニュー → BeXide → Missing Reference Finder
22 |
23 |
24 | 
25 |
26 | ### 設定項目
27 |
28 | #### 対象フォルダ
29 |
30 | チェクしたいフォルダを指定します。
31 | 右端のボタンを押してリストから選択するか、またはプロジェクトウィンドウからフォルダをドラッグ・アンド・ドロップします。
32 |
33 | #### 対象アセットタイプ
34 |
35 | チェックしたいアセットのタイプを選びます。
36 | デフォルトでは全てのタイプが対象となっていますが、対象を絞りたい場合はここから指定することができます。
37 |
38 | ### チェック実行
39 |
40 | 「チェック」ボタンを押すと実行されます。実行中に中断したい場合は「キャンセル」ボタンを押します。
41 |
42 | ## 結果の見方
43 |
44 | 検査が終わると検査結果が表示されます。
45 |
46 | 
47 |
48 | | 欄 | 内容 |
49 | |----------|-----------------------|
50 | | Asset | 問題のあるアセットへの参照 |
51 | | SubAsset | アセット中の、問題のあるオブジェクトの名前 |
52 | | Property | 問題のあるプロパティ |
53 |
54 | ## 修正機能
55 |
56 | 検査結果の下にある「参照切れを削除」ボタンを押すと、検出された参照切れを全てクリアします。
57 | この操作により元より設定されていた参照は永久に失われ、アンドゥできませんのでご注意ください。
58 |
59 | ## お問い合わせ
60 |
61 | * 不具合のご報告は GitHub の Issues へ
62 | * その他お問い合わせは mailto:tech-info@bexide.co.jp へ
63 |
64 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 98d21233fec64f0409c9890b58218ce9
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor/BxUni.MissingFinder.Editor.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "BxUni.MissingFinder.Editor",
3 | "rootNamespace": "",
4 | "references": [
5 | "Unity.EditorCoroutines.Editor"
6 | ],
7 | "includePlatforms": [
8 | "Editor"
9 | ],
10 | "excludePlatforms": [],
11 | "allowUnsafeCode": false,
12 | "overrideReferences": false,
13 | "precompiledReferences": [],
14 | "autoReferenced": true,
15 | "defineConstraints": [],
16 | "versionDefines": [],
17 | "noEngineReferences": false
18 | }
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor/BxUni.MissingFinder.Editor.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1d49f9e1c4b2102488f892ec25525c43
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor/MissingFinderSettings.cs:
--------------------------------------------------------------------------------
1 | // 2022-12-08 BeXide,Inc.
2 | // by Y.Hayashi
3 |
4 | using UnityEngine;
5 | using UnityEditor;
6 |
7 | namespace BxUni.MissingFinder
8 | {
9 | ///
10 | /// TextureCheckerの設定を保存するアセット
11 | ///
12 | internal class MissingFinderSettings : ScriptableObject
13 | {
14 | ///
15 | /// デフォルトの検査対象パス
16 | ///
17 | [SerializeField]
18 | private DefaultAsset m_targetFolder;
19 |
20 | public DefaultAsset TargetFolder
21 | {
22 | get => m_targetFolder;
23 | set
24 | {
25 | if (value != m_targetFolder)
26 | {
27 | m_targetFolder = value;
28 | EditorUtility.SetDirty(this);
29 | }
30 | }
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor/MissingFinderSettings.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 07765c71d71d4584286ff664ca0b5b65
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Packages/MissingFinder/Editor/MissingReferenceFinder.cs:
--------------------------------------------------------------------------------
1 | // (C)2022 BeXide,Inc
2 |
3 | using System.Collections;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.IO;
7 | using Unity.EditorCoroutines.Editor;
8 | using UnityEngine;
9 | using UnityEditor;
10 | using UnityEditor.IMGUI.Controls;
11 |
12 | namespace BxUni.MissingFinder
13 | {
14 | ///
15 | /// Missingがあるアセットを検索してそのリストを表示する
16 | ///
17 | public class MissingReferenceFinder : EditorWindow
18 | {
19 | private class AssetParameterData
20 | {
21 | public Object m_baseObj;
22 | public string m_objectPath;
23 | public SerializedProperty m_property;
24 | }
25 |
26 | [System.Flags]
27 | enum AssetType
28 | {
29 | Prefab = 1 << 0,
30 | Material = 1 << 1,
31 | Animator = 1 << 2,
32 | Script = 1 << 3,
33 | Shader = 1 << 4,
34 | Mask = 1 << 5,
35 | Timeline = 1 << 6,
36 | Other = 1 << 7,
37 | };
38 |
39 | private readonly string[] k_extensions =
40 | {
41 | ".prefab", ".mat", ".controller", ".cs", ".shader", ".mask", ".playable", ".asset"
42 | };
43 |
44 | /// 設定
45 | private MissingFinderSettings Settings { get; set; }
46 |
47 | /// GUI
48 | private MultiColumnHeader m_columnHeader;
49 |
50 | private MultiColumnHeaderState.Column[] m_columns;
51 |
52 | private AssetType m_targetAssetTypes = (AssetType)~0;
53 |
54 | private List MissingList { get; set; }
55 |
56 | private Vector2 m_scrollPos;
57 |
58 | [MenuItem("BeXide/Missing Reference Finder")]
59 | private static void ShowMissingList()
60 | {
61 | // ウィンドウを表示
62 | var window = GetWindow();
63 | //window.minSize = new Vector2(900, 300);
64 |
65 | window.Initialize();
66 | }
67 |
68 | /// 初期化
69 | private void Initialize()
70 | {
71 | LoadSettings();
72 | InitializeMultiColumnHeader();
73 | }
74 |
75 | private void LoadSettings()
76 | {
77 | string settingsPath = $"Assets/Editor/BxUniMissingReferenceFinder.asset";
78 | Settings = AssetDatabase.LoadAssetAtPath(settingsPath);
79 |
80 | if (Settings == null)
81 | {
82 | Settings = CreateInstance();
83 | CheckDirectory(settingsPath);
84 | AssetDatabase.CreateAsset(Settings, settingsPath);
85 | }
86 | }
87 |
88 | private void CheckDirectory(string path)
89 | {
90 | string directory = Path.GetDirectoryName(path);
91 | if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
92 | {
93 | Directory.CreateDirectory(directory);
94 | }
95 | }
96 |
97 | ///
98 | /// マルチカラムヘッダ初期化
99 | ///
100 | private void InitializeMultiColumnHeader()
101 | {
102 | m_columns = new[]
103 | {
104 | new MultiColumnHeaderState.Column()
105 | {
106 | headerContent = new GUIContent("Asset"),
107 | width = 100f,
108 | autoResize = true,
109 | headerTextAlignment = TextAlignment.Left
110 | },
111 | new MultiColumnHeaderState.Column()
112 | {
113 | headerContent = new GUIContent("SubAsset"),
114 | width = 50f,
115 | autoResize = true,
116 | headerTextAlignment = TextAlignment.Left
117 | },
118 | new MultiColumnHeaderState.Column()
119 | {
120 | headerContent = new GUIContent("Property"),
121 | width = 100f,
122 | autoResize = true,
123 | headerTextAlignment = TextAlignment.Left
124 | },
125 | };
126 | m_columnHeader
127 | = new MultiColumnHeader(new MultiColumnHeaderState(m_columns)) { height = 25 };
128 | m_columnHeader.ResizeToFit();
129 | //m_columnHeader.sortingChanged += OnSortingChanged;
130 | }
131 |
132 | private void ClearResult()
133 | {
134 | if (MissingList == null) { MissingList = new List(); }
135 | else { MissingList.Clear(); }
136 | }
137 |
138 | private void OnGUI()
139 | {
140 | EditorGUILayout.LabelField("アセット中の参照切れを検出します");
141 | EditorGUILayout.Space();
142 |
143 | var newTarget =
144 | EditorGUILayout.ObjectField(
145 | "対象フォルダ",
146 | Settings.TargetFolder,
147 | typeof(DefaultAsset),
148 | allowSceneObjects: false);
149 | Settings.TargetFolder = newTarget as DefaultAsset;
150 |
151 | m_targetAssetTypes = (AssetType)EditorGUILayout.EnumFlagsField(
152 | "対象アセットタイプ", m_targetAssetTypes);
153 |
154 | if (MissingList == null)
155 | {
156 | EditorGUILayout.HelpBox(
157 | "チェックを開始するには下のチェックボタンを押してください。",
158 | MessageType.Info);
159 | }
160 |
161 | EditorGUILayout.BeginHorizontal();
162 | if (GUILayout.Button("チェック", GUILayout.MaxWidth(120)))
163 | {
164 | EditorCoroutineUtility.StartCoroutine(Execute(), this);
165 | }
166 |
167 | EditorGUI.BeginDisabledGroup(MissingList == null);
168 | if (GUILayout.Button("クリア", GUILayout.MaxWidth(120))) { ClearResult(); }
169 | EditorGUI.EndDisabledGroup();
170 | EditorGUILayout.EndHorizontal();
171 |
172 | DrawResult();
173 | }
174 |
175 | ///
176 | /// Missingのリストを表示
177 | ///
178 | private void DrawResult()
179 | {
180 | if (MissingList == null) { return; }
181 |
182 | if (MissingList.Count == 0)
183 | {
184 | EditorGUILayout.HelpBox("見つかりませんでした。", MessageType.Info);
185 | return;
186 | }
187 |
188 | // カラムヘッダ
189 | var headerRect = EditorGUILayout.GetControlRect();
190 | headerRect.height = m_columnHeader.height;
191 | float xScroll = 0;
192 | m_columnHeader.OnGUI(headerRect, xScroll);
193 |
194 | // リスト表示
195 | m_scrollPos = EditorGUILayout.BeginScrollView(m_scrollPos);
196 |
197 | foreach (var data in MissingList)
198 | {
199 | EditorGUILayout.BeginHorizontal();
200 | EditorGUILayout.ObjectField(
201 | data.m_baseObj,
202 | data.m_baseObj.GetType(),
203 | true,
204 | GUILayout.Width(m_columnHeader.GetColumnRect(0).width - 2f));
205 | EditorGUILayout.TextField(
206 | data.m_objectPath,
207 | GUILayout.Width(m_columnHeader.GetColumnRect(1).width - 2f));
208 | EditorGUILayout.TextField(data.m_property.propertyPath);
209 | EditorGUILayout.EndHorizontal();
210 | }
211 | EditorGUILayout.EndScrollView();
212 |
213 | // 修正ボタン
214 | if (GUILayout.Button("参照切れを削除")) { ConfirmFixMissingReferences(); }
215 | }
216 |
217 | ///
218 | /// 検索実行
219 | ///
220 | private IEnumerator Execute()
221 | {
222 | ClearResult();
223 |
224 | string targetPath = AssetDatabase.GetAssetPath(Settings.TargetFolder);
225 | if (string.IsNullOrEmpty(targetPath)) { targetPath = "Assets"; }
226 |
227 | string[] guids = AssetDatabase.FindAssets("", new[] { targetPath });
228 | int guidsLength = guids.Length;
229 | if (guidsLength <= 0) { yield break; }
230 |
231 | string[] extensions = k_extensions
232 | .Where((_, index) => m_targetAssetTypes.HasFlag((AssetType)(1 << index)))
233 | .ToArray();
234 |
235 | for (int i = 0; i < guidsLength; i++)
236 | {
237 | string guid = guids[i];
238 | //Debug.Log($"[{guid}]");
239 | string path = AssetDatabase.GUIDToAssetPath(guid);
240 | if (string.IsNullOrEmpty(path))
241 | {
242 | Debug.LogError($" cannot get path from GUID [{guid}]");
243 | continue;
244 | }
245 |
246 | // プログレスバーを表示
247 | if (EditorUtility.DisplayCancelableProgressBar(
248 | "Search Missing",
249 | $"{i + 1}/{guidsLength}",
250 | (float)i / guidsLength)) { break; }
251 |
252 | if (extensions.Contains(Path.GetExtension(path)))
253 | {
254 | SearchMissing(path);
255 | yield return null;
256 | }
257 | }
258 |
259 | // プログレスバーを消す
260 | EditorUtility.ClearProgressBar();
261 | }
262 |
263 | ///
264 | /// 指定アセットにMissingのプロパティがあれば、それをmissingListに追加する
265 | ///
266 | /// Path.
267 | private void SearchMissing(string path)
268 | {
269 | // 指定パスのオブジェクト
270 | var baseObj = AssetDatabase.LoadAssetAtPath