Merge branch 'main' of http://172.16.1.12/WangWeiZhi/YanCheng_Metrology into main
|
@ -18,6 +18,7 @@ MonoBehaviour:
|
||||||
m_RendererData: {fileID: 0}
|
m_RendererData: {fileID: 0}
|
||||||
m_RendererDataList:
|
m_RendererDataList:
|
||||||
- {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2}
|
- {fileID: 11400000, guid: 4a8e21d5c33334b11b34a596161b9360, type: 2}
|
||||||
|
- {fileID: 11400000, guid: 47db18f3169384f6b87445e6447e189e, type: 2}
|
||||||
m_DefaultRendererIndex: 0
|
m_DefaultRendererIndex: 0
|
||||||
m_RequireDepthTexture: 0
|
m_RequireDepthTexture: 0
|
||||||
m_RequireOpaqueTexture: 0
|
m_RequireOpaqueTexture: 0
|
||||||
|
@ -27,6 +28,9 @@ MonoBehaviour:
|
||||||
m_SupportsHDR: 1
|
m_SupportsHDR: 1
|
||||||
m_MSAA: 2
|
m_MSAA: 2
|
||||||
m_RenderScale: 1
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
m_MainLightRenderingMode: 1
|
m_MainLightRenderingMode: 1
|
||||||
m_MainLightShadowsSupported: 1
|
m_MainLightShadowsSupported: 1
|
||||||
m_MainLightShadowmapResolution: 2048
|
m_MainLightShadowmapResolution: 2048
|
||||||
|
@ -47,7 +51,10 @@ MonoBehaviour:
|
||||||
m_CascadeBorder: 0.1
|
m_CascadeBorder: 0.1
|
||||||
m_ShadowDepthBias: 1
|
m_ShadowDepthBias: 1
|
||||||
m_ShadowNormalBias: 1
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 1
|
||||||
m_SoftShadowsSupported: 1
|
m_SoftShadowsSupported: 1
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
m_AdditionalLightsCookieResolution: 2048
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
m_AdditionalLightsCookieFormat: 3
|
m_AdditionalLightsCookieFormat: 3
|
||||||
m_UseSRPBatcher: 1
|
m_UseSRPBatcher: 1
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c981a85c287232f44b4e35be69f425ea
|
guid: 5db7164e964ae4c6b82d2283320ad13d
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
|
timeCreated: 1557315954
|
||||||
|
licenseType: Store
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b0c676f447c26429db5c9404720e279c
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1542876294
|
||||||
|
licenseType: Store
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b18a9c16bcd174b1683d370384a8cab7
|
||||||
|
timeCreated: 1542877475
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eb334622a9e1f41368317711b187e4c2
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a9ed051e57e7249a89531758bd685c7f
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d4f7bf313cad54255a94a5340731a311
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1542877572
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,139 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-8558442800701317947
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 5
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Floor
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_ValidKeywords:
|
||||||
|
- _NORMALMAP
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 13ea04b5d27644ccba761e09947624da, type: 3}
|
||||||
|
m_Scale: {x: 2, y: 2}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: d398536e88a354ed3b3825173a7e092a, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 10, y: 10}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 2, y: 2}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 13ea04b5d27644ccba761e09947624da, type: 3}
|
||||||
|
m_Scale: {x: 2, y: 2}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Occlusion:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 943181a31ab5a411496dc4b0d6a41630, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaTestRef: 0.5
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 0.02
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EmissionScaleUI: 1
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0.538
|
||||||
|
- _Glossiness: 0.34
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Lightmapping: 1
|
||||||
|
- _Metallic: 0.1
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.0104
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.34
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0.99999994}
|
||||||
|
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecularColor: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d681c1d72c3c16149abd2f0f25ca628c
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
|
@ -0,0 +1,138 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-5610605729892836785
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 5
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Gold
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Occlusion:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaTestRef: 0.5
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EmissionScaleUI: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.9
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Lightmapping: 1
|
||||||
|
- _Metallic: 1
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.9
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0.96078426, g: 0.8392157, b: 0.47450978, a: 1}
|
||||||
|
- _Color: {r: 0.96078426, g: 0.8392157, b: 0.47450978, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
- _SpecularColor: {r: 0.8088235, g: 0.6295969, b: 0.3033088, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5b12cf4be3e7c5149a5f24108ee6a551
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
|
@ -0,0 +1,138 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-2992342339722848979
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 5
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: PlasticGlossy
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Occlusion:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaTestRef: 0.5
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EmissionScaleUI: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.8
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Lightmapping: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.8
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0, g: 0.78942597, b: 0.79607844, a: 1}
|
||||||
|
- _Color: {r: 0, g: 0.78942597, b: 0.79607844, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
- _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 958abb01761e1dc4ebf9ffdf8252d20e
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
|
@ -0,0 +1,138 @@
|
||||||
|
%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: Silk
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Occlusion:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaTestRef: 0.5
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EmissionScaleUI: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.6
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Lightmapping: 1
|
||||||
|
- _Metallic: 0.75
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.6
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0.49411762, g: 0.145098, b: 0.16470584, a: 1}
|
||||||
|
- _Color: {r: 0.49411762, g: 0.14509797, b: 0.16470581, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
- _SpecularColor: {r: 0.74264705, g: 0.20750435, b: 0.216731, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
--- !u!114 &7254247028269435741
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 5
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3134ae80e55101b468fe9ea362327f28
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
|
@ -0,0 +1,141 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-6803998695329737601
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 5
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Wall
|
||||||
|
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||||
|
m_ValidKeywords:
|
||||||
|
- _NORMALMAP
|
||||||
|
- _OCCLUSIONMAP
|
||||||
|
- _PARALLAXMAP
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
RenderType: Opaque
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: dc645ec4f4eba40dd8f0e8b0c21b99b0, type: 3}
|
||||||
|
m_Scale: {x: 3, y: 3}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: ebcd1fde239ed44bc808f7c571d8a6a9, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 10, y: 10}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 3, y: 3}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: dc645ec4f4eba40dd8f0e8b0c21b99b0, type: 3}
|
||||||
|
m_Scale: {x: 3, y: 3}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Occlusion:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 2fb008ff4214b4130a4f33cb385b6fa6, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 4c5aaebe522004ddfbf0da83b147e635, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 2800000, guid: a1d43acc22aa4427f89ca56382ce5272, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaTestRef: 0.5
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 0.02
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EmissionScaleUI: 1
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0.325
|
||||||
|
- _Glossiness: 0.311
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Lightmapping: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.0203
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.311
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0.99999994}
|
||||||
|
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _SpecularColor: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0062779a7c303451ab69ea6fc7893dc8
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 57d6d25f642564dc6a34dfaebd77480c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,91 @@
|
||||||
|
%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: 8e9253636bf2648bd813257f451f8486, type: 3}
|
||||||
|
m_Name: Selected
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
effectGroup: 0
|
||||||
|
effectGroupLayer:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
effectNameFilter:
|
||||||
|
combineMeshes: 0
|
||||||
|
alphaCutOff: 0
|
||||||
|
cullBackFaces: 1
|
||||||
|
depthClip: 0
|
||||||
|
normalsOption: 0
|
||||||
|
fadeInDuration: 0
|
||||||
|
fadeOutDuration: 0
|
||||||
|
constantWidth: 1
|
||||||
|
overlay: 0
|
||||||
|
overlayColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
||||||
|
overlayAnimationSpeed: 1
|
||||||
|
overlayMinIntensity: 0.5
|
||||||
|
overlayBlending: 1
|
||||||
|
outline: 1
|
||||||
|
outlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
outlineWidth: 1.5
|
||||||
|
outlineQuality: 1
|
||||||
|
outlineDownsampling: 2
|
||||||
|
outlineOptimalBlit: 1
|
||||||
|
outlineVisibility: 0
|
||||||
|
outlineIndependent: 0
|
||||||
|
glow: 1
|
||||||
|
glowWidth: 0.5
|
||||||
|
glowQuality: 1
|
||||||
|
glowDownsampling: 2
|
||||||
|
glowHQColor: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
glowDithering: 1
|
||||||
|
glowOptimalBlit: 1
|
||||||
|
glowMagicNumber1: 0.75
|
||||||
|
glowMagicNumber2: 0.5
|
||||||
|
glowAnimationSpeed: 1
|
||||||
|
glowVisibility: 0
|
||||||
|
glowBlendPasses: 1
|
||||||
|
glowPasses:
|
||||||
|
- offset: 4
|
||||||
|
alpha: 0.1
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 3
|
||||||
|
alpha: 0.2
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 2
|
||||||
|
alpha: 0.3
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 1
|
||||||
|
alpha: 0.4
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
innerGlow: 0.5
|
||||||
|
innerGlowWidth: 1
|
||||||
|
innerGlowColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
innerGlowVisibility: 0
|
||||||
|
targetFX: 0
|
||||||
|
targetFXTexture: {fileID: 0}
|
||||||
|
targetFXColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
targetFXRotationSpeed: 50
|
||||||
|
targetFXInitialScale: 4
|
||||||
|
targetFXEndScale: 1.5
|
||||||
|
targetFXTransitionDuration: 0.5
|
||||||
|
targetFXStayDuration: 1.5
|
||||||
|
targetFXVisibility: 1
|
||||||
|
seeThrough: 2
|
||||||
|
seeThroughOccluderMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
seeThroughOccluderThreshold: 0.4
|
||||||
|
seeThroughOccluderCheckInterval: 1
|
||||||
|
seeThroughIntensity: 0.8
|
||||||
|
seeThroughTintAlpha: 0.5
|
||||||
|
seeThroughTintColor: {r: 1, g: 0, b: 0, a: 1}
|
||||||
|
seeThroughNoise: 1
|
||||||
|
seeThroughBorder: 0
|
||||||
|
seeThroughBorderColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
seeThroughBorderWidth: 0.45
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e6e74f38237364260b68bef0cd1b8795
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,91 @@
|
||||||
|
%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: 8e9253636bf2648bd813257f451f8486, type: 3}
|
||||||
|
m_Name: SelectedAndHighlighted
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
effectGroup: 0
|
||||||
|
effectGroupLayer:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
effectNameFilter:
|
||||||
|
combineMeshes: 0
|
||||||
|
alphaCutOff: 0
|
||||||
|
cullBackFaces: 1
|
||||||
|
depthClip: 0
|
||||||
|
normalsOption: 0
|
||||||
|
fadeInDuration: 0
|
||||||
|
fadeOutDuration: 0
|
||||||
|
constantWidth: 1
|
||||||
|
overlay: 0.5
|
||||||
|
overlayColor: {r: 1, g: 0.92156863, b: 0.015686275, a: 1}
|
||||||
|
overlayAnimationSpeed: 1
|
||||||
|
overlayMinIntensity: 0.5
|
||||||
|
overlayBlending: 1
|
||||||
|
outline: 1
|
||||||
|
outlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
outlineWidth: 1.5
|
||||||
|
outlineQuality: 1
|
||||||
|
outlineDownsampling: 2
|
||||||
|
outlineOptimalBlit: 1
|
||||||
|
outlineVisibility: 0
|
||||||
|
outlineIndependent: 0
|
||||||
|
glow: 1
|
||||||
|
glowWidth: 0.5
|
||||||
|
glowQuality: 1
|
||||||
|
glowDownsampling: 2
|
||||||
|
glowHQColor: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
glowDithering: 1
|
||||||
|
glowOptimalBlit: 1
|
||||||
|
glowMagicNumber1: 0.75
|
||||||
|
glowMagicNumber2: 0.5
|
||||||
|
glowAnimationSpeed: 1
|
||||||
|
glowVisibility: 0
|
||||||
|
glowBlendPasses: 1
|
||||||
|
glowPasses:
|
||||||
|
- offset: 4
|
||||||
|
alpha: 0.1
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 3
|
||||||
|
alpha: 0.2
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 2
|
||||||
|
alpha: 0.3
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
- offset: 1
|
||||||
|
alpha: 0.4
|
||||||
|
color: {r: 0.64, g: 1, b: 0, a: 1}
|
||||||
|
innerGlow: 0.5
|
||||||
|
innerGlowWidth: 1
|
||||||
|
innerGlowColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
innerGlowVisibility: 0
|
||||||
|
targetFX: 0
|
||||||
|
targetFXTexture: {fileID: 0}
|
||||||
|
targetFXColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
targetFXRotationSpeed: 50
|
||||||
|
targetFXInitialScale: 4
|
||||||
|
targetFXEndScale: 1.5
|
||||||
|
targetFXTransitionDuration: 0.5
|
||||||
|
targetFXStayDuration: 1.5
|
||||||
|
targetFXVisibility: 1
|
||||||
|
seeThrough: 2
|
||||||
|
seeThroughOccluderMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
seeThroughOccluderThreshold: 0.4
|
||||||
|
seeThroughOccluderCheckInterval: 1
|
||||||
|
seeThroughIntensity: 0.8
|
||||||
|
seeThroughTintAlpha: 0.5
|
||||||
|
seeThroughTintColor: {r: 1, g: 0, b: 0, a: 1}
|
||||||
|
seeThroughNoise: 1
|
||||||
|
seeThroughBorder: 0
|
||||||
|
seeThroughBorderColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
seeThroughBorderWidth: 0.45
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 77128a10e40704023952e72c2046e685
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0748038d48d9c48fc9f35f5d32dc985a
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1544692068
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,24 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace HighlightPlus.Demos {
|
||||||
|
|
||||||
|
public class HitFxDemo : MonoBehaviour {
|
||||||
|
|
||||||
|
public AudioClip hitSound;
|
||||||
|
|
||||||
|
void Update() {
|
||||||
|
|
||||||
|
if (!InputProxy.GetMouseButtonDown(0)) return;
|
||||||
|
|
||||||
|
Ray ray = Camera.main.ScreenPointToRay(InputProxy.mousePosition);
|
||||||
|
if (Physics.Raycast(ray, out RaycastHit hitInfo)) {
|
||||||
|
HighlightEffect effect = hitInfo.collider.GetComponent<HighlightEffect>();
|
||||||
|
if (effect == null) return;
|
||||||
|
AudioSource.PlayClipAtPoint(hitSound, hitInfo.point);
|
||||||
|
effect.HitFX(hitInfo.point);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e692cbce37dc14e29b436d0c876f45dc
|
guid: b2533fb71c5d747c58192bcd7d6cd276
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
|
@ -0,0 +1,28 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using HighlightPlus;
|
||||||
|
|
||||||
|
namespace HighlightPlus.Demos {
|
||||||
|
|
||||||
|
public class ManualSelectionDemo : MonoBehaviour {
|
||||||
|
|
||||||
|
HighlightManager hm;
|
||||||
|
|
||||||
|
public Transform objectToSelect;
|
||||||
|
|
||||||
|
void Start() {
|
||||||
|
hm = FindObjectOfType<HighlightManager>();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update() {
|
||||||
|
if (Input.GetKeyDown(KeyCode.Alpha1)) {
|
||||||
|
hm.SelectObject(objectToSelect);
|
||||||
|
}
|
||||||
|
if (Input.GetKeyDown(KeyCode.Alpha2)) {
|
||||||
|
hm.ToggleObject(objectToSelect);
|
||||||
|
}
|
||||||
|
if (Input.GetKeyDown(KeyCode.Alpha3)) {
|
||||||
|
hm.UnselectObject(objectToSelect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9dfa112658ab74560a6251002174910b
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,40 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using HighlightPlus;
|
||||||
|
|
||||||
|
namespace HighlightPlus.Demos {
|
||||||
|
|
||||||
|
public class SphereHighlightEventExample : MonoBehaviour {
|
||||||
|
|
||||||
|
HighlightEffect effect;
|
||||||
|
|
||||||
|
void Start() {
|
||||||
|
effect = GetComponent<HighlightEffect> ();
|
||||||
|
effect.OnObjectHighlightStart += ValidateHighlightObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ValidateHighlightObject(GameObject obj) {
|
||||||
|
// You can return false to cancel highlight on this object
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HighlightStart () {
|
||||||
|
Debug.Log ("Gold sphere highlighted!");
|
||||||
|
}
|
||||||
|
|
||||||
|
void HighlightEnd () {
|
||||||
|
Debug.Log ("Gold sphere not highlighted!");
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update() {
|
||||||
|
if (InputProxy.GetKeyDown ("space")) {
|
||||||
|
effect.HitFX (Color.white, 0.2f);
|
||||||
|
}
|
||||||
|
if (InputProxy.GetKeyDown("c")) {
|
||||||
|
effect.SetGlowColor(new Color(Random.value, Random.value, Random.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 36aa3934b8f65413188fabe723ded4da
|
||||||
|
timeCreated: 1544692056
|
||||||
|
licenseType: Pro
|
||||||
|
MonoImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,26 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using HighlightPlus;
|
||||||
|
|
||||||
|
namespace HighlightPlus.Demos {
|
||||||
|
|
||||||
|
public class SphereSelectionEventsExample : MonoBehaviour {
|
||||||
|
|
||||||
|
void Start() {
|
||||||
|
HighlightManager.instance.OnObjectSelected += OnObjectSelected;
|
||||||
|
HighlightManager.instance.OnObjectUnSelected += OnObjectUnSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnObjectSelected(GameObject go) {
|
||||||
|
Debug.Log(go.name + " selected!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OnObjectUnSelected(GameObject go) {
|
||||||
|
Debug.Log(go.name + " un-selected!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dbe1fcf5ef14345779fec3adb4479bc3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 94906fdd445a54f2badd67d0d36a3d55
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,22 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9c2f7decce97e409a8ecfc1181535dc2
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 6
|
||||||
|
defaultSettings:
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
preloadAudioData: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 13783dcd57d4d4977b6fa46c1be6a21d
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1542901861
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 1.5 MiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 13ea04b5d27644ccba761e09947624da
|
||||||
|
timeCreated: 1542918613
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 1.0 MiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d398536e88a354ed3b3825173a7e092a
|
||||||
|
timeCreated: 1542918925
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 0
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 1
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 59 KiB |
|
@ -0,0 +1,92 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: aeb7aff1c8c1241ee8bfdfc05e9a9e92
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
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
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: -1
|
||||||
|
wrapV: -1
|
||||||
|
wrapW: -1
|
||||||
|
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
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 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
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 730 KiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2fb008ff4214b4130a4f33cb385b6fa6
|
||||||
|
timeCreated: 1542918613
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 1.8 MiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ebcd1fde239ed44bc808f7c571d8a6a9
|
||||||
|
timeCreated: 1542918741
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 0
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 1
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 989 KiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4c5aaebe522004ddfbf0da83b147e635
|
||||||
|
timeCreated: 1542918717
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 0
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 1
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 2.2 MiB |
|
@ -0,0 +1,68 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dc645ec4f4eba40dd8f0e8b0c21b99b0
|
||||||
|
timeCreated: 1542918615
|
||||||
|
licenseType: Pro
|
||||||
|
TextureImporter:
|
||||||
|
fileIDToRecycleName: {}
|
||||||
|
serializedVersion: 4
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -1
|
||||||
|
wrapMode: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
platformSettings:
|
||||||
|
- buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
spritePackingTag:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d6b6ed63a44dd4e0b9e9de96d34d9930
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,2 @@
|
||||||
|
[InternetShortcut]
|
||||||
|
URL=https://kronnect.com/guides/highlight-plus-introduction/
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 05f4a9095f69c4ec6bc8fb97dcdbacfb
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,2 @@
|
||||||
|
[InternetShortcut]
|
||||||
|
URL=https://www.dropbox.com/s/4nx9pv977wvvrv8/Documentation.pdf?dl=0
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6e3af944b32d74aaa9bd0bb1850bed61
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,263 @@
|
||||||
|
Don’t miss these other cool assets brought to you by
|
||||||
|
|
||||||
|
BEAUTIFY 2 is an acclaimed full-screen image processing effect that improves the image quality in real time
|
||||||
|
|
||||||
|
producing incredibly crisp and vivid scenes. Compatible with built-in, LWRP and URP pipelines.
|
||||||
|
In addition to this unique image enhancement filter, you will find in Beautify additional effects like high quality Bloom,
|
||||||
|
dirty lens effect, vignetting, night & thermal vision and more!
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/beautify-2-advanced-post-processing-163949?aid=1101lGsd
|
||||||
|
|
||||||
|
DYNAMIC FOG & MIST 2 is a full-screen image effect that adds live, moving Fog, Mist and Sky Haze to your scenes
|
||||||
|
|
||||||
|
making them less dull and boring. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/dynamic-fog-mist-48200?aid=1101lGsd
|
||||||
|
|
||||||
|
VOLUMETRIC FOG & MIST 2 is the enhanced version of Dynamic Fog & Mist (which is also included in the package)
|
||||||
|
|
||||||
|
and has been designed to provide a better-looking fog and cloud formations with support of lighting and glow effects.
|
||||||
|
Compatible with built-in and URP pipelines.
|
||||||
|
It’s feature-rich with options like fog of war, Sun tracking, better transparent and sprite support, sun shafts and more.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/volumetric-fog-mist-2-162694?aid=1101lGsd
|
||||||
|
WORLD POLITICAL MAP SERIES is a collection of professional mapping assets for Unity (2D and Globe Editions). Used by
|
||||||
|
|
||||||
|
many companies and agencies across the world to visualize data, resources, interact with the user, etc.
|
||||||
|
Compatible with built-in and URP pipelines.
|
||||||
|
|
||||||
|
Get it on the Asset Store (Globe Edition):
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/gui/world-map-globe-edition-2-150643?aid=1101lGsd
|
||||||
|
|
||||||
|
Get it on the Asset Store (2D Edition):
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/gui/world-map-2d-edition-2-151238?aid=1101lGsd
|
||||||
|
|
||||||
|
WORLD MAP STRATEGY KIT 2 is a complete framework for building AAA strategy games, including all world countries
|
||||||
|
|
||||||
|
and provinces, +7000 cities, cool 3D PBS dynamic viewport for map, hexagonal grid, pathfinding, real elevation, and much
|
||||||
|
more.
|
||||||
|
Compatible with built-in and URP pipelines.
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/game-toolkits/world-map-strategy-kit-2-150938?aid=1101lGsd
|
||||||
|
|
||||||
|
WORLD MAPS PRO BUNDLE 2 is our most complete and professional suite of maps for Unity platform for the best price.
|
||||||
|
|
||||||
|
Compatible with built-in and URP pipelines. This bundle contains:
|
||||||
|
- World Political Map Globe Edition
|
||||||
|
- World Political Map 2D Edition
|
||||||
|
- World Map Strategy Kit
|
||||||
|
- World Flags and Weather Icons
|
||||||
|
|
||||||
|
Purchase this bundle and save $$$!
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/gui/world-maps-pro-bundle-2-151240?aid=1101lGsd
|
||||||
|
SHINY SSRR is our Screen Space Raytraced Reflections solution optimized for both forward and deferred rendering
|
||||||
|
|
||||||
|
path. As with Beautify, this effect gives an instant boost to your scene by making light bounce on shiny surfaces, casting
|
||||||
|
gorgeous reflections on all kind of reflective surfaces. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/slug/188638?aid=1101lGsd
|
||||||
|
|
||||||
|
SKYBOX PLUS is an artist-driven replacement for Unity default skybox. Includes a lovely blend of procedural haze and
|
||||||
|
|
||||||
|
hand-drawn clouds which mimic the style of Studio Ghibli.
|
||||||
|
Supports full day/night transition with moon, stars, several cloud layers with custom animation and lot of customization
|
||||||
|
options. . Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/2d/textures-materials/sky/skybox-plus-182966?aid=1101lGsd
|
||||||
|
|
||||||
|
VOLUMETRIC LIGHTS is a powerful asset to add scattering effect to any number of Unity lights. Supports spot, point
|
||||||
|
|
||||||
|
and area light types. Directional lights are also supported for localized areas. Includes advanced options like dust lit
|
||||||
|
particles and shadow occlusion. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/volumetric-lights-164149?aid=1101lGsd
|
||||||
|
COMPASS NAVIGATOR PRO adds a “Skyrim”-like compass bar to your UI, including smooth fade in/out, various bar
|
||||||
|
|
||||||
|
designs, +11 icons in two variations (+22 icons) and nice features like minimap and beam lights!
|
||||||
|
Compatible with all render pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/gui/compass-navigator-pro-59519?aid=1101lGsd
|
||||||
|
|
||||||
|
X-FRAME FPS ACCELERATOR provides you extra frames per second in your mobile games (iOS and Android). It takes
|
||||||
|
|
||||||
|
advantage of the huge screen resolution of these devices to sacrifice some pixels in Exchange of performance with flexible
|
||||||
|
and dynamic quality options. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/camera/x-frame-fps-accelerator-63965?aid=1101lGsd
|
||||||
|
|
||||||
|
SHADER CONTROL is a tiny but powerful tool that will allow you to identify and manage shader keywords usage in your
|
||||||
|
|
||||||
|
project, taking more control over the build size and compilation time. Compatible with all render pipelines.
|
||||||
|
Quickly locates and helps you disable keywords not needed, learn about the shaders used in your project and their keywords!
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/shader-control-74817?aid=1101lGsd
|
||||||
|
TERRAIN GRID SYSTEM is an advanced grid generator and territory/cell highlighter/fader for both Terrain and 2D grids.
|
||||||
|
|
||||||
|
Compatible with all render pipelines. It can generate Voronoi, hexagonal and boxed grids dynamically on your terrain, with
|
||||||
|
flexible position options . Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/terrain/terrain-grid-system-47215?aid=1101lGsd
|
||||||
|
|
||||||
|
GRIDS 2D is similar to Terrain Grid System but only for flat 2D grids. It’s fast, convenient and easy to use.
|
||||||
|
|
||||||
|
Compatible with all render pipelines. It can also generate Voronoi, hexagonal and boxed grids dynamically on your terrain, with
|
||||||
|
flexible API to integrate with your game. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/sprite-management/grids-2d-59981?aid=1101lGsd
|
||||||
|
|
||||||
|
HEXASPHERE GRID SYSTEM leverages shader technologies like texture arrays and geometry shaders to render hundreds
|
||||||
|
|
||||||
|
of thousands of interactive and customizable tiles in a spherical/hexagonal grid.
|
||||||
|
Fully interactive, with VR support and super-fast. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/modeling/hexasphere-grid-system-89112?aid=1101lGsd
|
||||||
|
TUNNEL FX 2 is a full-screen post image effect that creates stunning, colorful 3D animated tunnels. It does not create any
|
||||||
|
|
||||||
|
real tunnel but just draw the tunnel as a post-effect behind any geometry or UI.
|
||||||
|
Compatible with built-in and URP pipelines.
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/particles-effects/tunnel-fx-2-86544?aid=1101lGsd
|
||||||
|
|
||||||
|
GLOBAL SNOW renders your existing scene into a winter landscape with a couple of clicks. Just add a single script to your
|
||||||
|
|
||||||
|
camera and customize the results.
|
||||||
|
Supports relief mapping for realistic snow effect + human footprints + terrain marks with automatic collision detection and
|
||||||
|
more!
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/global-snow-79795?aid=1101lGsd
|
||||||
|
|
||||||
|
HIGHLIGHT PLUS adds outline, glow and see-through effects to any 3D object in the scene.
|
||||||
|
|
||||||
|
It’s performant and designed for all platforms, including built-in and URP rendering pipelines.
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/particles-effects/highlight-plus-134149?aid=1101lGsd
|
||||||
|
VOXEL PLAY 2 is a procedural, fast environment based on cubes. It leverages highly optimized code, including
|
||||||
|
|
||||||
|
geometry shaders and texture arrays, to generate beautiful, rich, vast infinite worlds which can be customized and
|
||||||
|
modified in many ways. Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/game-toolkits/voxel-play-2-201234?aid=1101lGsd
|
||||||
|
|
||||||
|
PIRATES OF VOXEL PLAY is a multiplayer game template built with Mirror and Voxel Play. It’s the perfect
|
||||||
|
|
||||||
|
sample project to learn how to implement multiplayer games using these two frameworks.
|
||||||
|
Includes animated characters, a fully populated tropical island with 3 biomes, wild beasts, weapons, loots, cute
|
||||||
|
music and sound effects and of course plenty of commented code, documentation and video tutorials!
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/slug/189096?aid=1101lGsd
|
||||||
|
LIQUID VOLUME is a powerful and highly customizable shader that simulates realistic and animated liquid
|
||||||
|
|
||||||
|
containers. Can be used in 3D scenes and 2D UI (demos included).
|
||||||
|
Liquid Volume is super easy and fun to use: just add the main script to any primitive (sphere, box, cylinder and
|
||||||
|
similar shape models) to convert it into a liquid container!
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/liquid-volume-70992?aid=1101lGsd
|
||||||
|
|
||||||
|
LIQUID VOLUME PRO 2 includes all features of Liquid Volume and adds additional advanced options plus
|
||||||
|
|
||||||
|
improved compatibility with more platforms.
|
||||||
|
Among the new options are multiple liquid layers support, miscible liquids, bubbles, better mesh options and full
|
||||||
|
WebGL support! Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/liquid-volume-pro-129967?aid=1101lGsd
|
||||||
|
HIGHLIGHT PLUS 2D adds outline, glow, see-through and other effects to any sprite in the scene.
|
||||||
|
|
||||||
|
It’s performant and designed for all platforms, including standard and URP rendering pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/tools/particles-effects/highlight-plus-2d-138383?aid=1101lGsd
|
||||||
|
|
||||||
|
TRAILS FX renders smooth, mesmerizing trails behind moving objects and characters.
|
||||||
|
|
||||||
|
It’s performant thanks to the use of GPU instancing and use correct transparency order producing a fascinating effect.
|
||||||
|
Compatible with built-in and URP pipelines.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
|
||||||
|
https://assetstore.unity.com/packages/tools/particles-effects/trails-fx-146898?aid=1101lGsd
|
||||||
|
|
||||||
|
COLOR STUDIO is an Editor Extension that allows you to create awesome color palettes and recolor objects, sprites and scenes
|
||||||
|
|
||||||
|
easily in editor and runtime. Compatible with all render pipelines.
|
||||||
|
It comes with an interactive color wheel editor and a complete set of tools that let you also export color palettes as LUTs,
|
||||||
|
transform existing textures or specific colors from object materials.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/tools/painting/color-studio-151892?aid=1101lGsd
|
||||||
|
LUT PACK is a collection of +200 cinematic and artistic LUTs plus tints for Beautify. They can dramatically change the mood
|
||||||
|
|
||||||
|
and look of your game scenes. Beautify includes a LUT Browser that let you quickly text each one of the included LUT in this
|
||||||
|
package.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/lut-pack-for-beautify-202502?aid=1101lGsd
|
||||||
|
|
||||||
|
FRAME PACK is a collection of +75 film mattes and artistic borders that can be used with Beautify or Unity UI. This p
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/2d/gui/frame-pack-204058?aid=1101lGsd
|
||||||
|
|
||||||
|
MILITARY UNITS – THE STYLIZED ART COLLECTION includes +100 hand-painted, stylized portraits of military units
|
||||||
|
|
||||||
|
from ancient warriors to modern ships and aircraft. Great for decorating your game screens, unit sheets, icons, or prototyping.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/2d/textures-materials/military-units-the-stylized-art-collection-
|
||||||
|
187769?aid=1101lGsd
|
||||||
|
Luma Based Ambient Occlusion is a full-screen image effect that simulates occlusion based solely on color
|
||||||
|
|
||||||
|
information.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/luma-based-ambient-occlusion-ssao-2d-
|
||||||
|
93013?aid=1101lGsd
|
||||||
|
|
||||||
|
RPG Starter Bundle includes a collection of visual, environment effects, navigation tools and assets to quickly build the
|
||||||
|
|
||||||
|
foundation of a RPG/Fantasy game or prototype. Save 50% purchasing this bundle (total value: $150)! This package
|
||||||
|
features the following assets: Compass Navigator Pro, Skybox Plus, Dynamic Fog % Mist, Tunnel FX 2, Liquid Volume
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/templates/packs/rpg-starter-bundle-213822?aid=1101lGsd
|
||||||
|
|
||||||
|
Beautify HDRP is a post processing effect created for High Definition Rendering Pipeline that improves the image
|
||||||
|
|
||||||
|
quality in real time producing incredibly crisp and vivid scenes.
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/beautify-hdrp-165411?aid=1101lGsd
|
||||||
|
Potions & Volumetric Liquid contains 8 unique (16 variations), high detailed, PBR set of magic potions with
|
||||||
|
|
||||||
|
advanced volumetric effect for the liquids inside the flasks.
|
||||||
|
This asset uses Liquid Volume Pro to render the liquids and its effects (Liquid Volume Pro license is included with this
|
||||||
|
asset).
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/3d/props/potions-volumetric-liquid-221221?aid=1101lGsd
|
||||||
|
|
||||||
|
Split Screen Pro is a camera composing system that enables automatic screen split between two targets or players.
|
||||||
|
|
||||||
|
This asset can automatically detect when the two targets are far from each other and show a dynamic split line which
|
||||||
|
separates and adapts the view in two halves, one per each target or player.
|
||||||
|
|
||||||
|
Get it on the Asset Store:
|
||||||
|
https://assetstore.unity.com/packages/tools/camera/split-screen-pro-207149?aid=1101lGsd
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 782ce379ea1624a349b1c53de1f90c95
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,8 +1,9 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c4d9487b5d51a5340b44d2df89c0d411
|
guid: c1cfaabf0583f44b4871807a898aaf31
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
|
timeCreated: 1542886534
|
||||||
|
licenseType: Store
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
using UnityEngine.Rendering.Universal;
|
||||||
|
|
||||||
namespace HighlightPlus {
|
namespace HighlightPlus {
|
||||||
|
|
||||||
|
@ -10,22 +12,24 @@ namespace HighlightPlus {
|
||||||
|
|
||||||
#pragma warning disable 0618
|
#pragma warning disable 0618
|
||||||
|
|
||||||
SerializedProperty profile, profileSync, camerasLayerMask, ignoreObjectVisibility, reflectionProbes, GPUInstancing;
|
SerializedProperty profile, profileSync, camerasLayerMask, ignoreObjectVisibility, reflectionProbes, GPUInstancing, optimizeSkinnedMesh;
|
||||||
SerializedProperty ignore, previewInEditor, effectGroup, effectGroupLayer, effectNameFilter, combineMeshes, alphaCutOff, cullBackFaces, depthClip, normalsOption, subMeshMask;
|
SerializedProperty ignore, effectGroup, effectGroupLayer, effectNameFilter, combineMeshes, alphaCutOff, cullBackFaces, normalsOption;
|
||||||
SerializedProperty highlighted, fadeInDuration, fadeOutDuration, flipY, constantWidth;
|
SerializedProperty highlighted, fadeInDuration, fadeOutDuration, flipY, constantWidth, subMeshMask;
|
||||||
SerializedProperty overlay, overlayMode, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayBlending, overlayTexture, overlayTextureUVSpace, overlayTextureScale;
|
SerializedProperty overlay, overlayMode, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayBlending, overlayTexture, overlayTextureUVSpace, overlayTextureScale, overlayVisibility;
|
||||||
SerializedProperty outline, outlineColor, outlineColorStyle, outlineGradient, outlineGradientInLocalSpace, outlineWidth, outlineQuality, outlineDownsampling, outlineVisibility, outlineOptimalBlit, outlineBlitDebug, outlineIndependent;
|
SerializedProperty outline, outlineColor, outlineColorStyle, outlineGradient, outlineGradientInLocalSpace, outlineBlurPasses, outlineWidth, outlineQuality, outlineEdgeMode, outlineEdgeThreshold, outlineDownsampling, outlineVisibility, outlineBlitDebug, outlineIndependent, outlineContourStyle;
|
||||||
SerializedProperty glow, glowWidth, glowQuality, glowDownsampling, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed, glowBlendPasses, glowPasses, glowVisibility, glowBlendMode, glowOptimalBlit, glowBlitDebug, glowIgnoreMask;
|
SerializedProperty glow, glowWidth, glowQuality, glowBlurMethod, glowDownsampling, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed;
|
||||||
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowVisibility;
|
SerializedProperty glowBlendPasses, glowPasses, glowVisibility, glowBlendMode, glowBlitDebug, glowIgnoreMask;
|
||||||
|
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowBlendMode, innerGlowVisibility;
|
||||||
SerializedProperty seeThrough, seeThroughOccluderMask, seeThroughOccluderMaskAccurate, seeThroughOccluderThreshold, seeThroughOccluderCheckInterval, seeThroughOccluderCheckIndividualObjects, seeThroughDepthOffset, seeThroughMaxDepth;
|
SerializedProperty seeThrough, seeThroughOccluderMask, seeThroughOccluderMaskAccurate, seeThroughOccluderThreshold, seeThroughOccluderCheckInterval, seeThroughOccluderCheckIndividualObjects, seeThroughDepthOffset, seeThroughMaxDepth;
|
||||||
SerializedProperty seeThroughIntensity, seeThroughTintAlpha, seeThroughTintColor, seeThroughNoise, seeThroughBorder, seeThroughBorderWidth, seeThroughBorderColor, seeThroughOrdered, seeThroughBorderOnly, seeThroughTexture, seeThroughTextureUVSpace, seeThroughTextureScale;
|
SerializedProperty seeThroughIntensity, seeThroughTintAlpha, seeThroughTintColor, seeThroughNoise, seeThroughBorder, seeThroughBorderWidth, seeThroughBorderColor, seeThroughOrdered, seeThroughBorderOnly, seeThroughTexture, seeThroughTextureUVSpace, seeThroughTextureScale;
|
||||||
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXCenter, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXScaleToRenderBounds;
|
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXCenter, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXScaleToRenderBounds;
|
||||||
SerializedProperty targetFXAlignToGround, targetFXFadePower, targetFXGroundMaxDistance, targetFXGroundLayerMask, targetFXTransitionDuration, targetFXStayDuration, targetFXVisibility;
|
SerializedProperty targetFXAlignToGround, targetFXFadePower, targetFXGroundMaxDistance, targetFXGroundLayerMask, targetFXTransitionDuration, targetFXStayDuration, targetFXVisibility;
|
||||||
SerializedProperty hitFxInitialIntensity, hitFxMode, hitFxFadeOutDuration, hitFxColor, hitFxRadius;
|
SerializedProperty hitFxInitialIntensity, hitFxMode, hitFxFadeOutDuration, hitFxColor, hitFxRadius;
|
||||||
SerializedProperty cameraDistanceFade, cameraDistanceFadeNear, cameraDistanceFadeFar;
|
SerializedProperty cameraDistanceFade, cameraDistanceFadeNear, cameraDistanceFadeFar;
|
||||||
|
|
||||||
HighlightEffect thisEffect;
|
HighlightEffect thisEffect;
|
||||||
bool profileChanged, enableProfileApply;
|
bool profileChanged, enableProfileApply;
|
||||||
|
|
||||||
|
UniversalRenderPipelineAsset pipe;
|
||||||
bool expandGeneralSettings, expandHighlightOptions;
|
bool expandGeneralSettings, expandHighlightOptions;
|
||||||
bool showCurrentOccluders;
|
bool showCurrentOccluders;
|
||||||
const string HP_GENERAL_SETTINGS = "HPGeneralSettings";
|
const string HP_GENERAL_SETTINGS = "HPGeneralSettings";
|
||||||
|
@ -39,25 +43,24 @@ namespace HighlightPlus {
|
||||||
profile = serializedObject.FindProperty("profile");
|
profile = serializedObject.FindProperty("profile");
|
||||||
profileSync = serializedObject.FindProperty("profileSync");
|
profileSync = serializedObject.FindProperty("profileSync");
|
||||||
camerasLayerMask = serializedObject.FindProperty("camerasLayerMask");
|
camerasLayerMask = serializedObject.FindProperty("camerasLayerMask");
|
||||||
reflectionProbes = serializedObject.FindProperty("reflectionProbes");
|
|
||||||
ignoreObjectVisibility = serializedObject.FindProperty("ignoreObjectVisibility");
|
ignoreObjectVisibility = serializedObject.FindProperty("ignoreObjectVisibility");
|
||||||
GPUInstancing = serializedObject.FindProperty("GPUInstancing");
|
reflectionProbes = serializedObject.FindProperty("reflectionProbes");
|
||||||
|
optimizeSkinnedMesh = serializedObject.FindProperty("optimizeSkinnedMesh");
|
||||||
normalsOption = serializedObject.FindProperty("normalsOption");
|
normalsOption = serializedObject.FindProperty("normalsOption");
|
||||||
subMeshMask = serializedObject.FindProperty("subMeshMask");
|
GPUInstancing = serializedObject.FindProperty("GPUInstancing");
|
||||||
ignore = serializedObject.FindProperty("ignore");
|
ignore = serializedObject.FindProperty("ignore");
|
||||||
previewInEditor = serializedObject.FindProperty("previewInEditor");
|
|
||||||
effectGroup = serializedObject.FindProperty("effectGroup");
|
effectGroup = serializedObject.FindProperty("effectGroup");
|
||||||
effectGroupLayer = serializedObject.FindProperty("effectGroupLayer");
|
effectGroupLayer = serializedObject.FindProperty("effectGroupLayer");
|
||||||
effectNameFilter = serializedObject.FindProperty("effectNameFilter");
|
effectNameFilter = serializedObject.FindProperty("effectNameFilter");
|
||||||
combineMeshes = serializedObject.FindProperty("combineMeshes");
|
combineMeshes = serializedObject.FindProperty("combineMeshes");
|
||||||
alphaCutOff = serializedObject.FindProperty("alphaCutOff");
|
alphaCutOff = serializedObject.FindProperty("alphaCutOff");
|
||||||
cullBackFaces = serializedObject.FindProperty("cullBackFaces");
|
cullBackFaces = serializedObject.FindProperty("cullBackFaces");
|
||||||
depthClip = serializedObject.FindProperty("depthClip");
|
|
||||||
highlighted = serializedObject.FindProperty("_highlighted");
|
highlighted = serializedObject.FindProperty("_highlighted");
|
||||||
fadeInDuration = serializedObject.FindProperty("fadeInDuration");
|
fadeInDuration = serializedObject.FindProperty("fadeInDuration");
|
||||||
fadeOutDuration = serializedObject.FindProperty("fadeOutDuration");
|
fadeOutDuration = serializedObject.FindProperty("fadeOutDuration");
|
||||||
flipY = serializedObject.FindProperty("flipY");
|
flipY = serializedObject.FindProperty("flipY");
|
||||||
constantWidth = serializedObject.FindProperty("constantWidth");
|
constantWidth = serializedObject.FindProperty("constantWidth");
|
||||||
|
subMeshMask = serializedObject.FindProperty("subMeshMask");
|
||||||
overlay = serializedObject.FindProperty("overlay");
|
overlay = serializedObject.FindProperty("overlay");
|
||||||
overlayMode = serializedObject.FindProperty("overlayMode");
|
overlayMode = serializedObject.FindProperty("overlayMode");
|
||||||
overlayColor = serializedObject.FindProperty("overlayColor");
|
overlayColor = serializedObject.FindProperty("overlayColor");
|
||||||
|
@ -67,22 +70,26 @@ namespace HighlightPlus {
|
||||||
overlayTexture = serializedObject.FindProperty("overlayTexture");
|
overlayTexture = serializedObject.FindProperty("overlayTexture");
|
||||||
overlayTextureUVSpace = serializedObject.FindProperty("overlayTextureUVSpace");
|
overlayTextureUVSpace = serializedObject.FindProperty("overlayTextureUVSpace");
|
||||||
overlayTextureScale = serializedObject.FindProperty("overlayTextureScale");
|
overlayTextureScale = serializedObject.FindProperty("overlayTextureScale");
|
||||||
|
overlayVisibility = serializedObject.FindProperty("overlayVisibility");
|
||||||
outline = serializedObject.FindProperty("outline");
|
outline = serializedObject.FindProperty("outline");
|
||||||
outlineColor = serializedObject.FindProperty("outlineColor");
|
outlineColor = serializedObject.FindProperty("outlineColor");
|
||||||
outlineColorStyle = serializedObject.FindProperty("outlineColorStyle");
|
outlineColorStyle = serializedObject.FindProperty("outlineColorStyle");
|
||||||
outlineGradient = serializedObject.FindProperty("outlineGradient");
|
outlineGradient = serializedObject.FindProperty("outlineGradient");
|
||||||
outlineGradientInLocalSpace = serializedObject.FindProperty("outlineGradientInLocalSpace");
|
outlineGradientInLocalSpace = serializedObject.FindProperty("outlineGradientInLocalSpace");
|
||||||
outlineWidth = serializedObject.FindProperty("outlineWidth");
|
outlineWidth = serializedObject.FindProperty("outlineWidth");
|
||||||
|
outlineBlurPasses = serializedObject.FindProperty("outlineBlurPasses");
|
||||||
outlineQuality = serializedObject.FindProperty("outlineQuality");
|
outlineQuality = serializedObject.FindProperty("outlineQuality");
|
||||||
|
outlineEdgeMode = serializedObject.FindProperty("outlineEdgeMode");
|
||||||
|
outlineEdgeThreshold = serializedObject.FindProperty("outlineEdgeThreshold");
|
||||||
outlineDownsampling = serializedObject.FindProperty("outlineDownsampling");
|
outlineDownsampling = serializedObject.FindProperty("outlineDownsampling");
|
||||||
outlineVisibility = serializedObject.FindProperty("outlineVisibility");
|
outlineVisibility = serializedObject.FindProperty("outlineVisibility");
|
||||||
outlineOptimalBlit = serializedObject.FindProperty("outlineOptimalBlit");
|
|
||||||
outlineBlitDebug = serializedObject.FindProperty("outlineBlitDebug");
|
outlineBlitDebug = serializedObject.FindProperty("outlineBlitDebug");
|
||||||
outlineIndependent = serializedObject.FindProperty("outlineIndependent");
|
outlineIndependent = serializedObject.FindProperty("outlineIndependent");
|
||||||
|
outlineContourStyle = serializedObject.FindProperty("outlineContourStyle");
|
||||||
glow = serializedObject.FindProperty("glow");
|
glow = serializedObject.FindProperty("glow");
|
||||||
glowWidth = serializedObject.FindProperty("glowWidth");
|
glowWidth = serializedObject.FindProperty("glowWidth");
|
||||||
glowQuality = serializedObject.FindProperty("glowQuality");
|
glowQuality = serializedObject.FindProperty("glowQuality");
|
||||||
glowDownsampling = serializedObject.FindProperty("glowDownsampling");
|
glowBlurMethod = serializedObject.FindProperty("glowBlurMethod");
|
||||||
glowHQColor = serializedObject.FindProperty("glowHQColor");
|
glowHQColor = serializedObject.FindProperty("glowHQColor");
|
||||||
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
||||||
glowBlendPasses = serializedObject.FindProperty("glowBlendPasses");
|
glowBlendPasses = serializedObject.FindProperty("glowBlendPasses");
|
||||||
|
@ -93,12 +100,13 @@ namespace HighlightPlus {
|
||||||
glowPasses = serializedObject.FindProperty("glowPasses");
|
glowPasses = serializedObject.FindProperty("glowPasses");
|
||||||
glowVisibility = serializedObject.FindProperty("glowVisibility");
|
glowVisibility = serializedObject.FindProperty("glowVisibility");
|
||||||
glowBlendMode = serializedObject.FindProperty("glowBlendMode");
|
glowBlendMode = serializedObject.FindProperty("glowBlendMode");
|
||||||
glowOptimalBlit = serializedObject.FindProperty("glowOptimalBlit");
|
|
||||||
glowBlitDebug = serializedObject.FindProperty("glowBlitDebug");
|
glowBlitDebug = serializedObject.FindProperty("glowBlitDebug");
|
||||||
glowIgnoreMask = serializedObject.FindProperty("glowIgnoreMask");
|
glowIgnoreMask = serializedObject.FindProperty("glowIgnoreMask");
|
||||||
|
glowDownsampling = serializedObject.FindProperty("glowDownsampling");
|
||||||
innerGlow = serializedObject.FindProperty("innerGlow");
|
innerGlow = serializedObject.FindProperty("innerGlow");
|
||||||
innerGlowColor = serializedObject.FindProperty("innerGlowColor");
|
innerGlowColor = serializedObject.FindProperty("innerGlowColor");
|
||||||
innerGlowWidth = serializedObject.FindProperty("innerGlowWidth");
|
innerGlowWidth = serializedObject.FindProperty("innerGlowWidth");
|
||||||
|
innerGlowBlendMode = serializedObject.FindProperty("innerGlowBlendMode");
|
||||||
innerGlowVisibility = serializedObject.FindProperty("innerGlowVisibility");
|
innerGlowVisibility = serializedObject.FindProperty("innerGlowVisibility");
|
||||||
seeThrough = serializedObject.FindProperty("seeThrough");
|
seeThrough = serializedObject.FindProperty("seeThrough");
|
||||||
seeThroughOccluderMask = serializedObject.FindProperty("seeThroughOccluderMask");
|
seeThroughOccluderMask = serializedObject.FindProperty("seeThroughOccluderMask");
|
||||||
|
@ -148,16 +156,43 @@ namespace HighlightPlus {
|
||||||
thisEffect.Refresh();
|
thisEffect.Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void OnDisable() {
|
private void OnDisable() {
|
||||||
EditorPrefs.SetBool(HP_GENERAL_SETTINGS, expandGeneralSettings);
|
EditorPrefs.SetBool(HP_GENERAL_SETTINGS, expandGeneralSettings);
|
||||||
EditorPrefs.SetBool(HP_HIGHLIGHT_OPTIONS, expandHighlightOptions);
|
EditorPrefs.SetBool(HP_HIGHLIGHT_OPTIONS, expandHighlightOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override void OnInspectorGUI() {
|
public override void OnInspectorGUI() {
|
||||||
bool isManager = IsDefaultEffectUsedByManager();
|
|
||||||
EditorGUILayout.Separator();
|
EditorGUILayout.Separator();
|
||||||
|
|
||||||
|
// URP setup helpers
|
||||||
|
pipe = GraphicsSettings.currentRenderPipeline as UniversalRenderPipelineAsset;
|
||||||
|
if (pipe == null) {
|
||||||
|
EditorGUILayout.HelpBox("You must assign the Universal Rendering Pipeline asset in Project Settings / Graphics. Then, add the Highlight Plus Scriptable Render Feature to the list of Renderer Features of the Forward Renderer.", MessageType.Error);
|
||||||
|
if (GUILayout.Button("Watch Setup Video Tutorial")) {
|
||||||
|
Application.OpenURL("https://youtu.be/EgyBs8v9aRI");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!HighlightPlusRenderPassFeature.installed) {
|
||||||
|
EditorGUILayout.HelpBox("Highlight Plus Render Feature must be added to the list of features of the Forward Renderer in the Universal Rendering Pipeline asset.", MessageType.Warning);
|
||||||
|
if (GUILayout.Button("Watch Setup Video Tutorial")) {
|
||||||
|
Application.OpenURL("https://youtu.be/EgyBs8v9aRI");
|
||||||
|
}
|
||||||
|
if (GUILayout.Button("Go to Universal Rendering Pipeline Asset")) {
|
||||||
|
Selection.activeObject = pipe;
|
||||||
|
}
|
||||||
|
EditorGUILayout.Separator();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isManager = IsDefaultEffectUsedByManager();
|
||||||
serializedObject.Update();
|
serializedObject.Update();
|
||||||
|
|
||||||
|
bool isMeshObject = !thisEffect.spriteMode;
|
||||||
|
|
||||||
if (foldoutBold == null) {
|
if (foldoutBold == null) {
|
||||||
foldoutBold = new GUIStyle(EditorStyles.foldout);
|
foldoutBold = new GUIStyle(EditorStyles.foldout);
|
||||||
foldoutBold.fontStyle = FontStyle.Bold;
|
foldoutBold.fontStyle = FontStyle.Bold;
|
||||||
|
@ -185,8 +220,7 @@ namespace HighlightPlus {
|
||||||
if (GUILayout.Button(new GUIContent("Load", "Updates settings with the profile configuration."), GUILayout.Width(60))) {
|
if (GUILayout.Button(new GUIContent("Load", "Updates settings with the profile configuration."), GUILayout.Width(60))) {
|
||||||
profileChanged = true;
|
profileChanged = true;
|
||||||
}
|
}
|
||||||
if (!enableProfileApply)
|
GUI.enabled = enableProfileApply;
|
||||||
GUI.enabled = false;
|
|
||||||
if (GUILayout.Button(new GUIContent("Save", "Updates profile configuration with changes in this inspector."), GUILayout.Width(60))) {
|
if (GUILayout.Button(new GUIContent("Save", "Updates profile configuration with changes in this inspector."), GUILayout.Width(60))) {
|
||||||
enableProfileApply = false;
|
enableProfileApply = false;
|
||||||
profileChanged = false;
|
profileChanged = false;
|
||||||
|
@ -221,10 +255,6 @@ namespace HighlightPlus {
|
||||||
|
|
||||||
expandGeneralSettings = EditorGUILayout.Foldout(expandGeneralSettings, "General Settings", true, foldoutBold);
|
expandGeneralSettings = EditorGUILayout.Foldout(expandGeneralSettings, "General Settings", true, foldoutBold);
|
||||||
if (expandGeneralSettings) {
|
if (expandGeneralSettings) {
|
||||||
if (!isManager) {
|
|
||||||
EditorGUILayout.PropertyField(previewInEditor);
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(camerasLayerMask);
|
EditorGUILayout.PropertyField(camerasLayerMask);
|
||||||
EditorGUILayout.PropertyField(ignoreObjectVisibility);
|
EditorGUILayout.PropertyField(ignoreObjectVisibility);
|
||||||
if (thisEffect.staticChildren) {
|
if (thisEffect.staticChildren) {
|
||||||
|
@ -232,9 +262,14 @@ namespace HighlightPlus {
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(reflectionProbes);
|
EditorGUILayout.PropertyField(reflectionProbes);
|
||||||
EditorGUILayout.PropertyField(normalsOption);
|
|
||||||
EditorGUILayout.PropertyField(subMeshMask);
|
if (isMeshObject) {
|
||||||
EditorGUILayout.PropertyField(GPUInstancing);
|
EditorGUILayout.PropertyField(normalsOption);
|
||||||
|
}
|
||||||
|
EditorGUILayout.PropertyField(optimizeSkinnedMesh);
|
||||||
|
if (isMeshObject || optimizeSkinnedMesh.boolValue) {
|
||||||
|
EditorGUILayout.PropertyField(GPUInstancing);
|
||||||
|
}
|
||||||
EditorGUILayout.Separator();
|
EditorGUILayout.Separator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,6 +286,9 @@ namespace HighlightPlus {
|
||||||
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
EditorGUILayout.BeginHorizontal();
|
||||||
expandHighlightOptions = EditorGUILayout.Foldout(expandHighlightOptions, "Highlight Options", true, foldoutBold);
|
expandHighlightOptions = EditorGUILayout.Foldout(expandHighlightOptions, "Highlight Options", true, foldoutBold);
|
||||||
|
if (!isMeshObject) {
|
||||||
|
GUILayout.Label(new GUIContent("SPRITE MODE", "Highlight Effect over sprites. Some effects are not available in sprite mode"), EditorStyles.centeredGreyMiniLabel);
|
||||||
|
}
|
||||||
if (GUILayout.Button("Help", GUILayout.Width(50))) {
|
if (GUILayout.Button("Help", GUILayout.Width(50))) {
|
||||||
EditorUtility.DisplayDialog("Quick Help", "Move the mouse over a setting for a short description.\n\nVisit kronnect.com's forum for support, questions and more cool assets.\n\nIf you like Highlight Plus please rate it or leave a review on the Asset Store! Thanks.", "Ok");
|
EditorUtility.DisplayDialog("Quick Help", "Move the mouse over a setting for a short description.\n\nVisit kronnect.com's forum for support, questions and more cool assets.\n\nIf you like Highlight Plus please rate it or leave a review on the Asset Store! Thanks.", "Ok");
|
||||||
}
|
}
|
||||||
|
@ -267,22 +305,25 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(effectGroupLayer, new GUIContent("Layer"));
|
EditorGUILayout.PropertyField(effectGroupLayer, new GUIContent("Layer"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
bool usesHQEffects = (outlineQuality.intValue == (int)QualityLevel.Highest && outline.floatValue > 0) || (glowQuality.intValue == (int)QualityLevel.Highest && glow.floatValue > 0);
|
if (effectGroup.intValue != (int)TargetOptions.OnlyThisObject && effectGroup.intValue != (int)TargetOptions.Scripting) {
|
||||||
if (effectGroup.intValue != (int)TargetOptions.OnlyThisObject) {
|
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(effectNameFilter, new GUIContent("Object Name Filter"));
|
EditorGUILayout.PropertyField(effectNameFilter, new GUIContent("Object Name Filter"));
|
||||||
EditorGUILayout.BeginHorizontal();
|
if (isMeshObject) {
|
||||||
EditorGUILayout.PropertyField(combineMeshes);
|
EditorGUILayout.BeginHorizontal();
|
||||||
if (combineMeshes.boolValue) {
|
EditorGUILayout.PropertyField(combineMeshes);
|
||||||
if (GUILayout.Button("Refresh", GUILayout.Width(70))) {
|
if (combineMeshes.boolValue) {
|
||||||
thisEffect.Refresh(true);
|
if (GUILayout.Button("Refresh", GUILayout.Width(70))) {
|
||||||
|
thisEffect.Refresh(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.PropertyField(alphaCutOff, new GUIContent("Alpha Cut Off", "Only for semi-transparent objects. Leave this to zero for normal opaque objects."));
|
EditorGUILayout.PropertyField(alphaCutOff, new GUIContent("Alpha Cut Off", "Only for semi-transparent objects. Leave this to zero for normal opaque objects."));
|
||||||
EditorGUILayout.PropertyField(cullBackFaces);
|
if (isMeshObject) {
|
||||||
|
EditorGUILayout.PropertyField(cullBackFaces);
|
||||||
|
}
|
||||||
EditorGUILayout.PropertyField(fadeInDuration);
|
EditorGUILayout.PropertyField(fadeInDuration);
|
||||||
EditorGUILayout.PropertyField(fadeOutDuration);
|
EditorGUILayout.PropertyField(fadeOutDuration);
|
||||||
EditorGUILayout.PropertyField(cameraDistanceFade);
|
EditorGUILayout.PropertyField(cameraDistanceFade);
|
||||||
|
@ -292,19 +333,16 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(cameraDistanceFadeFar, new GUIContent("Far Distance"));
|
EditorGUILayout.PropertyField(cameraDistanceFadeFar, new GUIContent("Far Distance"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
if (usesHQEffects) {
|
if ((PlayerSettings.virtualRealitySupported && ((outlineQuality.intValue == (int)QualityLevel.Highest && outline.floatValue > 0) || (glowQuality.intValue == (int)QualityLevel.Highest && glow.floatValue > 0)))) {
|
||||||
EditorGUILayout.PropertyField(depthClip);
|
EditorGUILayout.PropertyField(flipY, new GUIContent("Flip Y Fix", "Flips outline/glow effect to fix bug introduced in Unity 2019.1.0 when VR is enabled."));
|
||||||
if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.iOS || EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android) {
|
|
||||||
EditorGUILayout.HelpBox("On mobile, consider enabling 'Depth Clip' option for better results.", MessageType.Info);
|
|
||||||
}
|
|
||||||
if (VRCheck.IsActive()) {
|
|
||||||
EditorGUILayout.PropertyField(flipY, new GUIContent("Flip Y Fix", "Flips outline/glow effect to fix bug introduced in Unity 2019.1.0 when VR is enabled."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (glowQuality.intValue != (int)QualityLevel.Highest || outlineQuality.intValue != (int)QualityLevel.Highest) {
|
if (glowQuality.intValue != (int)QualityLevel.Highest || outlineQuality.intValue != (int)QualityLevel.Highest) {
|
||||||
EditorGUILayout.PropertyField(constantWidth, new GUIContent("Constant Width", "Compensates outline/glow width with depth increase."));
|
EditorGUILayout.PropertyField(constantWidth, new GUIContent("Constant Width", "Compensates outline/glow width with depth increase."));
|
||||||
}
|
}
|
||||||
EditorGUILayout.PropertyField(outlineIndependent, new GUIContent("Independent", "Do not combine outline or glow with other highlighted objects."));
|
if (isMeshObject) {
|
||||||
|
EditorGUILayout.PropertyField(subMeshMask);
|
||||||
|
EditorGUILayout.PropertyField(outlineIndependent, new GUIContent("Independent", "Do not combine outline or glow with other highlighted objects."));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,19 +354,28 @@ namespace HighlightPlus {
|
||||||
DrawSectionField(outline, "Outline", outline.floatValue > 0);
|
DrawSectionField(outline, "Outline", outline.floatValue > 0);
|
||||||
if (outline.floatValue > 0) {
|
if (outline.floatValue > 0) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
if (isMeshObject) {
|
||||||
EditorGUILayout.BeginHorizontal();
|
EditorGUILayout.BeginHorizontal();
|
||||||
QualityPropertyField(outlineQuality);
|
QualityPropertyField(outlineQuality);
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
GUILayout.Label("(Screen-Space Effect)");
|
GUILayout.Label("(Screen-Space Effect)");
|
||||||
} else {
|
} else {
|
||||||
GUILayout.Label("(Mesh-based Effect)");
|
GUILayout.Label("(Mesh-based Effect)");
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
CheckVRSupport(outlineQuality.intValue);
|
CheckVRSupport(outlineQuality.intValue);
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
|
EditorGUILayout.PropertyField(outlineEdgeMode, new GUIContent("Edges"));
|
||||||
|
if (outlineEdgeMode.intValue == (int)OutlineEdgeMode.Any) {
|
||||||
|
EditorGUILayout.PropertyField(outlineEdgeThreshold, new GUIContent("Edge Detection Threshold"));
|
||||||
|
}
|
||||||
|
EditorGUILayout.PropertyField(outlineContourStyle, new GUIContent("Contour Style"));
|
||||||
|
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(outlineColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(outlineColor, new GUIContent("Color"));
|
||||||
|
EditorGUILayout.PropertyField(outlineBlurPasses, new GUIContent("Blur Passes"));
|
||||||
} else {
|
} else {
|
||||||
|
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(outlineColorStyle, new GUIContent("Color Style"));
|
EditorGUILayout.PropertyField(outlineColorStyle, new GUIContent("Color Style"));
|
||||||
switch ((ColorStyle)outlineColorStyle.intValue) {
|
switch ((ColorStyle)outlineColorStyle.intValue) {
|
||||||
case ColorStyle.SingleColor:
|
case ColorStyle.SingleColor:
|
||||||
|
@ -342,26 +389,21 @@ namespace HighlightPlus {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest && outlineEdgeMode.intValue != (int)OutlineEdgeMode.Any) {
|
||||||
|
CheckDepthTextureSupport("Highest Quality");
|
||||||
EditorGUILayout.PropertyField(outlineDownsampling, new GUIContent("Downsampling"));
|
EditorGUILayout.PropertyField(outlineDownsampling, new GUIContent("Downsampling"));
|
||||||
EditorGUILayout.PropertyField(outlineOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
|
||||||
if (outlineOptimalBlit.boolValue) {
|
|
||||||
EditorGUI.indentLevel++;
|
|
||||||
EditorGUILayout.PropertyField(outlineBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
|
||||||
if (outlineBlitDebug.boolValue && (!previewInEditor.boolValue || !highlighted.boolValue)) {
|
|
||||||
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" and \"Highlighted\" to display the outline Debug View.", MessageType.Warning);
|
|
||||||
}
|
|
||||||
EditorGUI.indentLevel--;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GUI.enabled = outlineQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
if (outlineQuality.intValue == (int)QualityLevel.Highest && (glow.floatValue > 0 && glowQuality.intValue == (int)QualityLevel.Highest)) {
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest && glowQuality.intValue == (int)QualityLevel.Highest && glow.floatValue > 0) {
|
outlineVisibility.intValue = glowVisibility.intValue;
|
||||||
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
}
|
||||||
} else {
|
EditorGUILayout.PropertyField(outlineVisibility, new GUIContent("Visibility"));
|
||||||
EditorGUILayout.PropertyField(outlineVisibility, new GUIContent("Visibility"));
|
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
|
EditorGUILayout.PropertyField(outlineBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
||||||
|
if (!Application.isPlaying && outlineBlitDebug.boolValue && (!HighlightPlusRenderPassFeature.showingInEditMode || !highlighted.boolValue)) {
|
||||||
|
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" in the Highlight Render Feature and \"Highlighted\" to display the outline Debug View.", MessageType.Warning);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
GUI.enabled = true;
|
|
||||||
|
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
|
@ -371,36 +413,32 @@ namespace HighlightPlus {
|
||||||
DrawSectionField(glow, "Outer Glow", glow.floatValue > 0);
|
DrawSectionField(glow, "Outer Glow", glow.floatValue > 0);
|
||||||
if (glow.floatValue > 0) {
|
if (glow.floatValue > 0) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
if (isMeshObject) {
|
||||||
EditorGUILayout.BeginHorizontal();
|
EditorGUILayout.BeginHorizontal();
|
||||||
QualityPropertyField(glowQuality);
|
QualityPropertyField(glowQuality);
|
||||||
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
GUILayout.Label("(Screen-Space Effect)");
|
GUILayout.Label("(Screen-Space Effect)");
|
||||||
} else {
|
} else {
|
||||||
GUILayout.Label("(Mesh-based Effect)");
|
GUILayout.Label("(Mesh-based Effect)");
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
CheckVRSupport(glowQuality.intValue);
|
CheckVRSupport(glowQuality.intValue);
|
||||||
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
EditorGUILayout.PropertyField(glowDownsampling, new GUIContent("Downsampling"));
|
CheckDepthTextureSupport("Highest Quality");
|
||||||
|
EditorGUILayout.PropertyField(outlineContourStyle, new GUIContent("Contour Style"));
|
||||||
|
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(glowHQColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(glowHQColor, new GUIContent("Color"));
|
||||||
EditorGUILayout.PropertyField(glowOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
EditorGUILayout.PropertyField(glowBlurMethod, new GUIContent("Blur Method", "Gaussian: better quality. Kawase: faster."));
|
||||||
if (glowOptimalBlit.boolValue) {
|
EditorGUILayout.PropertyField(glowDownsampling, new GUIContent("Downsampling"));
|
||||||
EditorGUI.indentLevel++;
|
} else {
|
||||||
EditorGUILayout.PropertyField(glowBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
||||||
if (glowBlitDebug.boolValue && (!previewInEditor.boolValue || !highlighted.boolValue)) {
|
}
|
||||||
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" and \"Highlighted\" to display the glow Debug View.", MessageType.Warning);
|
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
}
|
|
||||||
EditorGUI.indentLevel--;
|
|
||||||
}
|
|
||||||
GUI.enabled = glowQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
|
||||||
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
||||||
EditorGUILayout.PropertyField(glowBlendMode, new GUIContent("Blend Mode"));
|
EditorGUILayout.PropertyField(glowBlendMode, new GUIContent("Blend Mode"));
|
||||||
GUI.enabled = true;
|
|
||||||
} else {
|
} else {
|
||||||
GUI.enabled = glowQuality.intValue != (int)QualityLevel.Highest || CheckForwardMSAA();
|
|
||||||
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
||||||
GUI.enabled = true;
|
|
||||||
EditorGUILayout.PropertyField(glowDithering, new GUIContent("Dithering"));
|
EditorGUILayout.PropertyField(glowDithering, new GUIContent("Dithering"));
|
||||||
if (glowDithering.boolValue) {
|
if (glowDithering.boolValue) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
|
@ -423,20 +461,29 @@ namespace HighlightPlus {
|
||||||
}
|
}
|
||||||
EditorGUILayout.PropertyField(glowAnimationSpeed, new GUIContent("Animation Speed"));
|
EditorGUILayout.PropertyField(glowAnimationSpeed, new GUIContent("Animation Speed"));
|
||||||
EditorGUILayout.PropertyField(glowIgnoreMask, new GUIContent("Ignore Mask"));
|
EditorGUILayout.PropertyField(glowIgnoreMask, new GUIContent("Ignore Mask"));
|
||||||
|
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
|
EditorGUILayout.PropertyField(glowBlitDebug, new GUIContent("Debug View", "Shows the blitting rectangle on the screen."));
|
||||||
|
if (!Application.isPlaying && glowBlitDebug.boolValue && (!HighlightPlusRenderPassFeature.showingInEditMode || !highlighted.boolValue)) {
|
||||||
|
EditorGUILayout.HelpBox("Enable \"Preview In Editor\" in the Highlight Render Feature and \"Highlighted\" to display the glow Debug View.", MessageType.Warning);
|
||||||
|
}
|
||||||
|
}
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
if (isMeshObject) {
|
||||||
DrawSectionField(innerGlow, "Inner Glow", innerGlow.floatValue > 0);
|
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||||
if (innerGlow.floatValue > 0) {
|
DrawSectionField(innerGlow, "Inner Glow", innerGlow.floatValue > 0);
|
||||||
EditorGUI.indentLevel++;
|
if (innerGlow.floatValue > 0) {
|
||||||
EditorGUILayout.PropertyField(innerGlowColor, new GUIContent("Color"));
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(innerGlowWidth, new GUIContent("Width"));
|
EditorGUILayout.PropertyField(innerGlowColor, new GUIContent("Color"));
|
||||||
EditorGUILayout.PropertyField(innerGlowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(innerGlowWidth, new GUIContent("Width"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUILayout.PropertyField(innerGlowBlendMode, new GUIContent("Blend Mode"));
|
||||||
|
EditorGUILayout.PropertyField(innerGlowVisibility, new GUIContent("Visibility"));
|
||||||
|
EditorGUI.indentLevel--;
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||||
DrawSectionField(overlay, "Overlay", overlay.floatValue > 0);
|
DrawSectionField(overlay, "Overlay", overlay.floatValue > 0);
|
||||||
|
@ -452,6 +499,7 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(overlayBlending, new GUIContent("Blending"));
|
EditorGUILayout.PropertyField(overlayBlending, new GUIContent("Blending"));
|
||||||
EditorGUILayout.PropertyField(overlayMinIntensity, new GUIContent("Min Intensity"));
|
EditorGUILayout.PropertyField(overlayMinIntensity, new GUIContent("Min Intensity"));
|
||||||
EditorGUILayout.PropertyField(overlayAnimationSpeed, new GUIContent("Animation Speed"));
|
EditorGUILayout.PropertyField(overlayAnimationSpeed, new GUIContent("Animation Speed"));
|
||||||
|
EditorGUILayout.PropertyField(overlayVisibility, new GUIContent("Visibility"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
@ -469,6 +517,7 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(targetFXScaleToRenderBounds, new GUIContent("Scale To Object Bounds"));
|
EditorGUILayout.PropertyField(targetFXScaleToRenderBounds, new GUIContent("Scale To Object Bounds"));
|
||||||
EditorGUILayout.PropertyField(targetFXAlignToGround, new GUIContent("Align To Ground"));
|
EditorGUILayout.PropertyField(targetFXAlignToGround, new GUIContent("Align To Ground"));
|
||||||
if (targetFXAlignToGround.boolValue) {
|
if (targetFXAlignToGround.boolValue) {
|
||||||
|
CheckDepthTextureSupport("Align To Ground option");
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
if (thisEffect.includedObjectsCount > 1 && targetFXCenter.objectReferenceValue == null && effectGroup.intValue != (int)TargetOptions.OnlyThisObject) {
|
if (thisEffect.includedObjectsCount > 1 && targetFXCenter.objectReferenceValue == null && effectGroup.intValue != (int)TargetOptions.OnlyThisObject) {
|
||||||
EditorGUILayout.HelpBox("It's recommended to specify in the 'Center' property above, the specific object used to position the target fx image (will be rendered under that object on the ground).", MessageType.Info);
|
EditorGUILayout.HelpBox("It's recommended to specify in the 'Center' property above, the specific object used to position the target fx image (will be rendered under that object on the ground).", MessageType.Info);
|
||||||
|
@ -490,80 +539,85 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
if (isMeshObject) {
|
||||||
EditorGUILayout.PropertyField(seeThrough);
|
|
||||||
if (seeThrough.intValue != (int)SeeThroughMode.Never) {
|
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||||
if (isManager && seeThrough.intValue == (int)SeeThroughMode.AlwaysWhenOccluded) {
|
EditorGUILayout.PropertyField(seeThrough);
|
||||||
EditorGUILayout.HelpBox("This option is not valid in Manager.\nTo make an object always visible add a Highlight Effect component to the gameobject and enable this option on the component.", MessageType.Error);
|
if (seeThrough.intValue != (int)SeeThroughMode.Never) {
|
||||||
}
|
if (isManager && seeThrough.intValue == (int)SeeThroughMode.AlwaysWhenOccluded) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUILayout.HelpBox("This option is not valid in Manager.\nTo make an object always visible add a Highlight Effect component to the gameobject and enable this option on the component.", MessageType.Error);
|
||||||
EditorGUILayout.PropertyField(seeThroughOccluderMask, new GUIContent("Occluder Layer"));
|
|
||||||
if (seeThroughOccluderMask.intValue > 0) {
|
|
||||||
EditorGUI.indentLevel++;
|
|
||||||
EditorGUILayout.PropertyField(seeThroughOccluderMaskAccurate, new GUIContent("Accurate"));
|
|
||||||
EditorGUILayout.PropertyField(seeThroughOccluderThreshold, new GUIContent("Radius Threshold", "Multiplier to the object bounds. Making the bounds smaller prevents false occlusion tests."));
|
|
||||||
EditorGUILayout.PropertyField(seeThroughOccluderCheckInterval, new GUIContent("Check Interval", "Interval in seconds between occlusion tests."));
|
|
||||||
EditorGUILayout.PropertyField(seeThroughOccluderCheckIndividualObjects, new GUIContent("Check Individual Objects"));
|
|
||||||
if (!showCurrentOccluders && Camera.main != null) {
|
|
||||||
GUI.enabled = Application.isPlaying;
|
|
||||||
EditorGUILayout.BeginHorizontal();
|
|
||||||
GUILayout.Label("", GUILayout.Width(30));
|
|
||||||
if (GUILayout.Button(" Show Current Occluders (only during Play Mode) ")) {
|
|
||||||
showCurrentOccluders = true;
|
|
||||||
}
|
|
||||||
GUILayout.FlexibleSpace();
|
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
GUI.enabled = true;
|
|
||||||
}
|
}
|
||||||
if (showCurrentOccluders) {
|
EditorGUI.indentLevel++;
|
||||||
HighlightEffect h = (HighlightEffect)target;
|
EditorGUILayout.PropertyField(seeThroughOccluderMask, new GUIContent("Occluder Layer"));
|
||||||
List<Renderer> occluders = h.GetOccluders(Camera.main);
|
if (seeThroughOccluderMask.intValue > 0) {
|
||||||
int count = occluders != null ? occluders.Count : 0;
|
EditorGUI.indentLevel++;
|
||||||
if (count == 0) {
|
EditorGUILayout.PropertyField(seeThroughOccluderMaskAccurate, new GUIContent("Accurate"));
|
||||||
EditorGUILayout.LabelField("No occluders found (using main camera)");
|
EditorGUILayout.PropertyField(seeThroughOccluderThreshold, new GUIContent("Radius Threshold", "Multiplier to the object bounds. Making the bounds smaller prevents false occlusion tests."));
|
||||||
} else {
|
EditorGUILayout.PropertyField(seeThroughOccluderCheckInterval, new GUIContent("Check Interval", "Interval in seconds between occlusion tests."));
|
||||||
EditorGUILayout.LabelField("Occluders found (using main camera):");
|
EditorGUILayout.PropertyField(seeThroughOccluderCheckIndividualObjects, new GUIContent("Check Individual Objects"));
|
||||||
for (int k = 0; k < count; k++) {
|
if (!showCurrentOccluders && Camera.main != null) {
|
||||||
if (occluders[k] == null) continue;
|
GUI.enabled = Application.isPlaying;
|
||||||
EditorGUILayout.BeginHorizontal();
|
EditorGUILayout.BeginHorizontal();
|
||||||
EditorGUILayout.LabelField(occluders[k].name);
|
GUILayout.Label("", GUILayout.Width(30));
|
||||||
if (GUILayout.Button("Select")) {
|
if (GUILayout.Button(" Show Current Occluders (only during Play Mode) ")) {
|
||||||
Selection.activeGameObject = occluders[k].gameObject;
|
showCurrentOccluders = true;
|
||||||
GUIUtility.ExitGUI();
|
}
|
||||||
|
GUILayout.FlexibleSpace();
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
GUI.enabled = true;
|
||||||
|
}
|
||||||
|
if (showCurrentOccluders) {
|
||||||
|
HighlightEffect h = (HighlightEffect)target;
|
||||||
|
List<Renderer> occluders = h.GetOccluders(Camera.main);
|
||||||
|
int count = occluders != null ? occluders.Count : 0;
|
||||||
|
if (count == 0) {
|
||||||
|
EditorGUILayout.LabelField("No occluders found (using main camera)");
|
||||||
|
} else {
|
||||||
|
EditorGUILayout.LabelField("Occluders found (using main camera):");
|
||||||
|
for (int k = 0; k < count; k++) {
|
||||||
|
if (occluders[k] == null) continue;
|
||||||
|
EditorGUILayout.BeginHorizontal();
|
||||||
|
EditorGUILayout.LabelField(occluders[k].name);
|
||||||
|
if (GUILayout.Button("Select")) {
|
||||||
|
Selection.activeGameObject = occluders[k].gameObject;
|
||||||
|
GUIUtility.ExitGUI();
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndHorizontal();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUI.indentLevel--;
|
EditorGUILayout.PropertyField(seeThroughDepthOffset, new GUIContent("Depth Offset" + ((seeThroughDepthOffset.floatValue > 0) ? " •" : "")));
|
||||||
}
|
EditorGUILayout.PropertyField(seeThroughMaxDepth, new GUIContent("Max Depth" + ((seeThroughMaxDepth.floatValue > 0) ? " •" : "")));
|
||||||
EditorGUILayout.PropertyField(seeThroughDepthOffset, new GUIContent("Depth Offset" + ((seeThroughDepthOffset.floatValue > 0) ? " •" : "")));
|
if (seeThroughDepthOffset.floatValue > 0 || seeThroughMaxDepth.floatValue > 0) {
|
||||||
EditorGUILayout.PropertyField(seeThroughMaxDepth, new GUIContent("Max Depth" + ((seeThroughMaxDepth.floatValue > 0) ? " •" : "")));
|
CheckDepthTextureSupport("See-Through Depth Options");
|
||||||
EditorGUILayout.PropertyField(seeThroughIntensity, new GUIContent("Intensity"));
|
}
|
||||||
EditorGUILayout.PropertyField(seeThroughTintColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(seeThroughIntensity, new GUIContent("Intensity"));
|
||||||
EditorGUILayout.PropertyField(seeThroughTintAlpha, new GUIContent("Color Blend"));
|
EditorGUILayout.PropertyField(seeThroughTintColor, new GUIContent("Color"));
|
||||||
EditorGUILayout.PropertyField(seeThroughNoise, new GUIContent("Noise"));
|
EditorGUILayout.PropertyField(seeThroughTintAlpha, new GUIContent("Color Blend"));
|
||||||
EditorGUILayout.PropertyField(seeThroughTexture, new GUIContent("Texture"));
|
EditorGUILayout.PropertyField(seeThroughNoise, new GUIContent("Noise"));
|
||||||
if (seeThroughTexture.objectReferenceValue != null) {
|
EditorGUILayout.PropertyField(seeThroughTexture, new GUIContent("Texture"));
|
||||||
EditorGUI.indentLevel++;
|
if (seeThroughTexture.objectReferenceValue != null) {
|
||||||
EditorGUILayout.PropertyField(seeThroughTextureUVSpace, new GUIContent("UV Space"));
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(seeThroughTextureScale, new GUIContent("Texture Scale"));
|
EditorGUILayout.PropertyField(seeThroughTextureUVSpace, new GUIContent("UV Space"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUILayout.PropertyField(seeThroughTextureScale, new GUIContent("Texture Scale"));
|
||||||
}
|
EditorGUI.indentLevel--;
|
||||||
EditorGUILayout.PropertyField(seeThroughBorder, new GUIContent("Border When Hidden" + ((seeThroughBorder.floatValue > 0) ? " •" : "")));
|
}
|
||||||
if (seeThroughBorder.floatValue > 0) {
|
EditorGUILayout.PropertyField(seeThroughBorder, new GUIContent("Border When Hidden" + ((seeThroughBorder.floatValue > 0) ? " •" : "")));
|
||||||
EditorGUI.indentLevel++;
|
if (seeThroughBorder.floatValue > 0) {
|
||||||
EditorGUILayout.PropertyField(seeThroughBorderWidth, new GUIContent("Width"));
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(seeThroughBorderColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(seeThroughBorderWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(seeThroughBorderOnly, new GUIContent("Border Only"));
|
EditorGUILayout.PropertyField(seeThroughBorderColor, new GUIContent("Color"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUILayout.PropertyField(seeThroughBorderOnly, new GUIContent("Border Only"));
|
||||||
}
|
EditorGUI.indentLevel--;
|
||||||
EditorGUILayout.PropertyField(seeThroughOrdered, new GUIContent("Ordered"));
|
}
|
||||||
|
EditorGUILayout.PropertyField(seeThroughOrdered, new GUIContent("Ordered"));
|
||||||
|
|
||||||
|
EditorGUI.indentLevel--;
|
||||||
EditorGUI.indentLevel--;
|
}
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
|
||||||
|
|
||||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||||
DrawSectionField(hitFxInitialIntensity, "Hit FX", hitFxInitialIntensity.floatValue > 0);
|
DrawSectionField(hitFxInitialIntensity, "Hit FX", hitFxInitialIntensity.floatValue > 0);
|
||||||
|
@ -589,7 +643,6 @@ namespace HighlightPlus {
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
|
||||||
|
|
||||||
if (serializedObject.ApplyModifiedProperties() || profileChanged || Event.current.commandName == "UndoRedoPerformed") {
|
if (serializedObject.ApplyModifiedProperties() || profileChanged || Event.current.commandName == "UndoRedoPerformed") {
|
||||||
if (thisEffect.profile != null) {
|
if (thisEffect.profile != null) {
|
||||||
if (profileChanged) {
|
if (profileChanged) {
|
||||||
|
@ -612,21 +665,22 @@ namespace HighlightPlus {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckVRSupport(int qualityLevel) {
|
void CheckVRSupport(int qualityLevel) {
|
||||||
if (qualityLevel == (int)QualityLevel.Highest && VRCheck.IsActive()) {
|
if (qualityLevel == (int)QualityLevel.Highest && PlayerSettings.virtualRealitySupported) {
|
||||||
if (PlayerSettings.stereoRenderingPath != StereoRenderingPath.MultiPass) {
|
if (PlayerSettings.stereoRenderingPath != StereoRenderingPath.MultiPass) {
|
||||||
EditorGUILayout.HelpBox("Highest Quality only supports VR Multi-Pass as CommandBuffers do not support this VR mode yet. Either switch to 'High Quality' or change VR Stereo mode to Multi-Pass.", MessageType.Error);
|
EditorGUILayout.HelpBox("Highest Quality only supports VR Multi-Pass as CommandBuffers do not support this VR mode yet. Either switch to 'High Quality' or change VR Stereo mode to Multi-Pass.", MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CheckForwardMSAA() {
|
void CheckDepthTextureSupport(string feature) {
|
||||||
if (QualitySettings.antiAliasing > 1) {
|
if (pipe == null) return;
|
||||||
if (Camera.main != null && Camera.main.allowMSAA && !depthClip.boolValue) {
|
if (!pipe.supportsCameraDepthTexture && !thisEffect.spriteMode) {
|
||||||
EditorGUILayout.HelpBox("Effect will be shown always on top due to MSAA. To enable depth clipping enable 'Depth Clip' option above OR disable MSAA in Quality Settings OR choose a different quality level.", MessageType.Info);
|
EditorGUILayout.HelpBox(feature + " requires Depth Texture support and currently it's not enabled in the Rendering Pipeline asset.", MessageType.Error);
|
||||||
return false;
|
if (pipe != null && GUILayout.Button("Go to Universal Rendering Pipeline Asset")) {
|
||||||
|
Selection.activeObject = pipe;
|
||||||
}
|
}
|
||||||
|
EditorGUILayout.Separator();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static readonly int[] qualityValues = { 0, 3, 1, 2 };
|
static readonly int[] qualityValues = { 0, 3, 1, 2 };
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: be287539f47634552a716f0705710448
|
guid: be287539f47634552a716f0705710448
|
||||||
timeCreated: 1542886545
|
timeCreated: 1542886545
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
|
|
|
@ -54,17 +54,17 @@ namespace HighlightPlus {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[MenuItem("GameObject/Effects/Highlight Plus/Create Manager", false, 10)]
|
[MenuItem("GameObject/Effects/Highlight Plus/Create Highlight Manager", false, 10)]
|
||||||
static void CreateManager(MenuCommand menuCommand) {
|
static void CreateManager (MenuCommand menuCommand) {
|
||||||
HighlightManager manager = FindObjectOfType<HighlightManager>();
|
HighlightManager manager = FindObjectOfType<HighlightManager> ();
|
||||||
if (manager == null) {
|
if (manager == null) {
|
||||||
GameObject managerGO = new GameObject("HighlightPlusManager");
|
GameObject managerGO = new GameObject ("HighlightPlusManager");
|
||||||
manager = managerGO.AddComponent<HighlightManager>();
|
manager = managerGO.AddComponent<HighlightManager> ();
|
||||||
// Register root object for undo.
|
// Register root object for undo.
|
||||||
Undo.RegisterCreatedObjectUndo(manager, "Create Highlight Plus Manager");
|
Undo.RegisterCreatedObjectUndo (manager, "Create Highlight Plus Manager");
|
||||||
}
|
}
|
||||||
Selection.activeObject = manager;
|
Selection.activeObject = manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: ace58d1d278d649c98e5a2b5a066b3cd
|
guid: ace58d1d278d649c98e5a2b5a066b3cd
|
||||||
timeCreated: 1548711355
|
timeCreated: 1548711355
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
using System.Collections;
|
using UnityEditor;
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace HighlightPlus {
|
namespace HighlightPlus {
|
||||||
|
@ -9,12 +7,13 @@ namespace HighlightPlus {
|
||||||
[CanEditMultipleObjects]
|
[CanEditMultipleObjects]
|
||||||
public class HighlightProfileEditor : Editor {
|
public class HighlightProfileEditor : Editor {
|
||||||
|
|
||||||
SerializedProperty effectGroup, effectGroupLayer, effectNameFilter, combineMeshes, alphaCutOff, cullBackFaces, depthClip, normalsOption;
|
SerializedProperty effectGroup, effectGroupLayer, effectNameFilter, combineMeshes, alphaCutOff, cullBackFaces;
|
||||||
SerializedProperty overlay, overlayMode, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayTexture, overlayTextureScale, overlayTextureUVSpace, overlayBlending;
|
SerializedProperty overlay, overlayMode, overlayColor, overlayAnimationSpeed, overlayMinIntensity, overlayTexture, overlayTextureScale, overlayTextureUVSpace, overlayBlending, overlayVisibility;
|
||||||
SerializedProperty fadeInDuration, fadeOutDuration, constantWidth;
|
SerializedProperty fadeInDuration, fadeOutDuration, constantWidth, normalsOption;
|
||||||
SerializedProperty outline, outlineColor, outlineColorStyle, outlineGradient, outlineGradientInLocalSpace, outlineWidth, outlineQuality, outlineDownsampling, outlineOptimalBlit, outlineVisibility, outlineIndependent;
|
SerializedProperty outline, outlineColor, outlineColorStyle, outlineGradient, outlineGradientInLocalSpace, outlineWidth, outlineBlurPasses, outlineQuality, outlineEdgeMode, outlineEdgeThreshold, outlineDownsampling, outlineVisibility, outlineIndependent, outlineContourStyle;
|
||||||
SerializedProperty glow, glowWidth, glowQuality, glowOptimalBlit, glowDownsampling, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed, glowVisibility, glowBlendMode, glowBlendPasses, glowPasses, glowIgnoreMask;
|
SerializedProperty glow, glowWidth, glowQuality, glowBlurMethod, glowDownsampling, glowHQColor, glowDithering, glowMagicNumber1, glowMagicNumber2, glowAnimationSpeed;
|
||||||
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowVisibility;
|
SerializedProperty glowBlendPasses, glowVisibility, glowBlendMode, glowPasses, glowIgnoreMask;
|
||||||
|
SerializedProperty innerGlow, innerGlowWidth, innerGlowColor, innerGlowBlendMode, innerGlowVisibility;
|
||||||
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXScaleToRenderBounds;
|
SerializedProperty targetFX, targetFXTexture, targetFXColor, targetFXRotationSpeed, targetFXInitialScale, targetFXEndScale, targetFXScaleToRenderBounds;
|
||||||
SerializedProperty targetFXAlignToGround, targetFXFadePower, targetFXGroundMaxDistance, targetFXGroundLayerMask, targetFXTransitionDuration, targetFXStayDuration, targetFXVisibility;
|
SerializedProperty targetFXAlignToGround, targetFXFadePower, targetFXGroundMaxDistance, targetFXGroundLayerMask, targetFXTransitionDuration, targetFXStayDuration, targetFXVisibility;
|
||||||
SerializedProperty seeThrough, seeThroughOccluderMask, seeThroughOccluderMaskAccurate, seeThroughOccluderThreshold, seeThroughOccluderCheckInterval, seeThroughOccluderCheckIndividualObjects, seeThroughDepthOffset, seeThroughMaxDepth;
|
SerializedProperty seeThrough, seeThroughOccluderMask, seeThroughOccluderMaskAccurate, seeThroughOccluderThreshold, seeThroughOccluderCheckInterval, seeThroughOccluderCheckIndividualObjects, seeThroughDepthOffset, seeThroughMaxDepth;
|
||||||
|
@ -29,7 +28,6 @@ namespace HighlightPlus {
|
||||||
combineMeshes = serializedObject.FindProperty("combineMeshes");
|
combineMeshes = serializedObject.FindProperty("combineMeshes");
|
||||||
alphaCutOff = serializedObject.FindProperty("alphaCutOff");
|
alphaCutOff = serializedObject.FindProperty("alphaCutOff");
|
||||||
cullBackFaces = serializedObject.FindProperty("cullBackFaces");
|
cullBackFaces = serializedObject.FindProperty("cullBackFaces");
|
||||||
depthClip = serializedObject.FindProperty("depthClip");
|
|
||||||
normalsOption = serializedObject.FindProperty("normalsOption");
|
normalsOption = serializedObject.FindProperty("normalsOption");
|
||||||
fadeInDuration = serializedObject.FindProperty("fadeInDuration");
|
fadeInDuration = serializedObject.FindProperty("fadeInDuration");
|
||||||
fadeOutDuration = serializedObject.FindProperty("fadeOutDuration");
|
fadeOutDuration = serializedObject.FindProperty("fadeOutDuration");
|
||||||
|
@ -40,6 +38,7 @@ namespace HighlightPlus {
|
||||||
overlayAnimationSpeed = serializedObject.FindProperty("overlayAnimationSpeed");
|
overlayAnimationSpeed = serializedObject.FindProperty("overlayAnimationSpeed");
|
||||||
overlayMinIntensity = serializedObject.FindProperty("overlayMinIntensity");
|
overlayMinIntensity = serializedObject.FindProperty("overlayMinIntensity");
|
||||||
overlayBlending = serializedObject.FindProperty("overlayBlending");
|
overlayBlending = serializedObject.FindProperty("overlayBlending");
|
||||||
|
overlayVisibility = serializedObject.FindProperty("overlayVisibility");
|
||||||
overlayTexture = serializedObject.FindProperty("overlayTexture");
|
overlayTexture = serializedObject.FindProperty("overlayTexture");
|
||||||
overlayTextureUVSpace = serializedObject.FindProperty("overlayTextureUVSpace");
|
overlayTextureUVSpace = serializedObject.FindProperty("overlayTextureUVSpace");
|
||||||
overlayTextureScale = serializedObject.FindProperty("overlayTextureScale");
|
overlayTextureScale = serializedObject.FindProperty("overlayTextureScale");
|
||||||
|
@ -49,15 +48,18 @@ namespace HighlightPlus {
|
||||||
outlineGradient = serializedObject.FindProperty("outlineGradient");
|
outlineGradient = serializedObject.FindProperty("outlineGradient");
|
||||||
outlineGradientInLocalSpace = serializedObject.FindProperty("outlineGradientInLocalSpace");
|
outlineGradientInLocalSpace = serializedObject.FindProperty("outlineGradientInLocalSpace");
|
||||||
outlineWidth = serializedObject.FindProperty("outlineWidth");
|
outlineWidth = serializedObject.FindProperty("outlineWidth");
|
||||||
|
outlineBlurPasses = serializedObject.FindProperty("outlineBlurPasses");
|
||||||
outlineQuality = serializedObject.FindProperty("outlineQuality");
|
outlineQuality = serializedObject.FindProperty("outlineQuality");
|
||||||
outlineOptimalBlit = serializedObject.FindProperty("outlineOptimalBlit");
|
outlineEdgeMode = serializedObject.FindProperty("outlineEdgeMode");
|
||||||
|
outlineEdgeThreshold = serializedObject.FindProperty("outlineEdgeThreshold");
|
||||||
outlineDownsampling = serializedObject.FindProperty("outlineDownsampling");
|
outlineDownsampling = serializedObject.FindProperty("outlineDownsampling");
|
||||||
outlineVisibility = serializedObject.FindProperty("outlineVisibility");
|
outlineVisibility = serializedObject.FindProperty("outlineVisibility");
|
||||||
outlineIndependent = serializedObject.FindProperty("outlineIndependent");
|
outlineIndependent = serializedObject.FindProperty("outlineIndependent");
|
||||||
|
outlineContourStyle = serializedObject.FindProperty("outlineContourStyle");
|
||||||
glow = serializedObject.FindProperty("glow");
|
glow = serializedObject.FindProperty("glow");
|
||||||
glowWidth = serializedObject.FindProperty("glowWidth");
|
glowWidth = serializedObject.FindProperty("glowWidth");
|
||||||
glowQuality = serializedObject.FindProperty("glowQuality");
|
glowQuality = serializedObject.FindProperty("glowQuality");
|
||||||
glowOptimalBlit = serializedObject.FindProperty("glowOptimalBlit");
|
glowBlurMethod = serializedObject.FindProperty("glowBlurMethod");
|
||||||
glowDownsampling = serializedObject.FindProperty("glowDownsampling");
|
glowDownsampling = serializedObject.FindProperty("glowDownsampling");
|
||||||
glowHQColor = serializedObject.FindProperty("glowHQColor");
|
glowHQColor = serializedObject.FindProperty("glowHQColor");
|
||||||
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
glowAnimationSpeed = serializedObject.FindProperty("glowAnimationSpeed");
|
||||||
|
@ -73,6 +75,7 @@ namespace HighlightPlus {
|
||||||
innerGlow = serializedObject.FindProperty("innerGlow");
|
innerGlow = serializedObject.FindProperty("innerGlow");
|
||||||
innerGlowColor = serializedObject.FindProperty("innerGlowColor");
|
innerGlowColor = serializedObject.FindProperty("innerGlowColor");
|
||||||
innerGlowWidth = serializedObject.FindProperty("innerGlowWidth");
|
innerGlowWidth = serializedObject.FindProperty("innerGlowWidth");
|
||||||
|
innerGlowBlendMode = serializedObject.FindProperty("innerGlowBlendMode");
|
||||||
innerGlowVisibility = serializedObject.FindProperty("innerGlowVisibility");
|
innerGlowVisibility = serializedObject.FindProperty("innerGlowVisibility");
|
||||||
targetFX = serializedObject.FindProperty("targetFX");
|
targetFX = serializedObject.FindProperty("targetFX");
|
||||||
targetFXTexture = serializedObject.FindProperty("targetFXTexture");
|
targetFXTexture = serializedObject.FindProperty("targetFXTexture");
|
||||||
|
@ -120,6 +123,8 @@ namespace HighlightPlus {
|
||||||
|
|
||||||
public override void OnInspectorGUI() {
|
public override void OnInspectorGUI() {
|
||||||
|
|
||||||
|
serializedObject.Update();
|
||||||
|
|
||||||
EditorGUILayout.Separator();
|
EditorGUILayout.Separator();
|
||||||
EditorGUILayout.LabelField("Highlight Options", EditorStyles.boldLabel);
|
EditorGUILayout.LabelField("Highlight Options", EditorStyles.boldLabel);
|
||||||
EditorGUILayout.PropertyField(effectGroup, new GUIContent("Include"));
|
EditorGUILayout.PropertyField(effectGroup, new GUIContent("Include"));
|
||||||
|
@ -137,7 +142,6 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(alphaCutOff);
|
EditorGUILayout.PropertyField(alphaCutOff);
|
||||||
EditorGUILayout.PropertyField(cullBackFaces);
|
EditorGUILayout.PropertyField(cullBackFaces);
|
||||||
EditorGUILayout.PropertyField(normalsOption);
|
EditorGUILayout.PropertyField(normalsOption);
|
||||||
EditorGUILayout.PropertyField(depthClip);
|
|
||||||
EditorGUILayout.PropertyField(fadeInDuration);
|
EditorGUILayout.PropertyField(fadeInDuration);
|
||||||
EditorGUILayout.PropertyField(fadeOutDuration);
|
EditorGUILayout.PropertyField(fadeOutDuration);
|
||||||
EditorGUILayout.PropertyField(cameraDistanceFade);
|
EditorGUILayout.PropertyField(cameraDistanceFade);
|
||||||
|
@ -157,11 +161,18 @@ namespace HighlightPlus {
|
||||||
DrawSectionField(outline, "Outline", outline.floatValue > 0);
|
DrawSectionField(outline, "Outline", outline.floatValue > 0);
|
||||||
if (outline.floatValue > 0) {
|
if (outline.floatValue > 0) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
|
||||||
HighlightEffectEditor.QualityPropertyField(outlineQuality);
|
HighlightEffectEditor.QualityPropertyField(outlineQuality);
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
|
EditorGUILayout.PropertyField(outlineEdgeMode, new GUIContent("Edges"));
|
||||||
|
if (outlineEdgeMode.intValue == (int)OutlineEdgeMode.Any) {
|
||||||
|
EditorGUILayout.PropertyField(outlineEdgeThreshold, new GUIContent("Edge Detection Threshold"));
|
||||||
|
}
|
||||||
|
EditorGUILayout.PropertyField(outlineContourStyle, new GUIContent("Contour Style"));
|
||||||
|
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(outlineColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(outlineColor, new GUIContent("Color"));
|
||||||
|
EditorGUILayout.PropertyField(outlineBlurPasses, new GUIContent("Blur Passes"));
|
||||||
} else {
|
} else {
|
||||||
|
EditorGUILayout.PropertyField(outlineWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(outlineColorStyle, new GUIContent("Color Style"));
|
EditorGUILayout.PropertyField(outlineColorStyle, new GUIContent("Color Style"));
|
||||||
switch ((ColorStyle)outlineColorStyle.intValue) {
|
switch ((ColorStyle)outlineColorStyle.intValue) {
|
||||||
case ColorStyle.SingleColor:
|
case ColorStyle.SingleColor:
|
||||||
|
@ -175,16 +186,14 @@ namespace HighlightPlus {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest && outlineEdgeMode.intValue != (int)OutlineEdgeMode.Any) {
|
||||||
EditorGUILayout.PropertyField(outlineDownsampling, new GUIContent("Downsampling"));
|
EditorGUILayout.PropertyField(outlineDownsampling, new GUIContent("Downsampling"));
|
||||||
EditorGUILayout.PropertyField(outlineOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
|
||||||
}
|
}
|
||||||
if (outlineQuality.intValue == (int)QualityLevel.Highest && glowQuality.intValue == (int)QualityLevel.Highest) {
|
if (outlineQuality.intValue == (int)QualityLevel.Highest && glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
||||||
} else {
|
} else {
|
||||||
EditorGUILayout.PropertyField(outlineVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(outlineVisibility, new GUIContent("Visibility"));
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
@ -193,12 +202,15 @@ namespace HighlightPlus {
|
||||||
DrawSectionField(glow, "Outer Glow", glow.floatValue > 0);
|
DrawSectionField(glow, "Outer Glow", glow.floatValue > 0);
|
||||||
if (glow.floatValue > 0) {
|
if (glow.floatValue > 0) {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
|
||||||
HighlightEffectEditor.QualityPropertyField(glowQuality);
|
HighlightEffectEditor.QualityPropertyField(glowQuality);
|
||||||
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
if (glowQuality.intValue == (int)QualityLevel.Highest) {
|
||||||
EditorGUILayout.PropertyField(glowDownsampling, new GUIContent("Downsampling"));
|
EditorGUILayout.PropertyField(outlineContourStyle, new GUIContent("Contour Style"));
|
||||||
|
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
||||||
EditorGUILayout.PropertyField(glowHQColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(glowHQColor, new GUIContent("Color"));
|
||||||
EditorGUILayout.PropertyField(glowOptimalBlit, new GUIContent("Optimal Blit", "Blits result over a section of the screen instead of rendering to the full screen buffer."));
|
EditorGUILayout.PropertyField(glowBlurMethod, new GUIContent("Blur Method", "Gaussian: better quality. Kawase: faster."));
|
||||||
|
EditorGUILayout.PropertyField(glowDownsampling, new GUIContent("Downsampling"));
|
||||||
|
} else {
|
||||||
|
EditorGUILayout.PropertyField(glowWidth, new GUIContent("Width"));
|
||||||
}
|
}
|
||||||
EditorGUILayout.PropertyField(glowAnimationSpeed, new GUIContent("Animation Speed"));
|
EditorGUILayout.PropertyField(glowAnimationSpeed, new GUIContent("Animation Speed"));
|
||||||
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(glowVisibility, new GUIContent("Visibility"));
|
||||||
|
@ -225,6 +237,7 @@ namespace HighlightPlus {
|
||||||
EditorGUI.indentLevel++;
|
EditorGUI.indentLevel++;
|
||||||
EditorGUILayout.PropertyField(innerGlowColor, new GUIContent("Color"));
|
EditorGUILayout.PropertyField(innerGlowColor, new GUIContent("Color"));
|
||||||
EditorGUILayout.PropertyField(innerGlowWidth, new GUIContent("Width"));
|
EditorGUILayout.PropertyField(innerGlowWidth, new GUIContent("Width"));
|
||||||
|
EditorGUILayout.PropertyField(innerGlowBlendMode, new GUIContent("Blend Mode"));
|
||||||
EditorGUILayout.PropertyField(innerGlowVisibility, new GUIContent("Visibility"));
|
EditorGUILayout.PropertyField(innerGlowVisibility, new GUIContent("Visibility"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
|
@ -246,6 +259,7 @@ namespace HighlightPlus {
|
||||||
EditorGUILayout.PropertyField(overlayBlending, new GUIContent("Blending"));
|
EditorGUILayout.PropertyField(overlayBlending, new GUIContent("Blending"));
|
||||||
EditorGUILayout.PropertyField(overlayMinIntensity, new GUIContent("Min Intensity"));
|
EditorGUILayout.PropertyField(overlayMinIntensity, new GUIContent("Min Intensity"));
|
||||||
EditorGUILayout.PropertyField(overlayAnimationSpeed, new GUIContent("Animation Speed"));
|
EditorGUILayout.PropertyField(overlayAnimationSpeed, new GUIContent("Animation Speed"));
|
||||||
|
EditorGUILayout.PropertyField(overlayVisibility, new GUIContent("Visibility"));
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
@ -308,6 +322,7 @@ namespace HighlightPlus {
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.PropertyField(seeThroughOrdered, new GUIContent("Ordered"));
|
EditorGUILayout.PropertyField(seeThroughOrdered, new GUIContent("Ordered"));
|
||||||
|
|
||||||
EditorGUI.indentLevel--;
|
EditorGUI.indentLevel--;
|
||||||
}
|
}
|
||||||
EditorGUILayout.EndVertical();
|
EditorGUILayout.EndVertical();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b3b0e551d6f4f4f3987e8e5be2e89285
|
guid: b3b0e551d6f4f4f3987e8e5be2e89285
|
||||||
timeCreated: 1542886545
|
timeCreated: 1542886545
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 11e725ecbe4d74569b232e1a0d57efba
|
guid: 11e725ecbe4d74569b232e1a0d57efba
|
||||||
timeCreated: 1548711355
|
timeCreated: 1548711355
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
|
|
|
@ -32,20 +32,20 @@ namespace HighlightPlus {
|
||||||
|
|
||||||
public override void OnInspectorGUI() {
|
public override void OnInspectorGUI() {
|
||||||
|
|
||||||
serializedObject.Update();
|
serializedObject.Update ();
|
||||||
|
|
||||||
if (trigger.triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
if (trigger.triggerMode == TriggerMode.RaycastOnThisObjectAndChildren) {
|
||||||
if (trigger.colliders == null || trigger.colliders.Length == 0) {
|
if (!trigger.hasColliders && !trigger.hasColliders2D) {
|
||||||
EditorGUILayout.HelpBox("No collider found on this object or any of its children. Add colliders to allow automatic highlighting.", MessageType.Warning);
|
EditorGUILayout.HelpBox ("No collider found on this object or any of its children. Add colliders to allow automatic highlighting.", MessageType.Warning);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#if ENABLE_INPUT_SYSTEM
|
#if ENABLE_INPUT_SYSTEM
|
||||||
if (trigger.triggerMode == TriggerMode.ColliderEventsOnlyOnThisObject) {
|
if (trigger.triggerMode == TriggerMode.ColliderEventsOnlyOnThisObject) {
|
||||||
EditorGUILayout.HelpBox("This trigger mode is not compatible with the new input system.", MessageType.Error);
|
EditorGUILayout.HelpBox("This trigger mode is not compatible with the new input system.", MessageType.Error);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (trigger.GetComponent<Collider>() == null) {
|
if (trigger.GetComponent<Collider>() == null && trigger.GetComponent<Collider2D>() == null) {
|
||||||
EditorGUILayout.HelpBox("No collider found on this object. Add a collider to allow automatic highlighting.", MessageType.Error);
|
EditorGUILayout.HelpBox ("No collider found on this object. Add a collider to allow automatic highlighting.", MessageType.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: eaf7f56fbcfa343efb5081d4309cb76b
|
guid: eaf7f56fbcfa343efb5081d4309cb76b
|
||||||
timeCreated: 1548711355
|
timeCreated: 1548711355
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
|
|
|
@ -9,7 +9,6 @@ namespace HighlightPlus {
|
||||||
public class TransparentWithDepth {
|
public class TransparentWithDepth {
|
||||||
|
|
||||||
static Material bmDepthOnly;
|
static Material bmDepthOnly;
|
||||||
static Material bmDepthClipping;
|
|
||||||
|
|
||||||
|
|
||||||
[MenuItem ("GameObject/Effects/Highlight Plus/Add Depth To Transparent Object", false, 100)]
|
[MenuItem ("GameObject/Effects/Highlight Plus/Add Depth To Transparent Object", false, 100)]
|
||||||
|
@ -18,7 +17,7 @@ namespace HighlightPlus {
|
||||||
if (renderer == null)
|
if (renderer == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!EditorUtility.DisplayDialog("Add Depth to Transparent Object", "This option will force the transparent object to write to the depth buffer by adding a new special material to the renderer (existing materials are preserved) so it can occlude and allow See-Through effect.\nOnly use on transparent objects.\n\nProceed?", "Yes", "No")) {
|
if (!EditorUtility.DisplayDialog ("Add Depth To Transparent Object", "This option will force the transparent object to write to the depth buffer by adding a new special material to the renderer (existing materials are preserved) so it can occlude and allow See-Through effect.\nOnly use on transparent objects.\n\nProceed?", "Yes", "No")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,96 +35,57 @@ namespace HighlightPlus {
|
||||||
newMaterials.Insert (0, bmDepthOnly);
|
newMaterials.Insert (0, bmDepthOnly);
|
||||||
renderer.sharedMaterials = newMaterials.ToArray ();
|
renderer.sharedMaterials = newMaterials.ToArray ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MenuItem ("GameObject/Effects/Highlight Plus/Remove Depth Compatibility", false, 101)]
|
||||||
|
static void RemoveDepthOption () {
|
||||||
|
|
||||||
|
Renderer renderer = GetRenderer ();
|
||||||
|
if (renderer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Material[] materials = renderer.sharedMaterials;
|
||||||
|
for (int k = 0; k < materials.Length; k++) {
|
||||||
|
if (materials [k] == bmDepthOnly) {
|
||||||
|
List<Material> newMaterials = new List<Material> (renderer.sharedMaterials);
|
||||||
|
newMaterials.RemoveAt (k);
|
||||||
|
renderer.sharedMaterials = newMaterials.ToArray ();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int k = 0; k < materials.Length; k++) {
|
||||||
|
if (materials [k] == bmDepthOnly) {
|
||||||
|
EditorUtility.DisplayDialog ("Depth Support", "This object was not previously modified! Nothing to do.", "Ok");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[MenuItem("GameObject/Effects/Highlight Plus/Make Transparent Object Compatible with Depth Clipping", false, 101)]
|
static Renderer GetRenderer () {
|
||||||
static void AddDepthClippingOption() {
|
|
||||||
Renderer renderer = GetRenderer();
|
|
||||||
if (renderer == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!EditorUtility.DisplayDialog("Make Transparent Object Compatible with Depth Clipping", "This option will force the transparent object to write to _CameraDepthBuffer which is used by depth clip option (existing materials are preserved) so it can occlude outline and glow effects in High Quality mode.\nOnly use on transparent objects which need to occlude other outline / glow effects in high quality mode.\n\nProceed?", "Yes", "No")) {
|
if (Selection.activeGameObject == null) {
|
||||||
return;
|
EditorUtility.DisplayDialog ("Depth Support", "This option can only be used on GameObjects.", "Ok");
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
|
Renderer renderer = Selection.activeGameObject.GetComponent<Renderer> ();
|
||||||
|
if (renderer == null) {
|
||||||
|
EditorUtility.DisplayDialog ("Depth Support", "This option can only be used on GameObjects with a Renderer component attached.", "Ok");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
Material[] materials = renderer.sharedMaterials;
|
if (bmDepthOnly == null) {
|
||||||
for (int k = 0; k < materials.Length; k++) {
|
bmDepthOnly = Resources.Load<Material> ("HighlightPlus/HighlightPlusDepthWrite");
|
||||||
if (materials[k] == bmDepthClipping) {
|
if (bmDepthOnly == null) {
|
||||||
EditorUtility.DisplayDialog("Depth Clipping Support", "Already set! Nothing to do.", "Ok");
|
EditorUtility.DisplayDialog ("Depth Support", "HighlightPlusDepthWrite material not found!", "Ok");
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (materials == null) {
|
|
||||||
renderer.sharedMaterial = bmDepthClipping;
|
|
||||||
} else {
|
|
||||||
List<Material> newMaterials = new List<Material>(materials);
|
|
||||||
newMaterials.Insert(0, bmDepthClipping);
|
|
||||||
renderer.sharedMaterials = newMaterials.ToArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
return renderer;
|
||||||
[MenuItem("GameObject/Effects/Highlight Plus/Remove Depth Compatibility", false, 102)]
|
}
|
||||||
static void RemoveDepthOption() {
|
|
||||||
|
|
||||||
Renderer renderer = GetRenderer();
|
|
||||||
if (renderer == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool found = false;
|
|
||||||
Material[] materials = renderer.sharedMaterials;
|
|
||||||
for (int k = 0; k < materials.Length; k++) {
|
|
||||||
if (materials[k] == bmDepthOnly || materials[k] == bmDepthClipping) {
|
|
||||||
materials[k] = null;
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (found) {
|
|
||||||
List<Material> newMaterials = new List<Material>();
|
|
||||||
for (int k = 0; k < materials.Length; k++) {
|
|
||||||
if (materials[k] != null) {
|
|
||||||
newMaterials.Add(materials[k]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
renderer.sharedMaterials = newMaterials.ToArray();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorUtility.DisplayDialog("Depth Support", "This object was not previously modified! Nothing to do.", "Ok");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static Renderer GetRenderer() {
|
|
||||||
|
|
||||||
if (Selection.activeGameObject == null) {
|
|
||||||
EditorUtility.DisplayDialog("Depth Support", "This option can only be used on GameObjects.", "Ok");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
Renderer renderer = Selection.activeGameObject.GetComponent<Renderer>();
|
|
||||||
if (renderer == null) {
|
|
||||||
EditorUtility.DisplayDialog("Depth Support", "This option can only be used on GameObjects with a Renderer component attached.", "Ok");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bmDepthOnly == null) {
|
|
||||||
bmDepthOnly = Resources.Load<Material>("HighlightPlus/HighlightPlusDepthWrite");
|
|
||||||
if (bmDepthOnly == null) {
|
|
||||||
EditorUtility.DisplayDialog("Depth Support", "HighlightPlusDepthWrite material not found!", "Ok");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bmDepthClipping == null) {
|
|
||||||
bmDepthClipping = Resources.Load<Material>("HighlightPlus/HighlightPlusDepthClipComp");
|
|
||||||
if (bmDepthClipping == null) {
|
|
||||||
EditorUtility.DisplayDialog("Depth Clipping Support", "HighlightPlusDepthClipComp material not found!", "Ok");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return renderer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: be6e3be6d17ed49a3bd16d816815d6fd
|
guid: be6e3be6d17ed49a3bd16d816815d6fd
|
||||||
timeCreated: 1515683694
|
timeCreated: 1515683694
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine.XR;
|
|
||||||
|
|
||||||
namespace HighlightPlus {
|
|
||||||
public static class VRCheck {
|
|
||||||
|
|
||||||
#if UNITY_2019_3_OR_NEWER
|
|
||||||
|
|
||||||
static List<XRDisplaySubsystemDescriptor> displaysDescs = new List<XRDisplaySubsystemDescriptor>();
|
|
||||||
static List<XRDisplaySubsystem> displays = new List<XRDisplaySubsystem>();
|
|
||||||
|
|
||||||
public static bool IsActive() {
|
|
||||||
displaysDescs.Clear();
|
|
||||||
SubsystemManager.GetSubsystemDescriptors(displaysDescs);
|
|
||||||
|
|
||||||
// If there are registered display descriptors that is a good indication that VR is most likely "enabled"
|
|
||||||
return displaysDescs.Count > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsVrRunning() {
|
|
||||||
bool vrIsRunning = false;
|
|
||||||
displays.Clear();
|
|
||||||
SubsystemManager.GetInstances(displays);
|
|
||||||
foreach (var displaySubsystem in displays) {
|
|
||||||
if (displaySubsystem.running) {
|
|
||||||
vrIsRunning = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return vrIsRunning;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
public static bool IsActive() {
|
|
||||||
return PlayerSettings.virtualRealitySupported;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsVrRunning() {
|
|
||||||
return Application.isPlaying && PlayerSettings.virtualRealitySupported;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3302310c4cbf644e2b5dc5c588f0213f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6ec7787befe3645f7a6f10c3762dc3df
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,61 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-7137549924450841197
|
||||||
|
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: 473a86c9e274347dfbdde619584cebe9, type: 3}
|
||||||
|
m_Name: NewHighlightPlusRenderPassFeature
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Active: 1
|
||||||
|
renderPassEvent: 500
|
||||||
|
clearStencil: 0
|
||||||
|
--- !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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: HighlightPlusForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_RendererFeatures:
|
||||||
|
- {fileID: -7137549924450841197}
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd,
|
||||||
|
type: 3}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
tileDepthInfoPS: {fileID: 0}
|
||||||
|
tileDeferredPS: {fileID: 0}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 0
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_AccurateGbufferNormals: 0
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 47db18f3169384f6b87445e6447e189e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,208 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
using UnityEngine.Rendering.Universal;
|
||||||
|
|
||||||
|
namespace HighlightPlus {
|
||||||
|
|
||||||
|
public class HighlightPlusRenderPassFeature : ScriptableRendererFeature {
|
||||||
|
class HighlightPass : ScriptableRenderPass {
|
||||||
|
|
||||||
|
// far objects render first
|
||||||
|
class DistanceComparer : IComparer<HighlightEffect> {
|
||||||
|
|
||||||
|
public Vector3 camPos;
|
||||||
|
|
||||||
|
public int Compare(HighlightEffect e1, HighlightEffect e2) {
|
||||||
|
Vector3 e1Pos = e1.transform.position;
|
||||||
|
float dx1 = e1Pos.x - camPos.x;
|
||||||
|
float dy1 = e1Pos.y - camPos.y;
|
||||||
|
float dz1 = e1Pos.z - camPos.z;
|
||||||
|
float distE1 = dx1 * dx1 + dy1 * dy1 + dz1 * dz1 + e1.sortingOffset;
|
||||||
|
Vector3 e2Pos = e2.transform.position;
|
||||||
|
float dx2 = e2Pos.x - camPos.x;
|
||||||
|
float dy2 = e2Pos.y - camPos.y;
|
||||||
|
float dz2 = e2Pos.z - camPos.z;
|
||||||
|
float distE2 = dx2 * dx2 + dy2 * dy2 + dz2 * dz2 + e2.sortingOffset;
|
||||||
|
if (distE1 > distE2) return -1;
|
||||||
|
if (distE1 < distE2) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool usesCameraOverlay;
|
||||||
|
|
||||||
|
ScriptableRenderer renderer;
|
||||||
|
RenderTextureDescriptor cameraTextureDescriptor;
|
||||||
|
DistanceComparer effectDistanceComparer;
|
||||||
|
bool clearStencil;
|
||||||
|
FullScreenBlitMethod fullScreenBlitMethod = FullScreenBlit;
|
||||||
|
int frameCount;
|
||||||
|
|
||||||
|
public void Setup(HighlightPlusRenderPassFeature passFeature, ScriptableRenderer renderer) {
|
||||||
|
this.renderPassEvent = passFeature.renderPassEvent;
|
||||||
|
this.clearStencil = passFeature.clearStencil;
|
||||||
|
this.renderer = renderer;
|
||||||
|
if (effectDistanceComparer == null) {
|
||||||
|
effectDistanceComparer = new DistanceComparer();
|
||||||
|
}
|
||||||
|
HighlightEffect.isVREnabled = UnityEngine.XR.XRSettings.enabled && Application.isPlaying;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) {
|
||||||
|
this.cameraTextureDescriptor = cameraTextureDescriptor;
|
||||||
|
#if UNITY_2021_2_OR_NEWER
|
||||||
|
ConfigureInput(ScriptableRenderPassInput.Depth);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) {
|
||||||
|
int count = HighlightEffect.effects.Count;
|
||||||
|
if (count == 0) return;
|
||||||
|
|
||||||
|
Camera cam = renderingData.cameraData.camera;
|
||||||
|
int camLayer = 1 << cam.gameObject.layer;
|
||||||
|
CameraType camType = cam.cameraType;
|
||||||
|
|
||||||
|
#if UNITY_2022_1_OR_NEWER
|
||||||
|
RTHandle cameraColorTarget = renderer.cameraColorTargetHandle;
|
||||||
|
RTHandle cameraDepthTarget = renderer.cameraDepthTargetHandle;
|
||||||
|
#else
|
||||||
|
RenderTargetIdentifier cameraColorTarget = renderer.cameraColorTarget;
|
||||||
|
RenderTargetIdentifier cameraDepthTarget = renderer.cameraDepthTarget;
|
||||||
|
#endif
|
||||||
|
#if !UNITY_2021_2_OR_NEWER
|
||||||
|
// In Unity 2021.2, when MSAA > 1, cameraDepthTarget is no longer cameraColorTarget
|
||||||
|
if (!usesCameraOverlay && (cameraTextureDescriptor.msaaSamples > 1 || cam.cameraType == CameraType.SceneView)) {
|
||||||
|
cameraDepthTarget = cameraColorTarget;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!HighlightEffect.customSorting && ((frameCount++) % 10 == 0 || !Application.isPlaying)) {
|
||||||
|
effectDistanceComparer.camPos = cam.transform.position;
|
||||||
|
HighlightEffect.effects.Sort(effectDistanceComparer);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool clearStencil = this.clearStencil;
|
||||||
|
|
||||||
|
for (int k = 0; k < count; k++) {
|
||||||
|
HighlightEffect effect = HighlightEffect.effects[k];
|
||||||
|
|
||||||
|
if (!(effect.ignoreObjectVisibility || effect.isVisible)) continue;
|
||||||
|
|
||||||
|
if (!effect.isActiveAndEnabled) continue;
|
||||||
|
|
||||||
|
if (camType == CameraType.Reflection && !effect.reflectionProbes) continue;
|
||||||
|
|
||||||
|
if ((effect.camerasLayerMask & camLayer) == 0) continue;
|
||||||
|
|
||||||
|
CommandBuffer cb = effect.GetCommandBuffer(cam, cameraColorTarget, cameraDepthTarget, fullScreenBlitMethod, clearStencil);
|
||||||
|
if (cb != null) {
|
||||||
|
context.ExecuteCommandBuffer(cb);
|
||||||
|
clearStencil = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Mesh _fullScreenMesh;
|
||||||
|
static Mesh fullscreenMesh {
|
||||||
|
get {
|
||||||
|
if (_fullScreenMesh != null) {
|
||||||
|
return _fullScreenMesh;
|
||||||
|
}
|
||||||
|
float num = 1f;
|
||||||
|
float num2 = 0f;
|
||||||
|
Mesh val = new Mesh();
|
||||||
|
_fullScreenMesh = val;
|
||||||
|
_fullScreenMesh.SetVertices(new List<Vector3> {
|
||||||
|
new Vector3 (-1f, -1f, 0f),
|
||||||
|
new Vector3 (-1f, 1f, 0f),
|
||||||
|
new Vector3 (1f, -1f, 0f),
|
||||||
|
new Vector3 (1f, 1f, 0f)
|
||||||
|
});
|
||||||
|
_fullScreenMesh.SetUVs(0, new List<Vector2> {
|
||||||
|
new Vector2 (0f, num2),
|
||||||
|
new Vector2 (0f, num),
|
||||||
|
new Vector2 (1f, num2),
|
||||||
|
new Vector2 (1f, num)
|
||||||
|
});
|
||||||
|
_fullScreenMesh.SetIndices(new int[6] { 0, 1, 2, 2, 1, 3 }, (MeshTopology)0, 0, false);
|
||||||
|
_fullScreenMesh.UploadMeshData(true);
|
||||||
|
return _fullScreenMesh;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Matrix4x4 matrix4x4Identity = Matrix4x4.identity;
|
||||||
|
static void FullScreenBlit(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material, int passIndex) {
|
||||||
|
destination = new RenderTargetIdentifier(destination, 0, CubemapFace.Unknown, -1);
|
||||||
|
cmd.SetRenderTarget(destination);
|
||||||
|
cmd.SetGlobalTexture(ShaderParams.MainTex, source);
|
||||||
|
cmd.SetGlobalFloat(ShaderParams.AspectRatio, HighlightEffect.isVREnabled ? 0.5f : 1);
|
||||||
|
cmd.DrawMesh(fullscreenMesh, matrix4x4Identity, material, 0, passIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void FrameCleanup(CommandBuffer cmd) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HighlightPass renderPass;
|
||||||
|
public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
|
||||||
|
[Tooltip("Clears stencil buffer before rendering highlight effects. This option can solve compatibility issues with shaders that also use stencil buffers.")]
|
||||||
|
public bool clearStencil;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes the effects visible in Edit mode.
|
||||||
|
/// </summary>
|
||||||
|
[Tooltip("If enabled, effects will be visible also in Edit mode (when not in Play mode).")]
|
||||||
|
public bool previewInEditMode = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes the effects visible in Edit mode.
|
||||||
|
/// </summary>
|
||||||
|
[Tooltip("If enabled, effects will be visible also in Preview camera (preview camera shown when a camera is selected in Editor).")]
|
||||||
|
public bool showInPreviewCamera = true;
|
||||||
|
|
||||||
|
|
||||||
|
public static bool installed;
|
||||||
|
public static bool showingInEditMode;
|
||||||
|
|
||||||
|
const string PREVIEW_CAMERA_NAME = "Preview Camera";
|
||||||
|
|
||||||
|
void OnDisable() {
|
||||||
|
installed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Create() {
|
||||||
|
renderPass = new HighlightPass();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This method is called when setting up the renderer once per-camera.
|
||||||
|
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) {
|
||||||
|
|
||||||
|
showingInEditMode = previewInEditMode;
|
||||||
|
Camera cam = renderingData.cameraData.camera;
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
if (!previewInEditMode && !Application.isPlaying) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (cam.cameraType == CameraType.Preview) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!showInPreviewCamera && PREVIEW_CAMERA_NAME.Equals(cam.name)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_2019_4_OR_NEWER
|
||||||
|
if (renderingData.cameraData.renderType == CameraRenderType.Base) {
|
||||||
|
renderPass.usesCameraOverlay = cam.GetUniversalAdditionalCameraData().cameraStack.Count > 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
renderPass.Setup(this, renderer);
|
||||||
|
renderer.EnqueuePass(renderPass);
|
||||||
|
installed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 473a86c9e274347dfbdde619584cebe9
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,54 @@
|
||||||
|
%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: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: UniversalRenderPipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 5
|
||||||
|
k_AssetPreviousVersion: 5
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: 47db18f3169384f6b87445e6447e189e, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 1
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 1
|
||||||
|
m_MSAA: 2
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_MainLightRenderingMode: 1
|
||||||
|
m_MainLightShadowsSupported: 1
|
||||||
|
m_MainLightShadowmapResolution: 2048
|
||||||
|
m_AdditionalLightsRenderingMode: 1
|
||||||
|
m_AdditionalLightsPerObjectLimit: 4
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 512
|
||||||
|
m_ShadowDistance: 50
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
m_Cascade2Split: 0.25
|
||||||
|
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_SoftShadowsSupported: 1
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_ShaderVariantLogLevel: 0
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7cb1de89cd1dc44c5be43a3f6664fb90
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -5,6 +5,26 @@
|
||||||
**************************************
|
**************************************
|
||||||
|
|
||||||
|
|
||||||
|
Notice about Universal Rendering Pipeline
|
||||||
|
-----------------------------------------
|
||||||
|
This package is designed for URP.
|
||||||
|
It requires Unity 2019.3 and URP 7.1.6 or later
|
||||||
|
To install the plugin correctly:
|
||||||
|
|
||||||
|
1) Make sure you have Universal Rendering Pipeline asset installed (from Package Manager).
|
||||||
|
2) Go to Project Settings / Graphics.
|
||||||
|
3) Double click the Universal Rendering Pipeline asset.
|
||||||
|
4) Double click the Forward Renderer asset.
|
||||||
|
5) Click "+" to add the Highlight Plus Renderer Feature to the list of the Forward Renderer Features.
|
||||||
|
|
||||||
|
Note: URP assets can be assigned to Settings / Graphics and also Settings / Quality. Check both sections!
|
||||||
|
|
||||||
|
You can also find a HighlightPlusForwardRenderer asset in the Highlight Plus / Pipelines / URP folder.
|
||||||
|
Make sure the Highlight Plus Scriptable Renderer Feature is listed in the Renderer Features of the Forward Renderer in the pipeline asset.
|
||||||
|
|
||||||
|
Video instructions: https://youtu.be/EgyBs8v9aRI
|
||||||
|
|
||||||
|
|
||||||
Quick help: how to use this asset?
|
Quick help: how to use this asset?
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
|
@ -32,6 +52,7 @@ Quick help: how to use this asset?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Help & Support Forum
|
Help & Support Forum
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -47,14 +68,6 @@ If you like Highlight Plus, please rate it on the Asset Store. It encourages us
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Universal Rendering Pipeline
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
Customers can download a specific version of Highlight Plus designed for Universal Rendering Pipeline for free from our support forum on https://kronnect.com
|
|
||||||
Please sign up on the forum and send a pm to "Kronnect" or email to contact@kronnect.com to get access to the private board.
|
|
||||||
|
|
||||||
The Unity Asset Store currently does not allow you to select which package according to the pipeline to download so we have to offer this way so you can download it.
|
|
||||||
|
|
||||||
|
|
||||||
Future updates
|
Future updates
|
||||||
--------------
|
--------------
|
||||||
|
@ -77,6 +90,29 @@ Version history
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Current version
|
Current version
|
||||||
|
- Added "Show In Preview Camera" option to Highlight Plus render feature
|
||||||
|
- Preview in Editor option has moved to the Highlight Plus render feature
|
||||||
|
- Outline improvements in highest quality mode
|
||||||
|
- Added Glow Blur Method option: Gaussian (higher quality, default) or Kawase (faster)
|
||||||
|
- Option to optimize skinned mesh data when using outline/outer glow with mesh-based rendering. Reduces draw calls significantly.
|
||||||
|
|
||||||
|
Version 10.2.2
|
||||||
|
- [Fix] Occluder system now ignores particle renderers
|
||||||
|
- [Fix] Fixed rendering sorting issue when several highlighted objects share same position
|
||||||
|
|
||||||
|
Version 10.2
|
||||||
|
- Added "Contour Style" option: 1) around visible parts, or 2) around object shape
|
||||||
|
|
||||||
|
Version 10.1
|
||||||
|
- Two outline edge modes are now available when Outline Quality is set to High, allowing to render interior edges
|
||||||
|
- Added "Inner Glow Blend Mode" option
|
||||||
|
|
||||||
|
Version 10.0
|
||||||
|
- Added support for sprites. Compatible effects: outline, glow, overlay, target and hit fx.
|
||||||
|
- Added "Overlay Visibility" option
|
||||||
|
- Fixes
|
||||||
|
|
||||||
|
Version 9.6
|
||||||
- Added new "UV Space" options to Overlay effect (now: triplanar, object space or screen space)
|
- Added new "UV Space" options to Overlay effect (now: triplanar, object space or screen space)
|
||||||
- Added mask texture and "UV Space" options to See-Through effect
|
- Added mask texture and "UV Space" options to See-Through effect
|
||||||
- Camera Distance Fade now also affects the see-through effect
|
- Camera Distance Fade now also affects the see-through effect
|
||||||
|
@ -88,7 +124,8 @@ Version 9.5
|
||||||
|
|
||||||
Version 9.4
|
Version 9.4
|
||||||
- Highlight See Through Occluder: added mode for triggering the see-through offect on sprites and transparent objects
|
- Highlight See Through Occluder: added mode for triggering the see-through offect on sprites and transparent objects
|
||||||
- [Fix] Fixed a problem on Quest 2 standalone when using with other render features (ie. Liquid Volume Pro 2 irregular topology)
|
- Performance optimizations when using a high number of Highlight Effect components in the scene
|
||||||
|
- [Fix] Fixed shader compatibility issue on PS4
|
||||||
|
|
||||||
Version 9.3
|
Version 9.3
|
||||||
- Overlay: added "Mode" option (only when highlighted or always)
|
- Overlay: added "Mode" option (only when highlighted or always)
|
||||||
|
@ -101,8 +138,12 @@ Version 9.2
|
||||||
|
|
||||||
Version 9.1.2
|
Version 9.1.2
|
||||||
- [Fix] Fixed outline/glow distortion due to floating point math issues at distant positions from origin
|
- [Fix] Fixed outline/glow distortion due to floating point math issues at distant positions from origin
|
||||||
|
- [Fix] Fixed VR issue in Unity 2022.1 with Single Pass Instanced
|
||||||
|
|
||||||
Version 9.1.1
|
Version 9.1.1
|
||||||
|
- [Fix] Fixed potential issue with Unity 2021.2 related to depthCameraAttachment handling
|
||||||
|
|
||||||
|
Version 9.1
|
||||||
- Added support for Unity 2022
|
- Added support for Unity 2022
|
||||||
- Added Layer Mask option to Highlight Trigger
|
- Added Layer Mask option to Highlight Trigger
|
||||||
- Added "Keep Selection" option in Highlight Manager and Highlight Trigger
|
- Added "Keep Selection" option in Highlight Manager and Highlight Trigger
|
||||||
|
@ -117,14 +158,15 @@ Version 8.5
|
||||||
- Improved outline effect when combining "Independent" option with many elements in "Children" selection
|
- Improved outline effect when combining "Independent" option with many elements in "Children" selection
|
||||||
- Improved see-through border only effect
|
- Improved see-through border only effect
|
||||||
|
|
||||||
|
Version 8.4.1
|
||||||
|
- [Fix] Fixed unnecessary memory allocation in the render feature
|
||||||
|
|
||||||
Version 8.4
|
Version 8.4
|
||||||
- Added "Border Only" option to See-Through effect
|
- Added "Border Only" option to See-Through effect
|
||||||
- Outline/glow shape now properly cuts when partially occluded (instead of following the shape of the occluder)
|
|
||||||
- Adding a Highlight Effect component to a parent no longer deactivates highlighted children
|
- Adding a Highlight Effect component to a parent no longer deactivates highlighted children
|
||||||
|
|
||||||
Version 8.3
|
Version 8.3
|
||||||
- Upgraded to Unity 2020.3.16
|
- Upgraded to Unity 2020.3.16 as minimum
|
||||||
- [Fix] Fixed outline/glow render issue when MSAA is enabled
|
|
||||||
|
|
||||||
Version 8.2
|
Version 8.2
|
||||||
- Added "Ignore Mask" option to glow. Can be used to render the glow effect alone
|
- Added "Ignore Mask" option to glow. Can be used to render the glow effect alone
|
||||||
|
@ -133,12 +175,18 @@ Version 8.2
|
||||||
|
|
||||||
Version 8.1
|
Version 8.1
|
||||||
- Selection state is now visible in inspector (used only by trigger and manager components)
|
- Selection state is now visible in inspector (used only by trigger and manager components)
|
||||||
|
- [Fix] Fixed outer glow not showing in higher quality with visibility set to normal and orthographic camera
|
||||||
- [Fix] Fixed mobile input using the new input system
|
- [Fix] Fixed mobile input using the new input system
|
||||||
- [Fix] Fixed outline settings mismatch when using a combination of Highlight Trigger and Manager
|
- [Fix] Fixed outline settings mismatch when using a combination of Highlight Trigger and Manager
|
||||||
|
|
||||||
Version 8.0
|
Version 8.0
|
||||||
- Added SelectObject / ToggleObject / UnselectObject methods to Highlight Manager
|
- Added SelectObject / ToggleObject / UnselectObject methods to Highlight Manager
|
||||||
- Added ability to control rendering order of effects (check documentation: Custom sorting section)
|
- Added ability to apply custom sorting to effects (check documentation: Custom sorting section)
|
||||||
|
- Independent option is now moved to Highlight Options section and affects both outline and glow
|
||||||
|
- Added "Clear Stencil" option to Highlight Plus Render Feature (useful to solve compatibility with other assets that use stencil buffers)
|
||||||
|
|
||||||
|
Version 7.9.2
|
||||||
|
- [Fix] Fixed an issue in Unity 2021.2 when using MSAA and High Quality outline/glow
|
||||||
|
|
||||||
Version 7.9.1
|
Version 7.9.1
|
||||||
- Default values for all effects are now 0 (disabled) except outline so desired effects must be enabled. This option allows you to ensure no extra/undesired effects are activated by mistake
|
- Default values for all effects are now 0 (disabled) except outline so desired effects must be enabled. This option allows you to ensure no extra/undesired effects are activated by mistake
|
||||||
|
@ -172,6 +220,9 @@ Version 7.6
|
||||||
Version 7.5.2
|
Version 7.5.2
|
||||||
- [Fix] See-through is now visible when using glow/outline/inner glow with Always Visible option
|
- [Fix] See-through is now visible when using glow/outline/inner glow with Always Visible option
|
||||||
|
|
||||||
|
Version 7.5.1
|
||||||
|
- [Fix] Fixed regression bug with Outline in High Quality mode
|
||||||
|
|
||||||
Version 7.5
|
Version 7.5
|
||||||
- Added new HitFX style: "Local Hit"
|
- Added new HitFX style: "Local Hit"
|
||||||
- Added new demo scene showcasing the HitFx variations
|
- Added new demo scene showcasing the HitFx variations
|
||||||
|
@ -187,18 +238,16 @@ Version 7.1
|
||||||
Version 7.0.2
|
Version 7.0.2
|
||||||
- Memory optimizations
|
- Memory optimizations
|
||||||
|
|
||||||
Version 7.0.1
|
|
||||||
- [Fix] Highest quality outline/glow fixes on mobile
|
|
||||||
|
|
||||||
Version 7.0
|
Version 7.0
|
||||||
- Added support for Single Pass Instanced
|
- Added support for Single Pass Instanced
|
||||||
- Internal improvements and fixes
|
- Internal improvements and fixes
|
||||||
|
|
||||||
Version 6.9
|
Version 6.9
|
||||||
- Internal improvements to see-through
|
- Added "Ordered" option to see-through
|
||||||
|
- Removed "Non Overlap" option from see-through as now it pervents overdraw by default
|
||||||
|
|
||||||
Version 6.8
|
Version 6.8
|
||||||
- Changed see-through effect rendering order to improve support with other stencil effects
|
- Improvements to see-through rendering order
|
||||||
- [Fix] Fixed properties not being reflected in scene immediately when invoking Undo
|
- [Fix] Fixed properties not being reflected in scene immediately when invoking Undo
|
||||||
|
|
||||||
Version 6.7
|
Version 6.7
|
||||||
|
@ -210,6 +259,9 @@ Version 6.6
|
||||||
- Added "SeeThrough Non Overlap" option. Enable it only if the see-through effect produces flickering due to overlapping geometry in the hidden object
|
- Added "SeeThrough Non Overlap" option. Enable it only if the see-through effect produces flickering due to overlapping geometry in the hidden object
|
||||||
- [Fix] Fixed properties not being reflected in scene immediately when invoking Undo
|
- [Fix] Fixed properties not being reflected in scene immediately when invoking Undo
|
||||||
|
|
||||||
|
Version 6.5.2
|
||||||
|
- Added inspector tooltips and improved documentation
|
||||||
|
|
||||||
Version 6.5.1
|
Version 6.5.1
|
||||||
- Calling ProfileLoad() method will now assign that profile to the highlight effect component in addition to loading its values
|
- Calling ProfileLoad() method will now assign that profile to the highlight effect component in addition to loading its values
|
||||||
- Prevents _Time overflow which can cause glitching on some Android devices
|
- Prevents _Time overflow which can cause glitching on some Android devices
|
||||||
|
@ -244,48 +296,49 @@ Version 6.0
|
||||||
- Inspector: sections can be now collapsed to reduce screen space
|
- Inspector: sections can be now collapsed to reduce screen space
|
||||||
- API: added OnObjectSelected / OnObjectUnSelected events
|
- API: added OnObjectSelected / OnObjectUnSelected events
|
||||||
|
|
||||||
Version 5.5
|
Version 5.5 4/Apr/2021
|
||||||
- Added "Planar" mode to Normals option. Best choice for highlighting 2D meshes (quad/planes)
|
- [Fix] Fixed glow overlay when MSAA is disabled on Windows
|
||||||
|
|
||||||
Version 5.4 5/Feb/2021
|
Version 5.4 5/Feb/2021
|
||||||
- Added Visibility option to targete effect
|
- Added Visibility option to targete effect
|
||||||
- Stencil mask is no longer computed when only overlay or inner glow is used improving performance
|
- Stencil mask is no longer computed when only overlay or inner glow is used improving performance
|
||||||
|
|
||||||
Version 5.3.5 22/Jan/2021
|
Version 5.3.4 22/01/2021
|
||||||
- Added "CustomVertexTransform.cginc" file which can be used to include user-defined vertex transformations
|
|
||||||
- Optimizations to material setters
|
- Optimizations to material setters
|
||||||
|
- [Fix] Fixed outline color issue with quality level set to medium
|
||||||
Version 5.3.4
|
|
||||||
- Improvements to combine meshes option
|
|
||||||
|
|
||||||
Version 5.3.3
|
Version 5.3.3
|
||||||
- Effects now reflect object transform changes when combines meshes option is enabled
|
- Effects now reflect object transform changes when combines meshes option is enabled
|
||||||
|
|
||||||
Version 5.3.2
|
|
||||||
- Memory optimizations
|
|
||||||
|
|
||||||
Version 5.3.1
|
|
||||||
- Optimizations and fixes
|
|
||||||
|
|
||||||
Version 5.3
|
Version 5.3
|
||||||
- Added "Combine Meshes" option to profile
|
- Added "Combine Meshes" option to profile
|
||||||
|
- Optimizations and fixes
|
||||||
|
|
||||||
Version 5.2
|
Version 5.2
|
||||||
- Added "Object Name Filter" option to profile
|
- Added "Object Name Filter" option to profile
|
||||||
|
|
||||||
|
Version 5.1
|
||||||
|
- Added "Border When Hidden" effect (outline when see-through triggers)
|
||||||
|
|
||||||
|
Version 5.0.1
|
||||||
|
- Added support for Unity 2020.2 beta
|
||||||
|
|
||||||
Version 5.0
|
Version 5.0
|
||||||
- API: added "TargetFX" method to programmatically start the target effect
|
- API: added "TargetFX" method to programmatically start the target effect
|
||||||
- [Fix] Depth Clip option can now be used on mobile even with visibility set to Always On Top
|
- Added support for double-sided shader effects
|
||||||
|
|
||||||
Version 4.9
|
Version 4.9
|
||||||
- Added "Medium" quality level
|
- Added "Medium" quality level
|
||||||
|
|
||||||
|
Version 4.8.2
|
||||||
|
- [Fix] Fixed issue with outline set to fastest and glow using highest in latest URP version
|
||||||
|
|
||||||
Version 4.8.1
|
Version 4.8.1
|
||||||
- [Fix] Fixed outline/glow issue on iOS when using Highest Quality mode in Unity 2010.1
|
- [Fix] Fixed issue with outline/glow when overlay cameras are present on the stack
|
||||||
|
|
||||||
Version 4.8
|
Version 4.8
|
||||||
- Added "Outer Glow Blend Passes" option
|
- Added "Outer Glow Blend Passes" option
|
||||||
- Added support for HDR colors
|
- [Fix] Fixed outline & glow issue with alpha cutout when using non-highest quality mode
|
||||||
|
|
||||||
Version 4.7
|
Version 4.7
|
||||||
- Added "Normals Option" with Smooth, Preserve and Reorient variants to improve results
|
- Added "Normals Option" with Smooth, Preserve and Reorient variants to improve results
|
||||||
|
@ -296,189 +349,34 @@ Version 4.6
|
||||||
- Added "SubMesh Mask" which allows to exclude certain submeshes
|
- Added "SubMesh Mask" which allows to exclude certain submeshes
|
||||||
- [Fix] Fixed shader compilation issue with Single Pass Instanced mode enabled
|
- [Fix] Fixed shader compilation issue with Single Pass Instanced mode enabled
|
||||||
|
|
||||||
Version 4.5
|
|
||||||
- Added "Preserve Original Mesh" option to inspector and profile
|
|
||||||
|
|
||||||
Version 4.4
|
Version 4.4
|
||||||
|
- Exposed "Smooth Normals" option in inspector.
|
||||||
|
|
||||||
|
Version 4.3.2
|
||||||
- Added HitFX effect
|
- Added HitFX effect
|
||||||
- Improved quality of outer glow when using Highest Quality mode
|
|
||||||
- Improvements to SeeThrough Occluder when Detection Mode is set to RayCast
|
- Improvements to SeeThrough Occluder when Detection Mode is set to RayCast
|
||||||
- API: added SetTargets(transform, renderers)
|
|
||||||
- API: added static method HighlightEffect.DrawEffectsNow() to force render all effects on demand
|
Version 4.3.1
|
||||||
|
- [Fix] Fixed issue with Highlight Effect Occluder script
|
||||||
|
|
||||||
|
Version 4.3
|
||||||
|
- Added GPU instancing support for outline / outer glow effects
|
||||||
|
|
||||||
|
Version 4.2.2
|
||||||
|
- [Fix] Fixed effect being rendered when object is outside of frustum camera
|
||||||
|
|
||||||
|
Version 4.2.1
|
||||||
|
- Profile: added "Constant Width" property
|
||||||
|
- Enabled HDR color picker to Color properties
|
||||||
|
- [Fix] Fixed missing outline with flat surfaces like quads under certain angles
|
||||||
|
|
||||||
Version 4.2
|
Version 4.2
|
||||||
- Added GPU Instancing support for outline / glow effects
|
- Glow/Outline downsampling option added to profiles
|
||||||
- Highlight Trigger: added volume collision detection
|
|
||||||
|
|
||||||
Version 4.1.1
|
|
||||||
- [Fix] Fixed issue with grouped objects when independent option is enabled and Highest Quality outer glow or outline is used
|
|
||||||
|
|
||||||
Version 4.1
|
|
||||||
- Improved "Outline Independent" option for Highest Quality Mode
|
|
||||||
- Consistency: enabling "Outline Independent" in Highest Quality Mode now also affects Outer Glow is used
|
|
||||||
|
|
||||||
Version 4.0
|
|
||||||
- Start up peformance & memory allocation optimizations
|
|
||||||
- Added "Independent" support to outline in Highest Quality mode
|
|
||||||
- Added "Make Transparent Object Compatible With Depth Clip" option
|
|
||||||
|
|
||||||
Version 3.9
|
|
||||||
- Added "Depth Clip" option (only applies to HQ outline/glow effects)
|
|
||||||
|
|
||||||
Version 3.8
|
|
||||||
- Glow/Outline downsampling and glow blend mode option added to profiles
|
|
||||||
- [Fix] Fixed an issue which marked the scene as dirty
|
|
||||||
- [Fix] Removed VR API usage console warning
|
- [Fix] Removed VR API usage console warning
|
||||||
|
|
||||||
Version 3.7
|
Version 4.1
|
||||||
- See Through: added "Occluder Mask" option. When set to a custom layer, it performs a BoxCast check to ensure only objects in the specific layers are occluding the target. Customize this behaviour using the Radius Threshold and Check Interval settings.
|
- Added Outline Independent option
|
||||||
- Added "Max Distance" to Highlight Trigger
|
- [Fix] Fixed error when highlight script is added to an empty gameobject
|
||||||
- Reduced allocations when averaging normals
|
|
||||||
- [Fix] Fixed flickering of outer glow when used in Highest quality with thin objects
|
|
||||||
|
|
||||||
Version 3.6
|
Version 4.0
|
||||||
- Added "Outline Independent" option. Shows full outline regardless of any other highlighted object behind.
|
- Support for URP Scriptable Rendering Feature
|
||||||
|
|
||||||
Version 3.5
|
|
||||||
- Improved quality of Outline effect when quality level is set to Highest
|
|
||||||
- Added "SeeThrough Border" feature
|
|
||||||
- Added "Blend Mode" option to Outer Glow for highest quality level
|
|
||||||
- [Fix] Fixed issue during Prefab editor mode
|
|
||||||
|
|
||||||
Version 3.4.4
|
|
||||||
- Added option in occluder script to use raycast instead of stencil buffer to cancel see-through (useful for avoiding terrain triggering see-through effect)
|
|
||||||
- [Fix] Fixed see-through in deferred rendering path
|
|
||||||
|
|
||||||
Version 3.4.2
|
|
||||||
- [Fix] Fixed an issue when adding the effect at runtime with outline/glow in higuest quality
|
|
||||||
|
|
||||||
Version 3.4.1
|
|
||||||
- [Fix] Fixed occluder objects removing glow effect when placed in the background
|
|
||||||
- [Fix] Added missing SeeThrough noise option to Highlight Profile asset
|
|
||||||
|
|
||||||
Version 3.4
|
|
||||||
- Added LayerInChildren option to "Include" filter
|
|
||||||
- Improved occluder system
|
|
||||||
- [Fix] Prevent an error when the mesh normals count does not match the vertex count
|
|
||||||
|
|
||||||
Version 3.3
|
|
||||||
- Outline, Glow and Inner Glow "Always On Top" option expanded to "Normal", "Always On Top" or "Only When Occluded"
|
|
||||||
- Added Noise slider to See-Through effect
|
|
||||||
|
|
||||||
Version 3.2.4
|
|
||||||
- [Fix] Fixed flickering issue when combining mesh & skinned mesh renderers
|
|
||||||
|
|
||||||
Version 3.2.3
|
|
||||||
- General improvements and fixes
|
|
||||||
|
|
||||||
Version 3.2.2
|
|
||||||
- [Fix] Fixed issue when trying to read normals from a non-readable mesh
|
|
||||||
|
|
||||||
Version 3.2.1
|
|
||||||
- [Fix] Fixed glow disappearing when object crosses camera near clip
|
|
||||||
|
|
||||||
Version 3.2
|
|
||||||
- Added "Reflection Probes" option
|
|
||||||
- Internal improvements and fixes
|
|
||||||
|
|
||||||
Version 3.1
|
|
||||||
- Added "Constant Width" option to Glow/Outline in Fastest/High quality level
|
|
||||||
- Added "Optimal Blit" option to Glow/Outline with Debug View
|
|
||||||
|
|
||||||
Version 3.0.2
|
|
||||||
- API: added proxy methods ProfileLoad, ProfileReload, ProfileSaveChanges to load/store profile settings at runtime. You can also load/save changes between effect and profile using the Load/Save methods on the profile object itself.
|
|
||||||
|
|
||||||
Version 3.0.1
|
|
||||||
- [Fix] Fixed an exception when glow was enabled, outline disabled in highest quality level
|
|
||||||
|
|
||||||
Version 3.0
|
|
||||||
- Added HQ Highest quality glow and outline options
|
|
||||||
- Added "Include" option to choose which objects are affected by the effects (same gameobject, children, root to children, or many objects in layer)
|
|
||||||
- Added "Alpha CutOff"
|
|
||||||
|
|
||||||
Version 2.6.1
|
|
||||||
- Minor internal improvements
|
|
||||||
|
|
||||||
Version 2.6
|
|
||||||
- Added Target effect
|
|
||||||
- Improved performance on Skinned Mesh Renderers. Slightly improved performance on normal renderers.
|
|
||||||
|
|
||||||
Version 2.5.2
|
|
||||||
- [Fix] Fixed issue with HQ Outer Glow not showing when there's multiple selected objects parented to the same object
|
|
||||||
|
|
||||||
Version 2.5.1
|
|
||||||
- Added support for orthographic camera
|
|
||||||
|
|
||||||
Version 2.5
|
|
||||||
- Added support for VR Single Pass Instanced
|
|
||||||
- Minor improvements and fixes
|
|
||||||
|
|
||||||
Version 2.4
|
|
||||||
- New HighlightSeeThroughOccluder script. Add it to any object to cancel any see-through effect
|
|
||||||
- Added "Fade In Duration" / "Fade Out Duration" to create smooth transition states
|
|
||||||
- Added "Glow HQ" to produce better outer glow on certain shapes
|
|
||||||
- Added "OnRendererHighlightStart" event
|
|
||||||
- API: added "OverlayOnShot" method for impact effects
|
|
||||||
|
|
||||||
Version 2.3
|
|
||||||
- Added "Raycast Source" to Highlight Trigger and Manager components
|
|
||||||
- Added "Skinned Mesh Bake Mode" to optimize highlight on many models
|
|
||||||
|
|
||||||
Version 2.2
|
|
||||||
- Added "Always On Top" option to Outline, Outer and Inner Glow
|
|
||||||
- Added "Trigger Mode" to Highlight Trigger to support complex objects
|
|
||||||
|
|
||||||
Version 2.1
|
|
||||||
- Added "Outline HQ" to inspector. Creates a better outline on certain shapes
|
|
||||||
- Added "Ignore Object Visibility" to enable effects on disabled renderers or hidden objects
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
- Profiles. Store/load/share settings across different objects.
|
|
||||||
- [Fix] Fixed issue when copying component values between two objects
|
|
||||||
- [Fix] Fixed effects ignoring culling mask on additional cameras
|
|
||||||
|
|
||||||
Version 1.5
|
|
||||||
- Added "Inner Glow" effect
|
|
||||||
|
|
||||||
Version 1.4
|
|
||||||
- Added "Overlay Min Intensity" and "Overlay Blending" options
|
|
||||||
- Added "Ignore" option
|
|
||||||
- Minor improvements & fixes
|
|
||||||
|
|
||||||
Version 1.3
|
|
||||||
- Added option to add depth compatibility for transparent shaders
|
|
||||||
|
|
||||||
Version 1.2.4
|
|
||||||
- [Fix] Fix for multiple skinned models
|
|
||||||
- [Fix] Fix for scaled skinned models
|
|
||||||
|
|
||||||
Version 1.2.3
|
|
||||||
- [Fix] Fixes for Steam VR
|
|
||||||
|
|
||||||
Version 1.2.1
|
|
||||||
- Internal improvements and fixes
|
|
||||||
|
|
||||||
Version 1.2.1
|
|
||||||
- [Fix] Fixed script execution order issue with scripts changing transform in LateUpdate()
|
|
||||||
|
|
||||||
Version 1.2
|
|
||||||
- Support for LOD groups
|
|
||||||
|
|
||||||
Version 1.1
|
|
||||||
- Redesigned editor inspector
|
|
||||||
- Minor improvements
|
|
||||||
|
|
||||||
Version 1.0.4
|
|
||||||
- Supports meshes with negative scales
|
|
||||||
|
|
||||||
Version 1.0.3
|
|
||||||
- Support for multiple submeshes
|
|
||||||
|
|
||||||
Version 1.0.2
|
|
||||||
- [Fix] Fixed scale issue with grouped objects
|
|
||||||
|
|
||||||
Version 1.0.1
|
|
||||||
- Supports combined meshes
|
|
||||||
|
|
||||||
Version 1.0 - Nov/2018
|
|
||||||
- Initial release
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 53265a9967ed548efaf71f5807638781
|
guid: 53265a9967ed548efaf71f5807638781
|
||||||
timeCreated: 1542901568
|
timeCreated: 1542901568
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
TextScriptImporter:
|
TextScriptImporter:
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
Shader "HighlightPlus/Geometry/DepthClipComp"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Pass {
|
|
||||||
Name "ShadowCaster"
|
|
||||||
Tags { "LightMode" = "ShadowCaster" }
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
#pragma target 2.0
|
|
||||||
#pragma multi_compile_shadowcaster
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct v2f {
|
|
||||||
V2F_SHADOW_CASTER;
|
|
||||||
UNITY_VERTEX_OUTPUT_STEREO
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert( appdata_base v ) {
|
|
||||||
v2f o;
|
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
|
||||||
TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 frag( v2f i ) : SV_Target {
|
|
||||||
SHADOW_CASTER_FRAGMENT(i)
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!21 &2100000
|
|
||||||
Material:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_PrefabParentObject: {fileID: 0}
|
|
||||||
m_PrefabInternal: {fileID: 0}
|
|
||||||
m_Name: HighlightPlusDepthClipComp
|
|
||||||
m_Shader: {fileID: 4800000, guid: 0917f634da79a4983ad78bac83d5a715, type: 3}
|
|
||||||
m_ShaderKeywords:
|
|
||||||
m_LightmapFlags: 4
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap: {}
|
|
||||||
disabledShaderPasses: []
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BumpMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailAlbedoMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailMask:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailNormalMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _EmissionMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _MainTex:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _MetallicGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _OcclusionMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _ParallaxMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Floats:
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.5
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _UVSec: 0
|
|
||||||
- _ZWrite: 1
|
|
||||||
m_Colors:
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 94aad838a87c54e1b89e9ef47ecad5bf
|
|
||||||
timeCreated: 1546857910
|
|
||||||
licenseType: Pro
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: 2100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,9 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: f5e95a6a4248649f7ac2ac6127ca0dd1
|
|
||||||
timeCreated: 1544699250
|
|
||||||
licenseType: Pro
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,101 +0,0 @@
|
||||||
Shader "HighlightPlus/Geometry/SolidColor" {
|
|
||||||
Properties {
|
|
||||||
_MainTex ("Texture", Any) = "white" {}
|
|
||||||
_Color ("Color", Color) = (1,1,1) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
|
||||||
_CutOff("CutOff", Float ) = 0.5
|
|
||||||
_Cull ("Cull Mode", Int) = 2
|
|
||||||
_ZTest("ZTest", Int) = 4
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
|
||||||
|
|
||||||
// Compose effect on camera target
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
ZWrite Off
|
|
||||||
Cull [_Cull]
|
|
||||||
ZTest [_ZTest]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
#pragma multi_compile_local _ HP_ALPHACLIP
|
|
||||||
#pragma multi_compile_local _ HP_DEPTHCLIP
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
#include "CustomVertexTransform.cginc"
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
float4 _MainTex_ST;
|
|
||||||
fixed _CutOff;
|
|
||||||
fixed4 _Color;
|
|
||||||
UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float4 pos: SV_POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
#if HP_DEPTHCLIP
|
|
||||||
float4 scrPos : TEXCOORD1;
|
|
||||||
float depth : TEXCOORD2;
|
|
||||||
#endif
|
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
||||||
UNITY_VERTEX_OUTPUT_STEREO
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
|
||||||
UNITY_INITIALIZE_OUTPUT(v2f, o);
|
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
|
||||||
o.pos = ComputeVertexPosition(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX (v.uv, _MainTex);
|
|
||||||
#if HP_DEPTHCLIP
|
|
||||||
o.scrPos = ComputeScreenPos(o.pos);
|
|
||||||
COMPUTE_EYEDEPTH(o.depth);
|
|
||||||
#endif
|
|
||||||
#if UNITY_REVERSED_Z
|
|
||||||
o.pos.z += 0.0001;
|
|
||||||
#else
|
|
||||||
o.pos.z -= 0.0001;
|
|
||||||
#endif
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
float GetEyeDepth(float rawDepth) {
|
|
||||||
float persp = LinearEyeDepth(rawDepth);
|
|
||||||
float ortho = (_ProjectionParams.z-_ProjectionParams.y)*(1-rawDepth)+_ProjectionParams.y;
|
|
||||||
return lerp(persp,ortho,unity_OrthoParams.w);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
UNITY_SETUP_INSTANCE_ID(i);
|
|
||||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
|
||||||
#if HP_ALPHACLIP
|
|
||||||
fixed4 col = tex2D(_MainTex, i.uv);
|
|
||||||
clip(col.a - _CutOff);
|
|
||||||
#endif
|
|
||||||
#if HP_DEPTHCLIP
|
|
||||||
float sceneZ = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, UnityStereoTransformScreenSpaceTex(i.scrPos.xy / i.scrPos.w));
|
|
||||||
float sceneDepth = GetEyeDepth(sceneZ);
|
|
||||||
clip(sceneDepth - i.depth * 0.999);
|
|
||||||
#endif
|
|
||||||
return fixed4(1.0, 1.0, 1.0, 1.0);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a233cc5176ac642f89469b5d4c676c89
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -2,7 +2,7 @@ fileFormatVersion: 2
|
||||||
guid: 3a476022645d74299b862c36d0daa1df
|
guid: 3a476022645d74299b862c36d0daa1df
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
timeCreated: 1542876301
|
timeCreated: 1542876301
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
|
@ -2,7 +2,7 @@ fileFormatVersion: 2
|
||||||
guid: 6bd97436761b94109a0785ed6823647c
|
guid: 6bd97436761b94109a0785ed6823647c
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
timeCreated: 1542893576
|
timeCreated: 1542893576
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e25b1281ec6724b028e33a5df5a3f266
|
guid: 26b31a85c4f4c4b11850968651dddfeb
|
||||||
ShaderImporter:
|
ShaderImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
defaultTextures: []
|
defaultTextures: []
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 058a572e30b2d446bade2dda32bcef0f
|
guid: 058a572e30b2d446bade2dda32bcef0f
|
||||||
timeCreated: 1515682635
|
timeCreated: 1515682635
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
ShaderImporter:
|
ShaderImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
defaultTextures: []
|
defaultTextures: []
|
|
@ -1,6 +1,5 @@
|
||||||
Shader "HighlightPlus/Geometry/BlurGlow" {
|
Shader "HighlightPlus/Geometry/BlurGlow" {
|
||||||
Properties {
|
Properties {
|
||||||
_MainTex ("Texture", Any) = "white" {}
|
|
||||||
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||||
_BlurScale("Blur Scale", Float) = 2.0
|
_BlurScale("Blur Scale", Float) = 2.0
|
||||||
_Speed("Speed", Float) = 1
|
_Speed("Speed", Float) = 1
|
||||||
|
@ -18,7 +17,9 @@ Properties {
|
||||||
float4 _MainTex_TexelSize;
|
float4 _MainTex_TexelSize;
|
||||||
float4 _MainTex_ST;
|
float4 _MainTex_ST;
|
||||||
float _BlurScale, _Speed;
|
float _BlurScale, _Speed;
|
||||||
|
float _AspectRatio;
|
||||||
|
float _ResampleScale;
|
||||||
|
|
||||||
struct appdata {
|
struct appdata {
|
||||||
float4 vertex : POSITION;
|
float4 vertex : POSITION;
|
||||||
float2 texcoord : TEXCOORD0;
|
float2 texcoord : TEXCOORD0;
|
||||||
|
@ -41,21 +42,39 @@ Properties {
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
o.uv = v.texcoord;
|
||||||
}
|
float3 offsets = _MainTex_TexelSize.xyx * float3(1, _AspectRatio, -1);
|
||||||
#endif
|
|
||||||
o.uv = v.texcoord;
|
|
||||||
float3 offsets = _MainTex_TexelSize.xyx * float3(1,1,-1);
|
|
||||||
o.uv1 = v.texcoord - offsets.xy;
|
o.uv1 = v.texcoord - offsets.xy;
|
||||||
o.uv2 = v.texcoord - offsets.zy;
|
o.uv2 = v.texcoord - offsets.zy;
|
||||||
o.uv3 = v.texcoord + offsets.zy;
|
o.uv3 = v.texcoord + offsets.zy;
|
||||||
o.uv4 = v.texcoord + offsets.xy;
|
o.uv4 = v.texcoord + offsets.xy;
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v2fCross vertCrossKawase(appdata v) {
|
||||||
|
v2fCross o;
|
||||||
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
|
|
||||||
|
o.pos = v.vertex;
|
||||||
|
o.pos.y *= _ProjectionParams.x;
|
||||||
|
|
||||||
|
o.uv = v.texcoord + _MainTex_TexelSize.xy * 0.5;
|
||||||
|
float animatedWidth = _BlurScale * _ResampleScale * (0.75 + 0.25 * sin(_Time.w * _Speed));
|
||||||
|
float3 offsets = _MainTex_TexelSize.xyx * float3(1, _AspectRatio, -1) * animatedWidth;
|
||||||
|
|
||||||
|
o.uv1 = v.texcoord - offsets.xy;
|
||||||
|
o.uv2 = v.texcoord - offsets.zy;
|
||||||
|
o.uv3 = v.texcoord + offsets.zy;
|
||||||
|
o.uv4 = v.texcoord + offsets.xy;
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
v2fCross vertBlurH(appdata v) {
|
v2fCross vertBlurH(appdata v) {
|
||||||
|
@ -63,13 +82,10 @@ Properties {
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
float animatedWidth = _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
float animatedWidth = _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
||||||
o.uv = v.texcoord;
|
o.uv = v.texcoord;
|
||||||
float2 inc = float2(_MainTex_TexelSize.x * 1.3846153846 * animatedWidth, 0);
|
float2 inc = float2(_MainTex_TexelSize.x * 1.3846153846 * animatedWidth, 0);
|
||||||
|
@ -86,14 +102,11 @@ Properties {
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
float animatedWidth = _AspectRatio * _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
||||||
}
|
|
||||||
#endif
|
|
||||||
float animatedWidth = _BlurScale * (1.0 + 0.25 * sin(_Time.w * _Speed));
|
|
||||||
o.uv = v.texcoord;
|
o.uv = v.texcoord;
|
||||||
float2 inc = float2(0, _MainTex_TexelSize.y * 1.3846153846 * animatedWidth);
|
float2 inc = float2(0, _MainTex_TexelSize.y * 1.3846153846 * animatedWidth);
|
||||||
o.uv1 = v.texcoord - inc;
|
o.uv1 = v.texcoord - inc;
|
||||||
|
@ -127,6 +140,7 @@ Properties {
|
||||||
ENDCG
|
ENDCG
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Gaussian Blur Horizontal"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertBlurH
|
#pragma vertex vertBlurH
|
||||||
#pragma fragment fragBlur
|
#pragma fragment fragBlur
|
||||||
|
@ -136,6 +150,7 @@ Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Gaussian Blur Vertical"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertBlurV
|
#pragma vertex vertBlurV
|
||||||
#pragma fragment fragBlur
|
#pragma fragment fragBlur
|
||||||
|
@ -145,6 +160,7 @@ Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Copy Resample"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertCross
|
#pragma vertex vertCross
|
||||||
#pragma fragment fragResample
|
#pragma fragment fragResample
|
||||||
|
@ -153,6 +169,15 @@ Properties {
|
||||||
ENDCG
|
ENDCG
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
Name "Fast Blur"
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vertCrossKawase
|
||||||
|
#pragma fragment fragResample
|
||||||
|
#pragma fragmentoption ARB_precision_hint_fastest
|
||||||
|
#pragma target 3.0
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 84c84ee93ec484bdda371ffbdebfcc7c
|
guid: 84c84ee93ec484bdda371ffbdebfcc7c
|
||||||
timeCreated: 1556874239
|
timeCreated: 1556874239
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
ShaderImporter:
|
ShaderImporter:
|
||||||
defaultTextures: []
|
defaultTextures: []
|
||||||
userData:
|
userData:
|
|
@ -1,36 +1,36 @@
|
||||||
Shader "HighlightPlus/Geometry/BlurOutline" {
|
Shader "HighlightPlus/Geometry/BlurOutline" {
|
||||||
Properties {
|
Properties {
|
||||||
_MainTex ("Texture", Any) = "white" {}
|
|
||||||
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
_Color ("Color", Color) = (1,1,0) // not used; dummy property to avoid inspector warning "material has no _Color property"
|
||||||
_BlurScale("Blur Scale", Float) = 2.0
|
_BlurScale("Blur Scale", Float) = 2.0
|
||||||
|
_BlurScaleFirstHoriz("Blur Scale First Horiz", Float) = 4
|
||||||
}
|
}
|
||||||
SubShader
|
SubShader
|
||||||
{
|
{
|
||||||
Tags { "Queue"="Transparent+100" "RenderType"="Transparent" }
|
|
||||||
ZTest Always
|
ZTest Always
|
||||||
ZWrite Off
|
ZWrite Off
|
||||||
Cull Off
|
Cull Off
|
||||||
CGINCLUDE
|
CGINCLUDE
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||||
float4 _MainTex_TexelSize;
|
float4 _MainTex_TexelSize;
|
||||||
float4 _MainTex_ST;
|
float4 _MainTex_ST;
|
||||||
float _BlurScale;
|
float _BlurScale;
|
||||||
|
float _BlurScaleFirstHoriz;
|
||||||
|
float _AspectRatio;
|
||||||
|
|
||||||
struct appdata {
|
struct appdata {
|
||||||
float4 vertex : POSITION;
|
float4 vertex : POSITION;
|
||||||
float2 texcoord : TEXCOORD0;
|
float2 texcoord : TEXCOORD0;
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct v2fCross {
|
||||||
struct v2fCross {
|
float4 pos : SV_POSITION;
|
||||||
float4 pos : SV_POSITION;
|
float2 uv: TEXCOORD0;
|
||||||
float2 uv: TEXCOORD0;
|
float2 uv1: TEXCOORD1;
|
||||||
float2 uv1: TEXCOORD1;
|
float2 uv2: TEXCOORD2;
|
||||||
float2 uv2: TEXCOORD2;
|
|
||||||
float2 uv3: TEXCOORD3;
|
float2 uv3: TEXCOORD3;
|
||||||
float2 uv4: TEXCOORD4;
|
float2 uv4: TEXCOORD4;
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
@ -42,15 +42,12 @@ Properties {
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
o.uv = v.texcoord;
|
||||||
}
|
float3 offsets = _MainTex_TexelSize.xyx * float3(1, _AspectRatio, -1);
|
||||||
#endif
|
|
||||||
o.uv = v.texcoord;
|
|
||||||
float3 offsets = _MainTex_TexelSize.xyx * float3(1,1,-1);
|
|
||||||
o.uv1 = v.texcoord - offsets.xy;
|
o.uv1 = v.texcoord - offsets.xy;
|
||||||
o.uv2 = v.texcoord - offsets.zy;
|
o.uv2 = v.texcoord - offsets.zy;
|
||||||
o.uv3 = v.texcoord + offsets.zy;
|
o.uv3 = v.texcoord + offsets.zy;
|
||||||
|
@ -59,40 +56,43 @@ Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
v2fCross vertBlurH(appdata v) {
|
v2fCross vertBlur(appdata v, float multiplier) {
|
||||||
v2fCross o;
|
v2fCross o;
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
o.uv = v.texcoord;
|
o.uv = v.texcoord;
|
||||||
float2 inc = float2(_MainTex_TexelSize.x * 1.3846153846 * _BlurScale, 0);
|
|
||||||
|
float2 inc = float2(_MainTex_TexelSize.x * 1.3846153846 * multiplier, 0);
|
||||||
o.uv1 = v.texcoord - inc;
|
o.uv1 = v.texcoord - inc;
|
||||||
o.uv2 = v.texcoord + inc;
|
o.uv2 = v.texcoord + inc;
|
||||||
float2 inc2 = float2(_MainTex_TexelSize.x * 3.2307692308 * _BlurScale, 0);
|
float2 inc2 = float2(_MainTex_TexelSize.x * 3.2307692308 * multiplier, 0);
|
||||||
o.uv3 = v.texcoord - inc2;
|
o.uv3 = v.texcoord - inc2;
|
||||||
o.uv4 = v.texcoord + inc2;
|
o.uv4 = v.texcoord + inc2;
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v2fCross vertBlurH(appdata v) {
|
||||||
|
return vertBlur(v, _BlurScale / _AspectRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
v2fCross vertBlurH2(appdata v) {
|
||||||
|
return vertBlur(v, _BlurScaleFirstHoriz / _AspectRatio);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
v2fCross vertBlurV(appdata v) {
|
v2fCross vertBlurV(appdata v) {
|
||||||
v2fCross o;
|
v2fCross o;
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
UNITY_SETUP_INSTANCE_ID(v);
|
||||||
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
UNITY_TRANSFER_INSTANCE_ID(v, o);
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
||||||
o.pos = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
o.pos = v.vertex;
|
||||||
if (_MainTex_TexelSize.y < 0) {
|
o.pos.y *= _ProjectionParams.x;
|
||||||
// Texture is inverted WRT the main texture
|
|
||||||
v.texcoord.y = 1.0 - v.texcoord.y;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
o.uv = v.texcoord;
|
o.uv = v.texcoord;
|
||||||
float2 inc = float2(0, _MainTex_TexelSize.y * 1.3846153846 * _BlurScale);
|
float2 inc = float2(0, _MainTex_TexelSize.y * 1.3846153846 * _BlurScale);
|
||||||
o.uv1 = v.texcoord - inc;
|
o.uv1 = v.texcoord - inc;
|
||||||
|
@ -126,6 +126,7 @@ Properties {
|
||||||
ENDCG
|
ENDCG
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Blur Horizontal"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertBlurH
|
#pragma vertex vertBlurH
|
||||||
#pragma fragment fragBlur
|
#pragma fragment fragBlur
|
||||||
|
@ -135,6 +136,7 @@ Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Blur Vertical"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertBlurV
|
#pragma vertex vertBlurV
|
||||||
#pragma fragment fragBlur
|
#pragma fragment fragBlur
|
||||||
|
@ -144,6 +146,7 @@ Properties {
|
||||||
}
|
}
|
||||||
|
|
||||||
Pass {
|
Pass {
|
||||||
|
Name "Resample"
|
||||||
CGPROGRAM
|
CGPROGRAM
|
||||||
#pragma vertex vertCross
|
#pragma vertex vertCross
|
||||||
#pragma fragment fragResample
|
#pragma fragment fragResample
|
||||||
|
@ -152,5 +155,15 @@ Properties {
|
||||||
ENDCG
|
ENDCG
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
Pass {
|
||||||
|
Name "Blur Horizontalx2"
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vertBlurH2
|
||||||
|
#pragma fragment fragBlur
|
||||||
|
#pragma fragmentoption ARB_precision_hint_fastest
|
||||||
|
#pragma target 3.0
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 74f3491dcf1224f0c91238381c035439
|
guid: 74f3491dcf1224f0c91238381c035439
|
||||||
timeCreated: 1556874239
|
timeCreated: 1556874239
|
||||||
licenseType: Pro
|
licenseType: Store
|
||||||
ShaderImporter:
|
ShaderImporter:
|
||||||
defaultTextures: []
|
defaultTextures: []
|
||||||
userData:
|
userData:
|