ad
This commit is contained in:
parent
03429ce563
commit
7954a6d997
8
Assets/1.meta
Normal file
8
Assets/1.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d6bc15fd03900c0409cda6dc1f1090a1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/1_lambert8SG_ao.png
Normal file
BIN
Assets/1/1_lambert8SG_ao.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
135
Assets/1/1_lambert8SG_ao.png.meta
Normal file
135
Assets/1/1_lambert8SG_ao.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c788bd3e8bb824f4ea81c0f721790591
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/1_lambert8SG_normal.png
Normal file
BIN
Assets/1/1_lambert8SG_normal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 MiB |
135
Assets/1/1_lambert8SG_normal.png.meta
Normal file
135
Assets/1/1_lambert8SG_normal.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 896a3605a2281aa4d800e38c2f119285
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/lambert8SG_Base color.png
Normal file
BIN
Assets/1/lambert8SG_Base color.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
135
Assets/1/lambert8SG_Base color.png.meta
Normal file
135
Assets/1/lambert8SG_Base color.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 11fa0b0a4b9a2fe43bc5d3d48faa82b8
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/lambert8SG_Metallic.png
Normal file
BIN
Assets/1/lambert8SG_Metallic.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
135
Assets/1/lambert8SG_Metallic.png.meta
Normal file
135
Assets/1/lambert8SG_Metallic.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 02082457b663b364b8b9f2b041c9a313
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/lambert8SG_Normal.png
Normal file
BIN
Assets/1/lambert8SG_Normal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
135
Assets/1/lambert8SG_Normal.png.meta
Normal file
135
Assets/1/lambert8SG_Normal.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 290b5589a7e7346418545c981cdfa1b0
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/1/lambert8SG_Roughness.png
Normal file
BIN
Assets/1/lambert8SG_Roughness.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 576 KiB |
135
Assets/1/lambert8SG_Roughness.png.meta
Normal file
135
Assets/1/lambert8SG_Roughness.png.meta
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ba18513fe08687a40891da9e7246a22f
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Dissonance.meta
Normal file
8
Assets/Dissonance.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2c46b33216dff7f4faadaf26b6010769
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Dissonance/Core.meta
Normal file
8
Assets/Dissonance/Core.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0c706980008595644864cd4d02cc2084
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
1048
Assets/Dissonance/Core/Jetbrains.cs
Normal file
1048
Assets/Dissonance/Core/Jetbrains.cs
Normal file
File diff suppressed because it is too large
Load Diff
3
Assets/Dissonance/Core/Jetbrains.cs.meta
Normal file
3
Assets/Dissonance/Core/Jetbrains.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6173410bd5104d4e9345e3861783113e
|
||||||
|
timeCreated: 1497837118
|
BIN
Assets/Dissonance/Offline Documentation~.zip
Normal file
BIN
Assets/Dissonance/Offline Documentation~.zip
Normal file
Binary file not shown.
7
Assets/Dissonance/Offline Documentation~.zip.meta
Normal file
7
Assets/Dissonance/Offline Documentation~.zip.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 09a36b16e0500964b93e92da381dc60e
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Dissonance/Readme.txt
Normal file
8
Assets/Dissonance/Readme.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Thank you for buying Dissonance Voice Chat!
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
Dissonance needs a "network integration" which will make it work with a networking system. To download an integration go to:
|
||||||
|
|
||||||
|
Window > Dissonance > Download Integrations
|
||||||
|
|
||||||
|
This will show you the options available.
|
8
Assets/Dissonance/Readme.txt.meta
Normal file
8
Assets/Dissonance/Readme.txt.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4883bd88ac9c22e468da560e2f356c32
|
||||||
|
timeCreated: 1485359963
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
505
Assets/Dissonance/changelog.txt
Normal file
505
Assets/Dissonance/changelog.txt
Normal file
@ -0,0 +1,505 @@
|
|||||||
|
# Release Notes
|
||||||
|
|
||||||
|
## v6.4.1 (2019-05-14)
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Added a workaround for a Unity bug which was causing opus not to load in player builds about 10% of the time.
|
||||||
|
- Added additional profiling blocks, slightly reduced startup time of Dissonance.
|
||||||
|
- Fixed obsoletion warning in 2018.3 caused by using an obsolete method in an inspector.
|
||||||
|
|
||||||
|
## v6.4.0 (2019-04-30)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Added an archive with a complete copy of the documentation (usable offline)
|
||||||
|
- New welcome window links directly to network integrations
|
||||||
|
- Added a warning if the Dissonance playback AudioSource is muted
|
||||||
|
- Added DissonanceComms.TestDependencies method, checks if DLLs are loaded at runtime
|
||||||
|
- Improved handling of missing or incorrectly installed DLLs (Dissonance will run but affected functionality will be disabled)
|
||||||
|
- Reduced the minimum size of the jitter buffer, improving latency when using small/tiny frames
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Resetting capture system when microphone is unplugged
|
||||||
|
- Fixed trigger component UI being broken when an invalid room was selected
|
||||||
|
- Modified VoicePlayerState:IsConnected to return correct value for local player
|
||||||
|
|
||||||
|
## v6.3.1 (2019-02-25)
|
||||||
|
|
||||||
|
- Added support for Magic Leap
|
||||||
|
- Added ARM64 binaries for Android (not used by default).
|
||||||
|
- Added Mirror networking integration.
|
||||||
|
- Improved menu structure (Window > Dissonance)
|
||||||
|
- Fixed argument order in NAudio.WaveFormat
|
||||||
|
|
||||||
|
## v6.3.0 (2019-01-21)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- VoiceBroadcastTrigger searches up all ancestor gameObjects for IDissonancePlayer components, instead of just the current gameObject.
|
||||||
|
- Added support for using the HlapiPlayerTracker with server authority.
|
||||||
|
- Added a warning to the VoiceBroadcastTrigger inspector if using 'Self' broadcast mode, but the associated tracker is not tracking.
|
||||||
|
- Added an IsMuted property to VoiceBroadcastTrigger.
|
||||||
|
- Added 'SubcribeToRecordedAudio' and 'UnsubscribeFromRecordedAudio' methods to DissonanceComms. These supply preprocessed voice audio to subscribers.
|
||||||
|
- Added 'Tiny' option for frame size. This is for low latency voice on LAN ONLY, it is NOT suitable for internet use.
|
||||||
|
- Made some methods in BasicMicCapture 'virtual' to enable custom mic device setup/teardown. (https://github.com/Placeholder-Software/Dissonance/issues/131#issuecomment-440685811)
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Added a Global VoiceBroadcastTrigger that can be toggled on in demo scenes. This makes the demo scenes usable when deployed to a phone.
|
||||||
|
- Fixed AEC not loading on UWP platforms (e.g. hololens). (https://github.com/Placeholder-Software/Dissonance/issues/135)
|
||||||
|
- Fixed HlapiCommsNetwork inspector sometimes not updating values and consequently displaying misleading values. (https://github.com/Placeholder-Software/Dissonance/issues/134)
|
||||||
|
- Fixed Tokens sometimes not being removed.
|
||||||
|
- Clarified UI around room configuration (https://github.com/Placeholder-Software/Dissonance/issues/128)
|
||||||
|
|
||||||
|
## v6.2.6 (2018-10-31)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Support for using Photon Unity Networking 2
|
||||||
|
- Audio Quality/FrameSize can be set at runtime (although changes will not take effect until disconnect/reconnect)
|
||||||
|
- Extra monitoring on the receive system to detect terrible network conditions disrupting voice chat
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed all voice from a speak being lost in some circumstances (particularly when the speaker mutes themselves) [#121](https://github.com/Placeholder-Software/Dissonance/issues/121)
|
||||||
|
|
||||||
|
## v6.2.5 (2018-09-26)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Updated Dark Rift 2 [\#597](https://github.com/TomGillen/Dissonance/pull/597)
|
||||||
|
- feature/asmdef\_prep [\#596](https://github.com/TomGillen/Dissonance/pull/596)
|
||||||
|
- feature/packet\_loss\_property [\#595](https://github.com/TomGillen/Dissonance/pull/595)
|
||||||
|
- Feature/webrtc p2p [\#594](https://github.com/TomGillen/Dissonance/pull/594)
|
||||||
|
|
||||||
|
## v6.2.4 (2018-07-20)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Showing audio attenuation caused by trigger fades in the VoiceBroadcastTrigger inspector
|
||||||
|
- Added additional details to the DissonanceComms profiler ([internal#577](https://github.com/TomGillen/Dissonance/pull/577))
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed an issue causing voice activated speech to frequently cut out ([#104](https://github.com/Placeholder-Software/Dissonance/issues/104)) ([internal#585](https://github.com/TomGillen/Dissonance/pull/585)]
|
||||||
|
- Fixed a data race when the audio preprocessor resets ([internal#591](https://github.com/TomGillen/Dissonance/pull/591))
|
||||||
|
- Prevented audio ducking system ducking remote speakers when the local player has channels open but is muted ([internal#588](https://github.com/TomGillen/Dissonance/pull/588))
|
||||||
|
- Modified how audio capture system is reset to reduce the number of resets performed when the network mode changes ([internal#583](https://github.com/TomGillen/Dissonance/pull/583))
|
||||||
|
- Modified how Forge and Forge Networking Remastered integrations perform loopback (delaying packets by one frame) to prevent potential bugs caused by buffer re-use
|
||||||
|
- ([FNR internal#581](https://github.com/TomGillen/Dissonance/pull/581))
|
||||||
|
- ([FN internal#580](https://github.com/TomGillen/Dissonance/pull/580))
|
||||||
|
- Fixed oversize playback buffer detection triggering too frequently ([internal#579](https://github.com/TomGillen/Dissonance/pull/579))
|
||||||
|
|
||||||
|
## v6.2.3 (2018-07-05)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Improved network handshake protocol to support an unlimited number of players in a Dissonance session (previously limited to ~20).
|
||||||
|
- Added ResetMicrophoneCapture method, which will force a reset of the Dissonance microphone system. This can resolve some issue caused by third party systems disabling the microphone.
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- Fixed VoiceBroadcastTrigger component to properly fade out speech when tokens are removed.
|
||||||
|
- Fixed RemoteVoiceVolume property not accepting any value except zero.
|
||||||
|
- Fixed host migration for Photon Unity Networking integration.
|
||||||
|
|
||||||
|
## v6.2.2 (2018-06-06)
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- Fixed desync compensation not correctly recording the number of samples it has corrected
|
||||||
|
- Prevented playback buffer oversize detection detecting an oversize buffer caused by the previous speech session overunning
|
||||||
|
|
||||||
|
## v6.2.1 (2018-06-04)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
|
||||||
|
- Expanded voice session timeout to 1.5 seconds. With this longer periods of packet loss can be tolerated.
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
|
||||||
|
- Fixed native audio plugins for Hololens.
|
||||||
|
- Replaced code which allocated (in certain error cases) with non allocating version.
|
||||||
|
- Made sure that the network mode is set _before_ the client/server code is initialized.
|
||||||
|
- Reduced size of cross thread packet buffer, ensuring packets are pushed downstream sooner (removing a potential source of buffer bloat).
|
||||||
|
- Significantly increased the threshold of playback buffer oversize detection (Detected oversized buffer before playback started). This will trigger much less often and will also tolerate more inconsistent frame rates.
|
||||||
|
|
||||||
|
## v6.2.0 (2018-04-26)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Dark Rift 2 Support.
|
||||||
|
- Added help links in editor inspector out to reference docs.
|
||||||
|
- Enabled Forward Error Correction (FEC) in the codec, this will improve audio quality when there are small amounts of packet loss.
|
||||||
|
- Increased maximum dynamic sync adjustment, this will improve audio synchronisation when there are skips in time (e.g. low frame rates, overloaded CPU).
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed build failure on OSX when using Unity 2017.3 or greater. This was caused by a change in how Unity loads plugins.
|
||||||
|
- Fixed a potential backlog of audio if the application is suspended and then resumed for a short period.
|
||||||
|
|
||||||
|
**Known Issues**
|
||||||
|
- Access Violation Exception with Hololens. Sent to Unity for resolution. [#91](https://github.com/Placeholder-Software/Dissonance/issues/63).
|
||||||
|
- iOS cannot load Dissonance AEC filter in some circumstances. If you are using AEC with iOS (successfully or not) please give us feedback on this issue. [#80](https://github.com/Placeholder-Software/Dissonance/issues/80).
|
||||||
|
- Using the Microphone in the Windows Mixed Reality simulator causes a crash. Sent to Unity for resolution. [#63](https://github.com/Placeholder-Software/Dissonance/issues/63)
|
||||||
|
|
||||||
|
## v6.1.0 (2018-03-19)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Showing an error message in the VoiceReceiptTrigger/VoiceBroadcastTrigger inspector when no room is selected
|
||||||
|
- Added some additional sanity checks to the network packet writing system to ensure it never writes out of bounds
|
||||||
|
- Dissonance can now be installed anywhere in the project. The welcome window will rewrite the code to change hardcoded paths to point to the correct location (https://github.com/Placeholder-Software/Dissonance/issues/75)
|
||||||
|
- Decoding channel data as soon as the first packet is received. This means GetSpeakingChannels will return useful information when PlayerStartedSpeaking is called.
|
||||||
|
|
||||||
|
**Bugfixes:**
|
||||||
|
- Relocated the MacOS binaries to fix the MacOS build process for 2017.3 and higher (https://github.com/Placeholder-Software/Dissonance/issues/79)
|
||||||
|
- Prevented IsNetworkInitialized from throwing if checked before Start is called (https://github.com/Placeholder-Software/Dissonance/issues/76)
|
||||||
|
- Always using network order (Big endian) for network packet headers
|
||||||
|
- Prevented inspector throwing exception when inspecting the playback prefab during a play session
|
||||||
|
- Fixed DissonanceComms inspector to properly accept all types of playback prefab (also added some additional sanity checking)
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- Changing the Microphone device does not work in 2017.2 or higher. This is a unity bug: https://issuetracker.unity3d.com/issues/microphone-dot-start-is-not-recording-the-audio-from-selected-recording-device
|
||||||
|
|
||||||
|
## v6.0.2 (2018-01-30)
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed DissonanceComms inspector crashing with InvalidCastException when the PlaybackPrefab field was set.
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- Changing audio input device does not work on Unity 2017.2 and higher. This is a bug in Unity: https://issuetracker.unity3d.com/issues/microphone-dot-start-is-not-recording-the-audio-from-selected-recording-device
|
||||||
|
|
||||||
|
## v6.0.1 (2018-01-29)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Improved log messages when the Microphone changes.
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed the AEC running the mobile AEC on Desktop platforms (resulting in significantly worse echo cancellation) and the PC AEC running on mobile platforms (resulting in significantly worse performance).
|
||||||
|
- Fixed AEC platform check crashing when performed on a UWP application built in Unity 2017.1 or newer
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- Changing audio input device does not work on Unity 2017.2 and higher. This is a bug in Unity: https://issuetracker.unity3d.com/issues/microphone-dot-start-is-not-recording-the-audio-from-selected-recording-device
|
||||||
|
|
||||||
|
## v6.0.0 (2018-01-16)
|
||||||
|
|
||||||
|
- _Experimental_ Acoustic Echo Cancellation (AEC). Automatically removes speaker sounds from the microphone input; preventing feedback loops, echoing voices and transmitting game sound effects.
|
||||||
|
- Each client may now use different encoding settings (quality, frame size, codec).
|
||||||
|
- Added timestamps to Dissonance log messages.
|
||||||
|
- No longer return VoicePlayback component from VoicePlayerState, instead returning IVoicePlayback object. This lays the groundwork for alternative playback systems (e.g. FMOD/WWise) in the future.
|
||||||
|
|
||||||
|
- Fixed clients (particularly with HLAPI) sometimes getting stuck in a connect/disconnect loop and never sending/receiving any voice.
|
||||||
|
- Fixed string hashing using GetHashCode which is not stable between runtimes. Now using an FNV-1a hash for all string hashing.
|
||||||
|
- Fixed GetSpeakingChannels returning all channels as if they were Player channels.
|
||||||
|
- Fixed buffered network packets potentially 'leaking' from one session to the next when the comms network is shut down and restarted.
|
||||||
|
- Fixed a potential NullReferenceException in HLAPI integration if NetworkManager.singleton returns null.
|
||||||
|
- Fixed preprocessor thread waking up too frequently when there is no work to do, significantly reducing CPU usage.
|
||||||
|
- Prevented the Lost NN samples in the preprocessor (buffer full), injecting silence to compensate message appearing every frame once any samples had been lost.
|
||||||
|
|
||||||
|
## v5.0.0 (2017-12-11)
|
||||||
|
|
||||||
|
**Features**
|
||||||
|
- Added remote channels API. If a client is receiving speech from another client they can now discover which channels the remote client is speaking through. Call GetSpeakingChannels on the player state object for any peer to get a snapshot of the channels.
|
||||||
|
- Added automatic attenuation for remote speech when the local client is transmitting speech. By default a _very_ small attenuation is applied, change this in Window > Dissonance > Quality Settings > Audio Duck Attenuation
|
||||||
|
- Changed LLAPI integration error handling to be more consistent with other network integrations. This should result in more informative error messages.
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed an issue where the transmission system could stop sending packets even while channels are open. Usually caused by rapidly toggling speech on and off.
|
||||||
|
- Changed which network events the LLAPI integration considers to be an error - clients consider a timeout to be an error, the server does not.
|
||||||
|
|
||||||
|
**Known Issues**
|
||||||
|
- No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in testing this)
|
||||||
|
|
||||||
|
## v4.0.1 (2017-11-28)
|
||||||
|
|
||||||
|
- Updated FNR integration to v24 (latest available on asset store)
|
||||||
|
|
||||||
|
- Fixed critical issues introduced in 4.0.0 which prevented Dissonance from working on any non-windows platforms
|
||||||
|
|
||||||
|
- No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in testing this)
|
||||||
|
|
||||||
|
## v4.0.0 (2017-11-13)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- New microphone API allows custom microphone capture scripts
|
||||||
|
- Implement IMicrophoneCapture interface on a MonoBehaviour and add this as a sibling to DissonanceComms. Dissonance will default to BasicMicrophoneCapture if there is no custom microphone component.
|
||||||
|
- Small improvements to the preprocessor. Slightly reducing latency and improving robustness.
|
||||||
|
- New Remote Rooms API exposes which rooms remote players are listening to
|
||||||
|
- VoicePlayerState:Rooms property lists room names
|
||||||
|
- VoicePlayerState:OnEnteredRoom and VoicePlayerState:OnExitedRoom events
|
||||||
|
- DissonanceComms:OnPlayerEnteredRoom and DissonanceComms:OnPlayerExitedRoom events
|
||||||
|
- Changed menu item from Windows > Dissonance > Welcome Window to Windows > Dissonance > Integrations
|
||||||
|
- Added a method for custom network scripts to signal fatal errors
|
||||||
|
- Added VoicePlaybackState:SpeakerPriority which fetches the current priority a player is speaking with
|
||||||
|
- Added an exit button in the Photon demo scene
|
||||||
|
- Compiled iOS binaries with bitcode
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Handling the case when a network client connects even when it is already connected with a different network connection
|
||||||
|
- More robustly handling HLAPI clients timing out (preventing a potential server crash and restart)
|
||||||
|
- Fixed UWP build not passing app store certification
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in testing this)
|
||||||
|
|
||||||
|
## v3.0.3 (2017-10-12)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Added a setting to "deafen" the local player (prevent all voices from being heard locally). Accessible in the DissonanceComms component inspector or in scripts with the `DissonanceComms:IsDeafened` property
|
||||||
|
- Compiled binaries for iOS with bitcode
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed some state being left on the server when a player disconnects, potentially crashing the server if the player reconnects (#55)
|
||||||
|
- Removed an error printed when a client leaves the session (#56)
|
||||||
|
- Exponentially backing off the frame skip detector so that it does not detect multiple skips within a short period of time (#58)
|
||||||
|
- Fixed the ErrorWrongSession packet which contained the wrong session number and caused endless log spam (#59)
|
||||||
|
- Removed use of <code>Math.DivRem</code> function which is not available on UWP (hololens) (#61)
|
||||||
|
- Fixed PUN integration throwing ErrorWrongSession errors if used in multiple sessions
|
||||||
|
- Sending "User Left" events for all users in the session immediately before shutting down the session
|
||||||
|
- Fixed the volume setting being ignored when opening a new channel (it was previously always initialised to 1)
|
||||||
|
- Fixed a potential crash in the server if a non Dissonance packet was passed to the server
|
||||||
|
- Ensured that client always disconnects itself if any exception occurs when updating the client - it should instantly attempt to reconnect itself to recover from the error
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- UWP does not support ARM architecture (i.e. Windows Phone - Contact us if you're interested in this)
|
||||||
|
- No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in helping to test this)
|
||||||
|
|
||||||
|
## v3.0.2 (2017-09-08)
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed an issue which would cause joining clients to crash if any other client had ever left the session.
|
||||||
|
|
||||||
|
## v3.0.1 (2017-09-07)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Added an update window which will pop up when a new version of Dissonance is available
|
||||||
|
- The window will only show up once for each new version
|
||||||
|
- If you do not want this it is easy to toggle off the check and it will _never_ show up again
|
||||||
|
- Added dynamic quality adjustment based on packet loss - encoder will dynamically trade off quality for packet loss resilience (#47)
|
||||||
|
- Upgraded to Opus 1.2.1, this will slightly improve the quality of high quality speech
|
||||||
|
- Modified the encoder to more promptly close channels, this will slightly improve the last 250ms of speech
|
||||||
|
- Added in a `BasePath` const which is used as the root of all direct filesystem access Dissonance does in the editor (#51)
|
||||||
|
- Added more items to the `Window > Dissonance` menu
|
||||||
|
- Added a warning (printed into the log) if `Application.runInBackground` is not set
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed the network system not properly removing clients when they left the session - this would cause the server to crash when the ~30th person joined the session.
|
||||||
|
- Fixed the `OnStartedSpeaking` event being invoked when a player had multiple channels open and closed one (but continued speaking)
|
||||||
|
- Fixed noise suppressor level not being applied (it always used the `High` setting)
|
||||||
|
- Fixed a rare case where the voice detector could stop receiving events when the capture pipeline was reset
|
||||||
|
- Fixed a exception in the HLAPI integration when Dissonance tries to send a packet before the HLAPI is ready (#48)
|
||||||
|
- Fixed audio desync on clients if the editor is paused while someone is speaking
|
||||||
|
- Fixed audio desync when the editor stutters e.g. due to editor GUI interaction (#28)
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- UWP does not support ARM architecture (i.e. Windows Phone - Contact us if you're interested in this)
|
||||||
|
- No Acoustic Echo Cancellation (Work in progress)
|
||||||
|
- iOS does not support bitcode (Work in progress)
|
||||||
|
|
||||||
|
## v3.0.0 (2017-08-15)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- UWP Support
|
||||||
|
- Supported Architectures: x86, x86_64
|
||||||
|
- Forge Remastered Network Integration
|
||||||
|
- Added per channel volumes
|
||||||
|
- Added soft fade-in and fade-out to broadcast triggers
|
||||||
|
- Total internal rewrite of networking system to support optional p2p routing
|
||||||
|
- Significantly reduces latency and slightly reduces bandwidth costs
|
||||||
|
- Small BREAKING CHANGE to custom network integrations. Generic TPeer type must be a struct
|
||||||
|
- Added the ability to change Microphone at runtime (DissonanceComms:MicrophoneName property)
|
||||||
|
- Added a list of currently available Microphones to the DissonanceComms component inspector
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
- Fixed a Mac specific issue which would cause a crash in the microphone system if a headset was plugged in while recording (#33)
|
||||||
|
- Fixed multithreading issue in the Voice Activation Detector which could cause a segfault (#44)
|
||||||
|
- Fixed unsafe multithreaded access to preprocessor and encoder (#44)
|
||||||
|
- Prevented volume based comms trigger from attemtping to access dead objects if object is destroyed while inside trigger volume
|
||||||
|
- Fixed a null reference exception in HLAPI integration if HLAPI unexpectedly turns null
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
- UWP does not support ARM architecture (Windows phone)
|
||||||
|
- No Acoustic Echo Cancellation
|
||||||
|
|
||||||
|
## v2.0.0 (2017-07-29)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Network restarts
|
||||||
|
* Host migration
|
||||||
|
* WebRTC based preprocessing pipeline
|
||||||
|
* Added local mute with the VoicePlayerState:IsLocallyMuted property
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Prevented VoicePlayerState:Priority property throwing an exception if accessed while no voice audio is playing
|
||||||
|
* Fixed a null reference exception in the Forge integration when a connection is compared with null
|
||||||
|
* Refactored how local mute works so the VAD still processes data even when the player is muted
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* No Acoustic Echo Cancellation
|
||||||
|
* Disconnecting and reconnecting a headset can cause errors (believed to be a Mac specific error). Track Issue #33
|
||||||
|
|
||||||
|
## v1.1.1 (2017-06-15)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Photon BOLT support
|
||||||
|
* Totally overhauled all demo scenes
|
||||||
|
* Added a checkbox to the LLAPI to disable it's network management (to prevent it from interfering with other LLAPI sessions).
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Overhauled network disconnection logic to make it robustly handle a number of error cases
|
||||||
|
* Fixed network simulation losing reliable packets
|
||||||
|
* Fixed playback system throwing an overflow exception if a client disconnected while talking and then immediately reconnected
|
||||||
|
* Fixed collider triggers sometimes not deactivating correctly when an entity leaves their volume
|
||||||
|
* Fixed the HLAPI server writing a misleading (but harmless) error message when it is shutdown
|
||||||
|
* Fixed trigger inspector showing the wrong room if the actual room no longer exists
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* No Acoustic Echo Cancellation
|
||||||
|
* Disconnecting and reconnecting a headset can cause errors in some circumstances (possibly Mac only)
|
||||||
|
|
||||||
|
## v1.1.0 (2017-06-10)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Photon BOLT support
|
||||||
|
* Totally overhauled all demo scenes
|
||||||
|
* Added a checkbox to the LLAPI to disable it's network management (to prevent it from interfering with other LLAPI sessions).
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Overhauled network disconnection logic to make it robustly handle a number of error cases
|
||||||
|
* Fixed network simulation losing reliable packets
|
||||||
|
* Fixed playback system throwing an overflow exception if a client disconnected while talking and then immediately reconnected
|
||||||
|
* Fixed collider triggers sometimes not deactivating correctly when an entity leaves their volume
|
||||||
|
* Fixed the HLAPI server writing a misleading (but harmless) error message when it is shutdown
|
||||||
|
* Fixed trigger inspector showing the wrong room if the actual room no longer exists
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* No Acoustic Echo Cancellation
|
||||||
|
* Disconnecting and reconnecting a headset can cause errors in some circumstances (possibly Mac only)
|
||||||
|
|
||||||
|
## v1.0.10 (2017-05-04)
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Urgent fix for the welcome window introduced in 1.0.9 to ensure it pops up for all users on the first install
|
||||||
|
* Fixed player disconnection tracking for HLAPI when running in dedicated server mode
|
||||||
|
* Fixed voice not being received when no microphone is connected
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
|
||||||
|
## v1.0.9 (2017-04-27)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* New 'Welcome Window' pops up when you install a new version of Dissonance. Directs you to the online changelog and the integrations download site
|
||||||
|
* Integration have been removed from the package, they are now all available online
|
||||||
|
* Added a VoicePlayerState object for the local player, provides events and live amplitude measurement for the local player
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed null reference exception being thrown if the VoiceBroadcastTrigger was misconfigured
|
||||||
|
* Added a 4 byte session ID to the network layer (this can handle someone trying to run two Dissonance sessions on the same IP address)
|
||||||
|
* Fixed PhotonCommsNetwork integration never properly shutting itself down (#25)
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
|
||||||
|
## v1.0.8 (2017-04-10)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Completely new VAD! Based on the excellent voice detector created for the Chromium WebRTC project.
|
||||||
|
* Showing live network traffic rates in the Dissonance network inspector (10 second moving average of traffic sent)
|
||||||
|
* Improved calculation of microphone sample rate to do less unnecessary work when connected to a very high sample rate mic
|
||||||
|
* Added 4 events to DissonanceComms:
|
||||||
|
* OnPlayerJoinedSession
|
||||||
|
* OnPlayerLeftSession
|
||||||
|
* OnPlayerStartedSpeaking
|
||||||
|
* OnPlayerStoppedSpeaking
|
||||||
|
* Updated all custom editors to properly push onto the undo/redo stack when Dissonance components are modified
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed a potential desync between capture and playback when the microphone preprocessor input queue is full
|
||||||
|
* Made it significantly less likely that the microphone preprocessor input queue will ever fill up
|
||||||
|
* Prevented erroneuous error being printed in some circumstances ("Attempted to stop a session, but there is no active session")
|
||||||
|
* Fixed VUMeter not compiling on Unity 5.4
|
||||||
|
* Fixed Unity editor loading the wrong DLLs when configured for iOS platform
|
||||||
|
* Fixed the playback system failing to play audio if the capture system closes a channel and re-opens the same channel within 40ms
|
||||||
|
* Changed PlaybackPrefab (the non spatialized version) to not be spatialized
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
|
||||||
|
## v1.0.7 (2017-04-04)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* SALSA + Dissonance integration for real time lip sync!
|
||||||
|
|
||||||
|
## v1.0.6 (2017-03-24)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Dedicated server support for LLAPI and HLAPI
|
||||||
|
* Added some extra properties to VoicePlayerState (references to IDissonancePlayer component and VoicePlayback component for this player)
|
||||||
|
* Added some extra events to VoicePlayerState which are raised when a player starts/stops talking and leaves the session.
|
||||||
|
* Added an option to choose the microphone to use (MicrophoneName property on DissonanceComms - currently may only be set before the component is enabled)
|
||||||
|
* Added live traffic statistics to the comms network inspector (packet/bandwidth counts for different classes of traffic)
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed the default spatial blend on a playback prefab being 0.0 (now it's 1.0)
|
||||||
|
* Fixed positional audio playback when a spatializer is not in use (use the SpatializedPlaybackPrefab in Plugins/Dissonance/Resources if you are using a spatializer)
|
||||||
|
* Fixed the jitter measurement from one player sometimes being applied to the next player to use that recycled playback instance for the first 1.2 seconds of speech
|
||||||
|
* Fixed the playback pipeline being reset too eagerly (occasionally cutting off the first 2 frames of speech)
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* VAD does not always work well (particularly on mobile devices)
|
||||||
|
|
||||||
|
## v1.0.5 (2017-03-06)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Added an inspector for the SamplePlaybackComponent which shows statistics on the playback pipeline
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed a multithreaded torn variable read on 32 bit systems
|
||||||
|
* Fixed some serialization errors in the Forge demo scene
|
||||||
|
* Included LLAPI demo scene in package
|
||||||
|
* Fixed the `WaveFormat` property of the SpeechSession being wrong value
|
||||||
|
* Fixed the playback system consuming samples at the wrong rate in some circumstances (causing serious desyncs)
|
||||||
|
* Fixed the microphone capture pipeline losing samples when the pipeline is overloaded
|
||||||
|
* Automatically resizing the buffers in the capture pipeline to make it harder to overload
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* VAD does not always work well (particularly on mobile devices)
|
||||||
|
|
||||||
|
## v1.0.4 (2017-02-16)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* Automatically adjusting playback speed to compensate for recording/playback clock skew.
|
||||||
|
* Automatically adjusting the size of the playback buffer based on network jitter (more responsive voice in good conditions, less robot voice in bad conditions).
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed log system losing some message from non-main threads.
|
||||||
|
* Fixed LLAPI integration not properly handling the disconnect event (leaving the session in an inconsistent state and preventing future reconnections).
|
||||||
|
* Fixed microphone capture losing some data in extremely low framerate situations.
|
||||||
|
* Refactored internals of BaseServer and BaseClient, this should not affect custom network integrations.
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* VAD does not always work well (particularly on mobile devices)
|
||||||
|
* End users require a specific version of the C++ runtime installed
|
||||||
|
|
||||||
|
## v1.0.3 (2017-02-07)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* iOS support
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed logging system writing to the log file on worker threads (creating mangled logs)
|
||||||
|
* Fixed text messages being sent to other players twice in some circumstances
|
||||||
|
* Fixed voice playback not working when a new client joins a session and gets a recycled player object
|
||||||
|
* Fixed voice playback not working when a new client joins a session and gets a recycled network connection ID
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for Windows Universal Platform
|
||||||
|
* VAD does not always work well (particularly on mobile devices)
|
||||||
|
|
||||||
|
## v1.0.2 (2017-01-25)
|
||||||
|
|
||||||
|
**New Features:**
|
||||||
|
* MacOS Support
|
||||||
|
|
||||||
|
**Bug Fixes:**
|
||||||
|
* Fixed voice transmision being broken while VAD delay line is active
|
||||||
|
* Removed a number of classes from the Dissonance public API
|
||||||
|
* Fixed playback system will breaking when the game is paused
|
||||||
|
|
||||||
|
**Known Issues:**
|
||||||
|
* Lacking platform support for: iOS, Windows Universal Platform
|
8
Assets/Dissonance/changelog.txt.meta
Normal file
8
Assets/Dissonance/changelog.txt.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34187f26c0ce8374a9623dddf6c73832
|
||||||
|
timeCreated: 1528295290
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
12
Assets/Help.pdf
Normal file
12
Assets/Help.pdf
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
http://www.cgsoso.com/forum-211-1.html
|
||||||
|
CG 搜搜 Unity3d 每日 Unity3d 插件免费更新 更有 VIP 资源!
|
||||||
|
CGSOSO 主打游戏开发,影视设计等 CG 资源素材。
|
||||||
|
插件如若商用,请务必官网购买!
|
||||||
|
daily assets update for try.
|
||||||
|
U should buy the asset from home store if u use it in your project!
|
||||||
|
该资源为 CGSOSO VIP 资源,你还在其他渠道辛苦找资源,白花钱吗!
|
||||||
|
CGSOSO 绿色站,无广告,VIP 更多资源,更可申请资源!
|
||||||
|
因网站收入微薄,申请资源别太贵,不能及时采购请见谅!
|
||||||
|
倒卖分享马甲号核实直接封号,网站可持续发展靠大家一起维护,谢谢!
|
||||||
|
倒卖分享者请自重,请勿同室操戈!
|
||||||
|
|
8
Assets/Help.pdf.meta
Normal file
8
Assets/Help.pdf.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f2869759a9f243c4b9b42a12782c39cb
|
||||||
|
timeCreated: 1509509222
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
9
Assets/More Assets.url
Normal file
9
Assets/More Assets.url
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
BASEURL=http://www.cgsoso.com/
|
||||||
|
[InternetShortcut]
|
||||||
|
URL=http://www.cgsoso.com/
|
||||||
|
IDList=
|
||||||
|
IconFile=http://www.cgsoso.com/favicon.ico
|
||||||
|
IconIndex=1
|
||||||
|
[{000214A0-0000-0000-C000-000000000046}]
|
||||||
|
Prop3=19,2
|
8
Assets/More Assets.url.meta
Normal file
8
Assets/More Assets.url.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ea41eb7cdaa803b4a9893d4a696e8b05
|
||||||
|
timeCreated: 1509509222
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
71
Assets/PlayerController.cs
Normal file
71
Assets/PlayerController.cs
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Unity.VisualScripting;
|
||||||
|
using UnityEngine;
|
||||||
|
using static UnityEngine.GraphicsBuffer;
|
||||||
|
|
||||||
|
public class PlayerController : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Camera mainCamera;
|
||||||
|
public float rotationSpeed = 5f;
|
||||||
|
public float zoomSpeed = 10f;
|
||||||
|
public float minFov = 20f;
|
||||||
|
public float maxFov = 120;
|
||||||
|
|
||||||
|
private Vector3 lastMousePosition; public float distance = 5f;
|
||||||
|
|
||||||
|
// Start is called before the first frame update
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (mainCamera == null)
|
||||||
|
{
|
||||||
|
mainCamera = Camera.main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
HandleRotation();
|
||||||
|
|
||||||
|
HandleZoom();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过鼠标拖动来旋转物体
|
||||||
|
void HandleRotation()
|
||||||
|
{
|
||||||
|
if (Input.GetMouseButtonDown(0)) // 鼠标左键按下时记录鼠标位置
|
||||||
|
{
|
||||||
|
lastMousePosition = Input.mousePosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Input.GetMouseButton(0)) // 鼠标左键保持按下状态时
|
||||||
|
{
|
||||||
|
Vector3 delta = Input.mousePosition - lastMousePosition; // 获取鼠标的移动距离
|
||||||
|
|
||||||
|
float rotX = delta.x * rotationSpeed * Time.deltaTime; // 水平旋转
|
||||||
|
float rotY = -delta.y * rotationSpeed * Time.deltaTime; // 垂直旋转
|
||||||
|
|
||||||
|
// 计算新的旋转角度
|
||||||
|
mainCamera.transform.RotateAround(transform.position, Vector3.up, rotX); // 水平绕目标物体旋转
|
||||||
|
mainCamera.transform.RotateAround(transform.position, mainCamera.transform.right, rotY); // 垂直绕目标物体旋转
|
||||||
|
|
||||||
|
// 更新摄像机的旋转后的位置
|
||||||
|
Vector3 direction = (mainCamera.transform.position - transform.position).normalized; // 获取摄像机指向目标物体的方向
|
||||||
|
mainCamera.transform.position = transform.position + direction * distance; // 根据旋转角度调整摄像机的位置
|
||||||
|
|
||||||
|
lastMousePosition = Input.mousePosition; // 更新上一帧的鼠标位置
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void HandleZoom()
|
||||||
|
{
|
||||||
|
float scrollInput = Input.GetAxis("Mouse ScrollWheel");
|
||||||
|
if (scrollInput != 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
mainCamera.fieldOfView = Mathf.Clamp(mainCamera.fieldOfView - scrollInput * zoomSpeed, minFov, maxFov);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
Assets/PlayerController.cs.meta
Normal file
11
Assets/PlayerController.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3557710de5abdd34d95d8782eee7f6fc
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Plugins.meta
Normal file
8
Assets/Plugins.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3db0100fe6185d44c9830a8e46c1417c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Plugins/Dissonance.meta
Normal file
8
Assets/Plugins/Dissonance.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 51f331a0f60c72941bbe75975bb5f1ff
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Plugins/Dissonance/Plugins.meta
Normal file
8
Assets/Plugins/Dissonance/Plugins.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 87ccf52eeab52754fbcb6cc2e0a241df
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Plugins/Dissonance/Plugins/x86_64.meta
Normal file
8
Assets/Plugins/Dissonance/Plugins/x86_64.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f28617c7a7f9f4740abadefa011778aa
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,133 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6d624d5456a12a941ba658f057ff1a65
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 1
|
||||||
|
isOverridable: 0
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
'': Any
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 0
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 0
|
||||||
|
Exclude OSXIntel64: 0
|
||||||
|
Exclude OSXUniversal: 0
|
||||||
|
Exclude Win: 1
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
Exclude iOS: 1
|
||||||
|
- first:
|
||||||
|
'': Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OS: Windows
|
||||||
|
- first:
|
||||||
|
Android: Android
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: ARMv7
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: Windows
|
||||||
|
- first:
|
||||||
|
Facebook: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Facebook: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: Linux
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: Linux64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
- first:
|
||||||
|
Standalone: LinuxUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: OSXIntel
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: OSXIntel64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: OSXUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: X64
|
||||||
|
DontProcess: True
|
||||||
|
PlaceholderPath:
|
||||||
|
SDK: UWP
|
||||||
|
ScriptingBackend: AnyScriptingBackend
|
||||||
|
- first:
|
||||||
|
iPhone: iOS
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Binary file not shown.
@ -0,0 +1,153 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ec814136df86d8447a5a0fb3f6f416ff
|
||||||
|
timeCreated: 1488981001
|
||||||
|
licenseType: Store
|
||||||
|
PluginImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
platformData:
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Any
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 1
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 1
|
||||||
|
Exclude OSXIntel64: 1
|
||||||
|
Exclude OSXUniversal: 1
|
||||||
|
Exclude Win: 0
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OS: Linux
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Android: Android
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: ARMv7
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 1
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 1
|
||||||
|
Exclude OSXIntel64: 1
|
||||||
|
Exclude OSXUniversal: 1
|
||||||
|
Exclude Win: 0
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: Linux
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: LinuxUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel64
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXUniversal
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DontProcess: False
|
||||||
|
PlaceholderPath:
|
||||||
|
SDK: AnySDK
|
||||||
|
ScriptingBackend: AnyScriptingBackend
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Plugins/Dissonance/Plugins/x86_64/libopus.so
Normal file
BIN
Assets/Plugins/Dissonance/Plugins/x86_64/libopus.so
Normal file
Binary file not shown.
162
Assets/Plugins/Dissonance/Plugins/x86_64/libopus.so.meta
Normal file
162
Assets/Plugins/Dissonance/Plugins/x86_64/libopus.so.meta
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e041e69a22640af4d9f3ef36809a8ec9
|
||||||
|
timeCreated: 1487180075
|
||||||
|
licenseType: Store
|
||||||
|
PluginImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
platformData:
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Any
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 1
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 1
|
||||||
|
Exclude OSXIntel64: 1
|
||||||
|
Exclude OSXUniversal: 1
|
||||||
|
Exclude Win: 0
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OS: Linux
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Android: Android
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: ARMv7
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 1
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 1
|
||||||
|
Exclude OSXIntel64: 1
|
||||||
|
Exclude OSXUniversal: 1
|
||||||
|
Exclude Win: 0
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
Exclude iOS: 1
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: Linux
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: LinuxUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel64
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXUniversal
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DontProcess: False
|
||||||
|
PlaceholderPath:
|
||||||
|
SDK: AnySDK
|
||||||
|
ScriptingBackend: AnyScriptingBackend
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
iPhone: iOS
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
148
Assets/Plugins/Dissonance/Plugins/x86_64/opus.bundle.meta
Normal file
148
Assets/Plugins/Dissonance/Plugins/x86_64/opus.bundle.meta
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 882562de43a168b4c99428339b9a1dcc
|
||||||
|
PluginImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
platformData:
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Any
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Android: 1
|
||||||
|
Exclude Editor: 1
|
||||||
|
Exclude Linux: 1
|
||||||
|
Exclude Linux64: 1
|
||||||
|
Exclude LinuxUniversal: 1
|
||||||
|
Exclude OSXIntel: 1
|
||||||
|
Exclude OSXIntel64: 1
|
||||||
|
Exclude OSXUniversal: 1
|
||||||
|
Exclude Win: 1
|
||||||
|
Exclude Win64: 1
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
Exclude iOS: 1
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
'': Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
OS: AnyOS
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Android: Android
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: ARMv7
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Facebook: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Linux64
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: LinuxUniversal
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXIntel64
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: OSXUniversal
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Standalone: Win64
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: X86
|
||||||
|
DontProcess: False
|
||||||
|
PlaceholderPath:
|
||||||
|
SDK: AnySDK
|
||||||
|
ScriptingBackend: AnyScriptingBackend
|
||||||
|
data:
|
||||||
|
first:
|
||||||
|
iPhone: iOS
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CompileFlags:
|
||||||
|
FrameworkDependencies:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/Plugins/Dissonance/Plugins/x86_64/opus.dll
Normal file
BIN
Assets/Plugins/Dissonance/Plugins/x86_64/opus.dll
Normal file
Binary file not shown.
118
Assets/Plugins/Dissonance/Plugins/x86_64/opus.dll.meta
Normal file
118
Assets/Plugins/Dissonance/Plugins/x86_64/opus.dll.meta
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 30abd492da4a4cf45a11c0bf3341373a
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
'': Any
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
Exclude Editor: 0
|
||||||
|
Exclude Linux: 0
|
||||||
|
Exclude Linux64: 0
|
||||||
|
Exclude LinuxUniversal: 0
|
||||||
|
Exclude OSXIntel: 0
|
||||||
|
Exclude OSXIntel64: 0
|
||||||
|
Exclude OSXUniversal: 0
|
||||||
|
Exclude Win: 1
|
||||||
|
Exclude Win64: 0
|
||||||
|
Exclude WindowsStoreApps: 1
|
||||||
|
- first:
|
||||||
|
'': Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
OS: Windows
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
OS: Windows
|
||||||
|
- first:
|
||||||
|
Facebook: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Facebook: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: Linux
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: Linux64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: x86_64
|
||||||
|
- first:
|
||||||
|
Standalone: LinuxUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: OSXIntel
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: OSXIntel64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: OSXUniversal
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Standalone: Win
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: None
|
||||||
|
- first:
|
||||||
|
Standalone: Win64
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
- first:
|
||||||
|
Windows Store Apps: WindowsStoreApps
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
CPU: AnyCPU
|
||||||
|
DontProcess: False
|
||||||
|
PlaceholderPath:
|
||||||
|
SDK: AnySDK
|
||||||
|
ScriptingBackend: AnyScriptingBackend
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/Scenes.meta
Normal file
8
Assets/Scenes.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f1d9a99b1e1940d43940706c6af1b5e5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
3291
Assets/Scenes/SampleScene.unity
Normal file
3291
Assets/Scenes/SampleScene.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Scenes/SampleScene.unity.meta
Normal file
7
Assets/Scenes/SampleScene.unity.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9fc0d4010bbf28b4594072e72b8655ab
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/TextMesh Pro.meta
Normal file
8
Assets/TextMesh Pro.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f54d1bd14bd3ca042bd867b519fee8cc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/TextMesh Pro/Documentation.meta
Normal file
8
Assets/TextMesh Pro/Documentation.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8e7e8f5a82a3a134e91c54efd2274ea9
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,470 @@
|
|||||||
|
TextMesh Pro!
|
||||||
|
Advanced Text Rendering for Unity 3D
|
||||||
|
|
||||||
|
USER GUIDE
|
||||||
|
|
||||||
|
Release 1.0.54
|
||||||
|
|
||||||
|
Dec 2016
|
||||||
|
Copyright (C) 2016 Stephan Bouchard - All Rights Reserved
|
||||||
|
This manual, as well as the software described in it, is furnished under license and may
|
||||||
|
be used or copied only in accordance with the terms of such license. The content of
|
||||||
|
this manual is furnished for informational use only, is subject to change without notice
|
||||||
|
and should not be construed as a commitment by its authors. The author assumes no
|
||||||
|
responsibility or liability for any errors or inaccuracies that may appear in this manual.
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Table of Contents
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
|
||||||
|
Overview........................................................................................................................ 4
|
||||||
|
Installation..................................................................................................................... 4
|
||||||
|
Quick Start..................................................................................................................... 4
|
||||||
|
Support & API documentation.................................................................................. 4
|
||||||
|
|
||||||
|
TextMeshPro Component
|
||||||
|
|
||||||
|
Text Input Box............................................................................................................... 5
|
||||||
|
Font Settings................................................................................................................. 6
|
||||||
|
|
||||||
|
Material Editor & Shaders Overview
|
||||||
|
|
||||||
|
Shader Overview.......................................................................................................... 7
|
||||||
|
Material Editor UI Panels & Features........................................................................ 7
|
||||||
|
|
||||||
|
Font Asset Creator
|
||||||
|
|
||||||
|
General Overview...................................................................................................... 10
|
||||||
|
|
||||||
|
Font Asset
|
||||||
|
|
||||||
|
General Font Information & Sub-Assets............................................................... 13
|
||||||
|
Font Settings............................................................................................................... 13
|
||||||
|
Character Set Info...................................................................................................... 14
|
||||||
|
Kerning Table.............................................................................................................. 14
|
||||||
|
|
||||||
|
3 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Getting Started
|
||||||
|
|
||||||
|
Overview
|
||||||
|
|
||||||
|
This User Guide was designed to provide TextMesh Pro users with a basic overview of the
|
||||||
|
features and functionality of the tool.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
Once you have downloaded TextMesh Pro from Unity’s Asset Store, go to: “Assets->Import
|
||||||
|
Package->Custom Package...”. In the Import Asset window, find and select the TextMeshPro.
|
||||||
|
unitypackage file. After the “Importing package” window appears in Unity, verify that all items to
|
||||||
|
import are selected and then click the Import button in the bottom right of the window.
|
||||||
|
|
||||||
|
Quick Start
|
||||||
|
|
||||||
|
There are two TextMesh Pro components available. To add a new TextMesh Pro text object
|
||||||
|
which works with the Mesh Renderer, go to: “GameObject->3D Object->TextMeshPro Text”.
|
||||||
|
To add a TextMesh Pro Component which works with the New UI, go to: “GameObject->UI-
|
||||||
|
>TextMeshPro Text”.
|
||||||
|
|
||||||
|
You may also wish to watch this short video showing how to add TextMesh Pro text objects into
|
||||||
|
a scene.
|
||||||
|
|
||||||
|
Support & API Documentation
|
||||||
|
|
||||||
|
Should you have questions or require assistance, please visit the TextMesh Pro User Forum
|
||||||
|
where you will find additional information, Video Tutorials and FAQ. In the event you are unable
|
||||||
|
to find the information you seek, feel free to register and post on the user forum or to contact
|
||||||
|
Support@DigitalNativeStudios.com
|
||||||
|
Online Documentation is also available on TextMesh Pro including Rich Text tags, Shaders,
|
||||||
|
Scripting API and more.
|
||||||
|
|
||||||
|
4 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Component Overview
|
||||||
|
|
||||||
|
Component Overview
|
||||||
|
|
||||||
|
The TextMesh Pro component is divided into two sections: The Text Input and the Font Settings.
|
||||||
|
|
||||||
|
Text Input Box
|
||||||
|
|
||||||
|
This area is where you will type the text to be rendered. Multiple lines of text can be entered by
|
||||||
|
pressing <Enter> on your keyboard or by typing the special character \n.
|
||||||
|
Tabulation can be achieved by using \t. These are tab stops with a spacing interval equal to
|
||||||
|
roughly 25% of the point size. For an alternative to tabs, see the <pos> tag below.
|
||||||
|
The Text Input area also supports Rich Text tags. Tags are defined by enclosing the tag between
|
||||||
|
“<” and “>” characters. Below is a partial list of supported tags. Updated tag list is available here.
|
||||||
|
<b>Bold</b>
|
||||||
|
<i>Italics</i>
|
||||||
|
<u>Underline</u>
|
||||||
|
<s>Strikethrough</s>
|
||||||
|
<sup>Superscript</sup>
|
||||||
|
<sub>Subscript</sub>
|
||||||
|
<size=48>Point size 48</size>
|
||||||
|
<size=+18>Point size increased by 18</size>
|
||||||
|
<size=-18>Point size decreased by 18</size>
|
||||||
|
<pos=5.5>Characters positioned about 5.5 characters from left side.
|
||||||
|
<color=yellow>Yellow text</color>
|
||||||
|
<#00ff00>Green text</color>
|
||||||
|
|
||||||
|
5 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Component Overview
|
||||||
|
|
||||||
|
Font Settings
|
||||||
|
|
||||||
|
Font Asset This is the TextMeshPro Font Asset that
|
||||||
|
|
||||||
|
will be used to render the text.
|
||||||
|
|
||||||
|
Font Style Applies a global style to the text like
|
||||||
|
bold, italics, etc.
|
||||||
|
|
||||||
|
Vertex Color Color that will be assigned as a vertex
|
||||||
|
color for each character unless a color
|
||||||
|
tag has been specified.
|
||||||
|
|
||||||
|
Color Gradient Enables using a Vertex Color Gradient.
|
||||||
|
|
||||||
|
Override Color Tags Enables overriding color tags. This
|
||||||
|
results in all characters using the Face
|
||||||
|
Color instead of the color tag.
|
||||||
|
|
||||||
|
Font Size The point size of the characters.
|
||||||
|
|
||||||
|
Auto Size Dynamically adjusts the point size
|
||||||
|
between the min & max to fit the size
|
||||||
|
of the text container.
|
||||||
|
|
||||||
|
Character Spacing Controls the spacing between individual characters.
|
||||||
|
|
||||||
|
Spacing Enables adjustments to character, line and paragraph spacing.
|
||||||
|
|
||||||
|
Alignment Controls the alignment of the text. Options are Left, Center, Right and Justified. When Justified is
|
||||||
|
selected, the ratio controls how additional spacing is added between words and characters.
|
||||||
|
|
||||||
|
Enable Word Wrap Enables or disables Word Wrapping.
|
||||||
|
|
||||||
|
UV Mapping Options Controls how the texture (face & border) are mapping on the text object.
|
||||||
|
|
||||||
|
Enable Kerning Enables or disables Kerning if any kerning pairs are defined in the kerning table of the Font Asset.
|
||||||
|
|
||||||
|
Extra Padding Extra padding may be required for very small fonts. This extra padding prevents the characters
|
||||||
|
from being clipped.
|
||||||
|
|
||||||
|
6 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Material Editor & Shader Overview
|
||||||
|
|
||||||
|
Material Editor & Shaders
|
||||||
|
|
||||||
|
TextMeshPro includes several custom shaders along with a custom material editor which was
|
||||||
|
designed to keep things simple by only exposing those properties which are expected to be
|
||||||
|
modified.
|
||||||
|
|
||||||
|
There are two groups of shaders which include a Bitmap shader & a few Signed Distance Field
|
||||||
|
shaders. TextMesh Pro’s shaders can be found in “TextMeshPro/...” section of the shader list in
|
||||||
|
the material component. Below is a list and brief description of the SDF shaders. Updated shader
|
||||||
|
information is also available here.
|
||||||
|
|
||||||
|
Distance Field Mobile
|
||||||
|
This lightweight shader contains just the bare essential features and offers the best overall performance.
|
||||||
|
|
||||||
|
Distance Field
|
||||||
|
This more advanced shader includes a large selection of features. It is the shader that is assigned by default to all
|
||||||
|
Signed Distance Field font assets. It still offers excellent performance.
|
||||||
|
|
||||||
|
Distance Field Surface
|
||||||
|
This shader includes essentially the same features as the Distance Field shader. However, instead of using simulated
|
||||||
|
lighting, it uses the scene lights. These text objects can also cast shadows. This shader uses per pixel lighting.
|
||||||
|
|
||||||
|
Distance Field Surface Mobile
|
||||||
|
This is a lightweight version of the Surface shader with limited features. It uses per vertex lighting and does not use
|
||||||
|
directional information from lights. However it does factor in light distance.
|
||||||
|
|
||||||
|
Material Editor Feature Panels
|
||||||
|
|
||||||
|
In this section, you will find an overview of each of the feature panels used by the custom
|
||||||
|
material editor. Clicking on these panels will hide or reveal their features. Some of these panels
|
||||||
|
need to be enabled to turn on their functionality. Different panels will be available on the various
|
||||||
|
shaders.
|
||||||
|
|
||||||
|
Face Panel
|
||||||
|
Color - Select the color and transparency for the face of the characters.
|
||||||
|
This color will be combined with the vertex color.
|
||||||
|
|
||||||
|
Texture - Select a texture to be applied to the face of the characters.
|
||||||
|
The Color will affect the color of the texture. How the texture is applied
|
||||||
|
to the characters / text object is controlled by the mapping options in
|
||||||
|
the Editor Panel. The texture option is not available on all shaders.
|
||||||
|
|
||||||
|
Softness - Controls the softness of the face of the characters. Please not the face softness begins at the edge which
|
||||||
|
may be underneath the Outline.
|
||||||
|
|
||||||
|
Dilate - Increases or decreases the size of the characters.
|
||||||
|
|
||||||
|
7 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Material Editor & Shader Overview
|
||||||
|
|
||||||
|
Gloss - Controls how shiny the surface of the characters appears
|
||||||
|
when using the Surface shaders.
|
||||||
|
Outline Panel
|
||||||
|
Color - Controls the color and transparency for the Outline of the
|
||||||
|
characters.
|
||||||
|
|
||||||
|
Texture - Select a texture to be applied to the face of the characters.
|
||||||
|
The Color will affect the color of the texture. How the texture is
|
||||||
|
applied to the characters / text object is controlled by the mapping
|
||||||
|
options in the Editor Panel. The texture option is not available on all
|
||||||
|
shaders.
|
||||||
|
|
||||||
|
Thickness - Controls the thickness of the Outline. The Outline is
|
||||||
|
applied on the edge of the face and expands inwards and outwards.
|
||||||
|
|
||||||
|
Gloss - Controls how shiny the surface of the characters appears when using the Surface shaders.
|
||||||
|
|
||||||
|
Underlay Panel
|
||||||
|
Underlay can be used to add a shadow or border to the text object.
|
||||||
|
This is a very efficient way to add contrast to small text.
|
||||||
|
|
||||||
|
Color - Controls the color and transparency for the Underlay.
|
||||||
|
|
||||||
|
Offset (X, Y) - Controls the position of the Underlay. Please not
|
||||||
|
Underlay has a limited range.
|
||||||
|
|
||||||
|
Dilate - Increases or decreases the size of the underlay. This can be
|
||||||
|
used to make the shadow appear bigger or with an Offset of (0, 0)
|
||||||
|
create a nice border around the text.
|
||||||
|
|
||||||
|
Softness - Controls the softness of the underlay.
|
||||||
|
|
||||||
|
Bevel Panel
|
||||||
|
Bevel simulates the visual appearance of a 3D bevel on a 2D object.
|
||||||
|
|
||||||
|
Type - Two types are available; Outer and Inner bevel.
|
||||||
|
|
||||||
|
Amount - Controls the amount of bevel being applied.
|
||||||
|
|
||||||
|
Offset - Controls the position of the bevel relative to the edge of the
|
||||||
|
face of the character.
|
||||||
|
|
||||||
|
Width - Controls the width of the bevel effect.
|
||||||
|
|
||||||
|
Roundness - Determines if the bevel ridges will appear sharp or
|
||||||
|
rounded.
|
||||||
|
|
||||||
|
Clamp - Limits the height of the bevel. This visually looks like the edges have been flattened.
|
||||||
|
|
||||||
|
8 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Material Editor & Shader Overview
|
||||||
|
|
||||||
|
Lighting Panel
|
||||||
|
The lighting settings controls the appearance of the bevel, bump and
|
||||||
|
environmental mapping.
|
||||||
|
Light Angle - Controls the angle of the light.
|
||||||
|
Specular Color - Determines the color of the specular highlights.
|
||||||
|
Specular Power - Controls the strength of the specular highlights.
|
||||||
|
Reflectivity Power - Controls the amount of light being reflected.
|
||||||
|
Diffuse Shadow - Increase or decrease the amount of light received
|
||||||
|
by the object.
|
||||||
|
Ambient Shadow - Controls how pronounced the light and bevel
|
||||||
|
edges appear.
|
||||||
|
|
||||||
|
BumpMap Panel
|
||||||
|
Texture - The normal map to be applied to the text object.
|
||||||
|
Face - Controls the amount of bump mapping to be applied to the
|
||||||
|
face of the characters.
|
||||||
|
Outline - The amount of bump mapping applied to the Outline of the
|
||||||
|
characters.
|
||||||
|
|
||||||
|
EnvMap Panel
|
||||||
|
Color - The color will brighten, darken or tint the environmental map.
|
||||||
|
Default color is black which leaves the text object unaffected.
|
||||||
|
Texture - The Cube map to be applied to the text object.
|
||||||
|
|
||||||
|
Glow Panel
|
||||||
|
Color - The color and transparency of the Glow.
|
||||||
|
Offset - Controls the position of the glow. A value of 0.0 is on the
|
||||||
|
edge of the face of the character.
|
||||||
|
Inner - Controls how far the Glow effect extends towards the inside
|
||||||
|
of the face.
|
||||||
|
Outer - Controls how far the Glow effect extends towards the outside
|
||||||
|
of the face.
|
||||||
|
Power - Controls the amount of Glow.
|
||||||
|
|
||||||
|
9 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Font Asset Creator
|
||||||
|
|
||||||
|
Font Asset Creator Overview
|
||||||
|
|
||||||
|
To access TextMesh Pro’s Font Asset Creator go to: “Window->TextMeshPro Font Asset
|
||||||
|
Creator”. The following video provides a detailed overview of the Font Asset Creation Process.
|
||||||
|
|
||||||
|
Online documentation is also available on
|
||||||
|
this topic at this location.
|
||||||
|
It is also strongly recommended that you
|
||||||
|
video the following video about Creating &
|
||||||
|
Working with Material Presets with TextMesh
|
||||||
|
Pro.
|
||||||
|
|
||||||
|
Font Settings
|
||||||
|
|
||||||
|
The Font Settings panel is where the font for which a font asset is to be created is selected along
|
||||||
|
with various settings.
|
||||||
|
Font Source is where the font for which an asset is to be created is
|
||||||
|
|
||||||
|
selected.
|
||||||
|
Point Size determines at what point size the font will be created.
|
||||||
|
You can either manually select the size of the font or use the Auto
|
||||||
|
Sizing mode which will find the largest possible font size to fit in the
|
||||||
|
given Atlas Resolution. It is recommended to use Auto Sizing.
|
||||||
|
Font Padding determines how much space in pixel units between
|
||||||
|
each character. Font Padding also determines the spread used in the
|
||||||
|
Signed Distance Field Font Render Mode. For an Atlas Resolution of
|
||||||
|
512 X 512, a value of 5 for padding is generally adequate.
|
||||||
|
Atlas Resolution determines the size of the Font Atlas. For most fonts
|
||||||
|
which include the full ASCII character set, a size of 512 X 512 works usually
|
||||||
|
well for Signed Distance Field Render Mode.
|
||||||
|
Character Set determines what characters will be included in the font atlas.
|
||||||
|
|
||||||
|
10 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Font Asset Creator
|
||||||
|
|
||||||
|
Custom Range allows you to define a range that represents
|
||||||
|
which characters to be included. To define a range the includes
|
||||||
|
the ASCII set + Latin supplemental characters, a user would enter
|
||||||
|
32-126, 161-255 in the Custom Range window.
|
||||||
|
|
||||||
|
Custom Characters allows the user to specify characters to
|
||||||
|
include by typing them Custom Character window.
|
||||||
|
|
||||||
|
Characters from File enables a user to supply a plain text file that
|
||||||
|
contains all the characters to be included in the atlas.
|
||||||
|
|
||||||
|
Font Style allows the user to select if the characters will be
|
||||||
|
created as bold, italics or as an outline as well as defining the
|
||||||
|
thickness of the outline or boldness. Keep in mind that this is
|
||||||
|
mostly useful for normal bitmap fonts. Since Signed Distance
|
||||||
|
Field font rendering enables the creation of bold or an outline
|
||||||
|
dynamically these style options are fun to experiment with but
|
||||||
|
not essential.
|
||||||
|
|
||||||
|
Font Render Mode determines how the characters will be
|
||||||
|
rendered.
|
||||||
|
|
||||||
|
Hinted Smooth is anti-aliased rendering with hinting.
|
||||||
|
|
||||||
|
Smooth is the same without hinting.
|
||||||
|
|
||||||
|
Raster Hinted renders the characters without anti-aliasing with
|
||||||
|
hinting.
|
||||||
|
|
||||||
|
Raster is no anti-aliasing or hinting.
|
||||||
|
|
||||||
|
Signed Distance Field 16 is the standard mode for creating a
|
||||||
|
SDF Atlas. The font will be up sampled 16X to produce a more
|
||||||
|
accurate Signed Distance Field Atlas.
|
||||||
|
|
||||||
|
Signed Distance Field 32 is the same as above but with 32X up sampling. Using this mode will result in a more
|
||||||
|
accurate SDF Atlas which although more accurate may deliver only subtle visual improvements. This options should
|
||||||
|
mostly be used when trying to fit a full ASCII set into a small 256 X 256 atlas or when dealing with a complex shaped
|
||||||
|
font with high frequency curve changes. Note: This processing mode will be significantly slower than the 16X mode.
|
||||||
|
|
||||||
|
Note: Padding represents the spread that will be used in the creation of the SDF Atlas. The larger the spread the longer it will
|
||||||
|
take to process the atlas. Higher spread provides for better control over outline thickness, bevel and glow “tweak-ability” but will
|
||||||
|
result in the characters being smaller in the atlas. Smaller point size means potentially less sampling points and perhaps not as
|
||||||
|
good contour accuracy. It is a trade off or balance between those two. Typically a Spread or padding of 5 is good for normal text
|
||||||
|
and Spread of 7 for things like titles which typically have larger outline, bevel and glow options.
|
||||||
|
|
||||||
|
Get Kerning Pairs determines if the kerning pairs that may exist in the font file will be added to the font asset. In the
|
||||||
|
event no kerning pairs are found in the font file, new kerning pairs can always be added in the TextMeshPro Font
|
||||||
|
Asset Editor Panel.
|
||||||
|
|
||||||
|
11 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Font Asset Creator
|
||||||
|
|
||||||
|
Generate Font Atlas will get the font engine to render the select font / characters.
|
||||||
|
Save TextMeshPro Font Asset will bring up a file requester allowing you to choose a file location and a name for
|
||||||
|
the newly created asset. By default the font name will be that of the font name. When using Signed Distance Field
|
||||||
|
Render Mode, this name will be Font Name with SDF added. We recommend you save your font assets in the
|
||||||
|
“Assets/Resources/Fonts/...” or create such folder structure if one does not exists. As text objects are frequently
|
||||||
|
created via scripts which results in font assets not being referenced by any scene objects, this guarantees your fonts
|
||||||
|
assets will be include in the build and available.
|
||||||
|
|
||||||
|
12 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Font Asset
|
||||||
|
|
||||||
|
Font Asset
|
||||||
|
|
||||||
|
TextMesh Pro uses a custom font asset which contains
|
||||||
|
information necessary to display the font. The font asset is
|
||||||
|
divided into five sections which are as follows:
|
||||||
|
Face Info contains information specific to the font that was
|
||||||
|
rendered using the Font Asset Creator. This includes the
|
||||||
|
follow information:
|
||||||
|
|
||||||
|
Font Source - The name of the font.
|
||||||
|
Font Size - The point size at which the font was renderer in the font
|
||||||
|
atlas.
|
||||||
|
Line Height - This is the spacing between each lines of text.
|
||||||
|
Baseline - The position where the characters “sit” on the line.
|
||||||
|
Ascender - The highest point of any characters in the font.
|
||||||
|
Descender - The lowest point of any characters in the font.
|
||||||
|
Underline - The position of the underline.
|
||||||
|
Width & Height - The width and height of the font atlas.
|
||||||
|
|
||||||
|
Font Sub-Assets displays the sub assets that are part of the
|
||||||
|
custom font.
|
||||||
|
|
||||||
|
Font Atlas - Texture which contains all the characters of the font. This
|
||||||
|
texture is specific to such font.
|
||||||
|
Font Material - Default material for this font which holds a reference to the Font Atlas texture.
|
||||||
|
|
||||||
|
Face Style contains style properties for the font.
|
||||||
|
|
||||||
|
Normal & Bold weight - This defines the normal & bold weight of the font.
|
||||||
|
Italic Style - Defines the slant of italic.
|
||||||
|
|
||||||
|
13 / 14
|
||||||
|
TextMesh Pro!
|
||||||
|
|
||||||
|
User Guide / Font Asset
|
||||||
|
|
||||||
|
Glyph Info contains specific information about each
|
||||||
|
character in the font.
|
||||||
|
|
||||||
|
ASC II & Char - The ASC II code and Character.
|
||||||
|
X & Y - The X and Y position of the character in the font atlas.
|
||||||
|
W & H - The Width and Height of the character in the font atlas.
|
||||||
|
Offsets - The X Offset is where the character is drawn relative to (0, 0).
|
||||||
|
The Y offset represents where the top of the character is located relative
|
||||||
|
to the baseline or (0, 0). The Advance is how far to advance after this
|
||||||
|
character.
|
||||||
|
|
||||||
|
Kerning Table Info contains the kerning information for the
|
||||||
|
font. Kerning data can either import at font creation time or
|
||||||
|
added manually using this panel.
|
||||||
|
|
||||||
|
Left Char - The left character part of the pair.
|
||||||
|
Right Char - The right character part of the pair.
|
||||||
|
Offset - The offset between the left and right character.
|
||||||
|
|
||||||
|
14 / 14
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b8d251f9af63b746bf2f7ffe00ebb9b
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/TextMesh Pro/Fonts.meta
Normal file
8
Assets/TextMesh Pro/Fonts.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6ab70aee4d56447429c680537fbf93ed
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
46
Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt
Normal file
46
Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
Digitized data copyright (c) 2010 Google Corporation
|
||||||
|
with Reserved Font Arimo, Tinos and Cousine.
|
||||||
|
Copyright (c) 2012 Red Hat, Inc.
|
||||||
|
with Reserved Font Name Liberation.
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
8
Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta
Normal file
8
Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6e59c59b81ab47f9b6ec5781fa725d2c
|
||||||
|
timeCreated: 1484171296
|
||||||
|
licenseType: Pro
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/TextMesh Pro/Fonts/LiberationSans.ttf
Normal file
BIN
Assets/TextMesh Pro/Fonts/LiberationSans.ttf
Normal file
Binary file not shown.
19
Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta
Normal file
19
Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3265ab4bf004d28a9537516768c1c75
|
||||||
|
timeCreated: 1484171297
|
||||||
|
licenseType: Pro
|
||||||
|
TrueTypeFontImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
fontSize: 16
|
||||||
|
forceTextureCase: -2
|
||||||
|
characterSpacing: 1
|
||||||
|
characterPadding: 0
|
||||||
|
includeFontData: 1
|
||||||
|
use2xBehaviour: 0
|
||||||
|
fontNames: []
|
||||||
|
fallbackFontReferences: []
|
||||||
|
customCharacters:
|
||||||
|
fontRenderingMode: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/TextMesh Pro/Resources.meta
Normal file
8
Assets/TextMesh Pro/Resources.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 243e06394e614e5d99fab26083b707fa
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
9
Assets/TextMesh Pro/Resources/Fonts & Materials.meta
Normal file
9
Assets/TextMesh Pro/Resources/Fonts & Materials.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 731f1baa9d144a9897cb1d341c2092b8
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1442040525
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,106 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: LiberationSans SDF - Drop Shadow
|
||||||
|
m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
|
||||||
|
m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
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}
|
||||||
|
- _Cube:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 28684132378477856, guid: 8f586378b4e144a9851e7b34d9b748ee,
|
||||||
|
type: 2}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OutlineTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _DiffusePower: 1
|
||||||
|
- _FaceDilate: 0.1
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0.1
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.9
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.64125
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 1024
|
||||||
|
- _TextureWidth: 1024
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0.5
|
||||||
|
- _UnderlayOffsetY: -0.5
|
||||||
|
- _UnderlaySoftness: 0.05
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e73a58f6e2794ae7b1b7e50b7fb811b0
|
||||||
|
timeCreated: 1484172806
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,343 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2180264
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: LiberationSans SDF Material
|
||||||
|
m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 1
|
||||||
|
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}
|
||||||
|
- _Cube:
|
||||||
|
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}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 28268798066460806}
|
||||||
|
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}
|
||||||
|
- _OutlineTex:
|
||||||
|
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:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _CullMode: 0
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _FaceDilate: 0
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.90909094
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.7386364
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 512
|
||||||
|
- _TextureWidth: 512
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0
|
||||||
|
- _UnderlayOffsetY: 0
|
||||||
|
- _UnderlaySoftness: 0
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||||
|
--- !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: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
|
||||||
|
m_Name: LiberationSans SDF - Fallback
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
hashCode: -1699145518
|
||||||
|
material: {fileID: 2180264}
|
||||||
|
materialHashCode: 462855346
|
||||||
|
m_Version: 1.1.0
|
||||||
|
m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75
|
||||||
|
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75,
|
||||||
|
type: 3}
|
||||||
|
m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3}
|
||||||
|
m_AtlasPopulationMode: 1
|
||||||
|
m_FaceInfo:
|
||||||
|
m_FamilyName: Liberation Sans
|
||||||
|
m_StyleName: Regular
|
||||||
|
m_PointSize: 86
|
||||||
|
m_Scale: 1
|
||||||
|
m_LineHeight: 98.8916
|
||||||
|
m_AscentLine: 77.853516
|
||||||
|
m_CapLine: 59
|
||||||
|
m_MeanLine: 45
|
||||||
|
m_Baseline: 0
|
||||||
|
m_DescentLine: -18.22461
|
||||||
|
m_SuperscriptOffset: 77.853516
|
||||||
|
m_SuperscriptSize: 0.5
|
||||||
|
m_SubscriptOffset: -18.22461
|
||||||
|
m_SubscriptSize: 0.5
|
||||||
|
m_UnderlineOffset: -12.261719
|
||||||
|
m_UnderlineThickness: 6.298828
|
||||||
|
m_StrikethroughOffset: 18
|
||||||
|
m_StrikethroughThickness: 6.298828
|
||||||
|
m_TabWidth: 24
|
||||||
|
m_GlyphTable: []
|
||||||
|
m_CharacterTable: []
|
||||||
|
m_AtlasTextures:
|
||||||
|
- {fileID: 28268798066460806}
|
||||||
|
m_AtlasTextureIndex: 0
|
||||||
|
m_IsMultiAtlasTexturesEnabled: 0
|
||||||
|
m_ClearDynamicDataOnBuild: 1
|
||||||
|
m_UsedGlyphRects: []
|
||||||
|
m_FreeGlyphRects:
|
||||||
|
- m_X: 0
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 511
|
||||||
|
m_Height: 511
|
||||||
|
m_fontInfo:
|
||||||
|
Name: Liberation Sans
|
||||||
|
PointSize: 86
|
||||||
|
Scale: 1
|
||||||
|
CharacterCount: 250
|
||||||
|
LineHeight: 98.90625
|
||||||
|
Baseline: 0
|
||||||
|
Ascender: 77.84375
|
||||||
|
CapHeight: 59.1875
|
||||||
|
Descender: -18.21875
|
||||||
|
CenterLine: 0
|
||||||
|
SuperscriptOffset: 77.84375
|
||||||
|
SubscriptOffset: -12.261719
|
||||||
|
SubSize: 0.5
|
||||||
|
Underline: -12.261719
|
||||||
|
UnderlineThickness: 6.298828
|
||||||
|
strikethrough: 23.675
|
||||||
|
strikethroughThickness: 0
|
||||||
|
TabWidth: 239.0625
|
||||||
|
Padding: 9
|
||||||
|
AtlasWidth: 1024
|
||||||
|
AtlasHeight: 1024
|
||||||
|
atlas: {fileID: 0}
|
||||||
|
m_AtlasWidth: 512
|
||||||
|
m_AtlasHeight: 512
|
||||||
|
m_AtlasPadding: 9
|
||||||
|
m_AtlasRenderMode: 4169
|
||||||
|
m_glyphInfoList: []
|
||||||
|
m_KerningTable:
|
||||||
|
kerningPairs: []
|
||||||
|
m_FontFeatureTable:
|
||||||
|
m_GlyphPairAdjustmentRecords: []
|
||||||
|
fallbackFontAssets: []
|
||||||
|
m_FallbackFontAssetTable: []
|
||||||
|
m_CreationSettings:
|
||||||
|
sourceFontFileName:
|
||||||
|
sourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75
|
||||||
|
pointSizeSamplingMode: 0
|
||||||
|
pointSize: 86
|
||||||
|
padding: 9
|
||||||
|
packingMode: 4
|
||||||
|
atlasWidth: 512
|
||||||
|
atlasHeight: 512
|
||||||
|
characterSetSelectionMode: 1
|
||||||
|
characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633
|
||||||
|
referencedFontAssetGUID: 8f586378b4e144a9851e7b34d9b748ee
|
||||||
|
referencedTextAssetGUID:
|
||||||
|
fontStyle: 0
|
||||||
|
fontStyleModifier: 0
|
||||||
|
renderMode: 4169
|
||||||
|
includeFontFeatures: 1
|
||||||
|
m_FontWeightTable:
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
fontWeights:
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
- regularTypeface: {fileID: 0}
|
||||||
|
italicTypeface: {fileID: 0}
|
||||||
|
normalStyle: 0
|
||||||
|
normalSpacingOffset: 0
|
||||||
|
boldStyle: 0.75
|
||||||
|
boldSpacing: 7
|
||||||
|
italicStyle: 35
|
||||||
|
tabSize: 10
|
||||||
|
--- !u!28 &28268798066460806
|
||||||
|
Texture2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: LiberationSans SDF Atlas
|
||||||
|
m_ImageContentsHash:
|
||||||
|
serializedVersion: 2
|
||||||
|
Hash: 00000000000000000000000000000000
|
||||||
|
m_ForcedFallbackFormat: 4
|
||||||
|
m_DownscaleFallback: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Width: 0
|
||||||
|
m_Height: 0
|
||||||
|
m_CompleteImageSize: 0
|
||||||
|
m_TextureFormat: 1
|
||||||
|
m_MipCount: 1
|
||||||
|
m_IsReadable: 1
|
||||||
|
m_StreamingMipmaps: 0
|
||||||
|
m_StreamingMipmapsPriority: 0
|
||||||
|
m_AlphaIsTransparency: 0
|
||||||
|
m_ImageCount: 1
|
||||||
|
m_TextureDimension: 2
|
||||||
|
m_TextureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_FilterMode: 1
|
||||||
|
m_Aniso: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_WrapU: 0
|
||||||
|
m_WrapV: 0
|
||||||
|
m_WrapW: 0
|
||||||
|
m_LightmapFormat: 0
|
||||||
|
m_ColorSpace: 0
|
||||||
|
image data: 0
|
||||||
|
_typelessdata:
|
||||||
|
m_StreamData:
|
||||||
|
offset: 0
|
||||||
|
size: 0
|
||||||
|
path:
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2e498d1c8094910479dc3e1b768306a4
|
||||||
|
timeCreated: 1484171803
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,104 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: LiberationSans SDF - Outline
|
||||||
|
m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
|
||||||
|
m_ShaderKeywords: OUTLINE_ON
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
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}
|
||||||
|
- _Cube:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _FaceTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 28684132378477856, guid: 8f586378b4e144a9851e7b34d9b748ee,
|
||||||
|
type: 2}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OutlineTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _Ambient: 0.5
|
||||||
|
- _Bevel: 0.5
|
||||||
|
- _BevelClamp: 0
|
||||||
|
- _BevelOffset: 0
|
||||||
|
- _BevelRoundness: 0
|
||||||
|
- _BevelWidth: 0
|
||||||
|
- _BumpFace: 0
|
||||||
|
- _BumpOutline: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Diffuse: 0.5
|
||||||
|
- _FaceDilate: 0.1
|
||||||
|
- _FaceUVSpeedX: 0
|
||||||
|
- _FaceUVSpeedY: 0
|
||||||
|
- _GlowInner: 0.05
|
||||||
|
- _GlowOffset: 0
|
||||||
|
- _GlowOuter: 0.05
|
||||||
|
- _GlowPower: 0.75
|
||||||
|
- _GradientScale: 10
|
||||||
|
- _LightAngle: 3.1416
|
||||||
|
- _MaskSoftnessX: 0
|
||||||
|
- _MaskSoftnessY: 0
|
||||||
|
- _OutlineSoftness: 0
|
||||||
|
- _OutlineUVSpeedX: 0
|
||||||
|
- _OutlineUVSpeedY: 0
|
||||||
|
- _OutlineWidth: 0.1
|
||||||
|
- _PerspectiveFilter: 0.875
|
||||||
|
- _Reflectivity: 10
|
||||||
|
- _ScaleRatioA: 0.9
|
||||||
|
- _ScaleRatioB: 0.73125
|
||||||
|
- _ScaleRatioC: 0.64125
|
||||||
|
- _ScaleX: 1
|
||||||
|
- _ScaleY: 1
|
||||||
|
- _ShaderFlags: 0
|
||||||
|
- _Sharpness: 0
|
||||||
|
- _SpecularPower: 2
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _TextureHeight: 1024
|
||||||
|
- _TextureWidth: 1024
|
||||||
|
- _UnderlayDilate: 0
|
||||||
|
- _UnderlayOffsetX: 0
|
||||||
|
- _UnderlayOffsetY: 0
|
||||||
|
- _UnderlaySoftness: 0
|
||||||
|
- _VertexOffsetX: 0
|
||||||
|
- _VertexOffsetY: 0
|
||||||
|
- _WeightBold: 0.75
|
||||||
|
- _WeightNormal: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||||
|
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
|
||||||
|
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||||
|
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 79459efec17a4d00a321bdcc27bbc385
|
||||||
|
timeCreated: 1484172856
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f586378b4e144a9851e7b34d9b748ee
|
||||||
|
timeCreated: 1484171803
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1 @@
|
|||||||
|
)]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,.
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fade42e8bc714b018fac513c043d323b
|
||||||
|
timeCreated: 1425440388
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1 @@
|
|||||||
|
([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇$¥₩ #
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d82c1b31c7e74239bff1220585707d2b
|
||||||
|
timeCreated: 1425440388
|
||||||
|
licenseType: Store
|
||||||
|
TextScriptImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
9
Assets/TextMesh Pro/Resources/Sprite Assets.meta
Normal file
9
Assets/TextMesh Pro/Resources/Sprite Assets.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 512a49d95c0c4332bdd98131869c23c9
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1441876896
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
659
Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset
Normal file
659
Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset
Normal file
@ -0,0 +1,659 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2103686
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: TextMeshPro/Sprite
|
||||||
|
m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3}
|
||||||
|
m_ShaderKeywords: UNITY_UI_CLIP_RECT
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _CullMode: 0
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
m_Colors:
|
||||||
|
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
--- !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: 84a92b25f83d49b9bc132d206b370281, type: 3}
|
||||||
|
m_Name: EmojiOne
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
hashCode: -1836805472
|
||||||
|
material: {fileID: 2103686}
|
||||||
|
materialHashCode: 0
|
||||||
|
m_Version: 1.1.0
|
||||||
|
m_FaceInfo:
|
||||||
|
m_FamilyName:
|
||||||
|
m_StyleName:
|
||||||
|
m_PointSize: 0
|
||||||
|
m_Scale: 0
|
||||||
|
m_LineHeight: 0
|
||||||
|
m_AscentLine: 0
|
||||||
|
m_CapLine: 0
|
||||||
|
m_MeanLine: 0
|
||||||
|
m_Baseline: 0
|
||||||
|
m_DescentLine: 0
|
||||||
|
m_SuperscriptOffset: 0
|
||||||
|
m_SuperscriptSize: 0
|
||||||
|
m_SubscriptOffset: 0
|
||||||
|
m_SubscriptSize: 0
|
||||||
|
m_UnderlineOffset: 0
|
||||||
|
m_UnderlineThickness: 0
|
||||||
|
m_StrikethroughOffset: 0
|
||||||
|
m_StrikethroughThickness: 0
|
||||||
|
m_TabWidth: 0
|
||||||
|
spriteSheet: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3}
|
||||||
|
m_SpriteCharacterTable:
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128522
|
||||||
|
m_GlyphIndex: 0
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: Smiling face with smiling eyes
|
||||||
|
m_HashCode: -1318250903
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128523
|
||||||
|
m_GlyphIndex: 1
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f60b
|
||||||
|
m_HashCode: 57188339
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128525
|
||||||
|
m_GlyphIndex: 2
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f60d
|
||||||
|
m_HashCode: 57188341
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128526
|
||||||
|
m_GlyphIndex: 3
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f60e
|
||||||
|
m_HashCode: 57188340
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128512
|
||||||
|
m_GlyphIndex: 4
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: Grinning face
|
||||||
|
m_HashCode: -95541379
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128513
|
||||||
|
m_GlyphIndex: 5
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f601
|
||||||
|
m_HashCode: 57188256
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128514
|
||||||
|
m_GlyphIndex: 6
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: Face with tears of joy
|
||||||
|
m_HashCode: 239522663
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128515
|
||||||
|
m_GlyphIndex: 7
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f603
|
||||||
|
m_HashCode: 57188258
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128516
|
||||||
|
m_GlyphIndex: 8
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f604
|
||||||
|
m_HashCode: 57188261
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128517
|
||||||
|
m_GlyphIndex: 9
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f605
|
||||||
|
m_HashCode: 57188260
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128518
|
||||||
|
m_GlyphIndex: 10
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f606
|
||||||
|
m_HashCode: 57188263
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 128521
|
||||||
|
m_GlyphIndex: 11
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f609
|
||||||
|
m_HashCode: 57188264
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 0
|
||||||
|
m_GlyphIndex: 12
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: .notdef
|
||||||
|
m_HashCode: -600915428
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 129315
|
||||||
|
m_GlyphIndex: 13
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 1f923
|
||||||
|
m_HashCode: 57200239
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 9786
|
||||||
|
m_GlyphIndex: 14
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 263a
|
||||||
|
m_HashCode: 1748406
|
||||||
|
- m_ElementType: 2
|
||||||
|
m_Unicode: 9785
|
||||||
|
m_GlyphIndex: 15
|
||||||
|
m_Scale: 1
|
||||||
|
m_Name: 2639
|
||||||
|
m_HashCode: 1748462
|
||||||
|
m_SpriteGlyphTable:
|
||||||
|
- m_Index: 0
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 0
|
||||||
|
m_Y: 384
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 1
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 128
|
||||||
|
m_Y: 384
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 2
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 256
|
||||||
|
m_Y: 384
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 3
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 384
|
||||||
|
m_Y: 384
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 4
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 0
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 5
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 128
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 6
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 256
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 7
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 384
|
||||||
|
m_Y: 256
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 8
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 0
|
||||||
|
m_Y: 128
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 9
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 128
|
||||||
|
m_Y: 128
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 10
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 256
|
||||||
|
m_Y: 128
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 11
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 384
|
||||||
|
m_Y: 128
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 12
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 0
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 13
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 128
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 14
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 256
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- m_Index: 15
|
||||||
|
m_Metrics:
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_HorizontalBearingX: 0
|
||||||
|
m_HorizontalBearingY: 115.6
|
||||||
|
m_HorizontalAdvance: 128
|
||||||
|
m_GlyphRect:
|
||||||
|
m_X: 384
|
||||||
|
m_Y: 0
|
||||||
|
m_Width: 128
|
||||||
|
m_Height: 128
|
||||||
|
m_Scale: 1
|
||||||
|
m_AtlasIndex: 0
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
spriteInfoList:
|
||||||
|
- id: 0
|
||||||
|
x: 0
|
||||||
|
y: 384
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: Smiling face with smiling eyes
|
||||||
|
hashCode: -1318250903
|
||||||
|
unicode: 128522
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 1
|
||||||
|
x: 128
|
||||||
|
y: 384
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f60b
|
||||||
|
hashCode: 57188339
|
||||||
|
unicode: 128523
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 2
|
||||||
|
x: 256
|
||||||
|
y: 384
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f60d
|
||||||
|
hashCode: 57188341
|
||||||
|
unicode: 128525
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 3
|
||||||
|
x: 384
|
||||||
|
y: 384
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f60e
|
||||||
|
hashCode: 57188340
|
||||||
|
unicode: 128526
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 4
|
||||||
|
x: 0
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: Grinning face
|
||||||
|
hashCode: -95541379
|
||||||
|
unicode: 128512
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 5
|
||||||
|
x: 128
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f601
|
||||||
|
hashCode: 57188256
|
||||||
|
unicode: 128513
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 6
|
||||||
|
x: 256
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: Face with tears of joy
|
||||||
|
hashCode: 239522663
|
||||||
|
unicode: 128514
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 7
|
||||||
|
x: 384
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f603
|
||||||
|
hashCode: 57188258
|
||||||
|
unicode: 128515
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 8
|
||||||
|
x: 0
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f604
|
||||||
|
hashCode: 57188261
|
||||||
|
unicode: 128516
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 9
|
||||||
|
x: 128
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f605
|
||||||
|
hashCode: 57188260
|
||||||
|
unicode: 128517
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 10
|
||||||
|
x: 256
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f606
|
||||||
|
hashCode: 57188263
|
||||||
|
unicode: 128518
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 11
|
||||||
|
x: 384
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f609
|
||||||
|
hashCode: 57188264
|
||||||
|
unicode: 128521
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 12
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f618
|
||||||
|
hashCode: 57188168
|
||||||
|
unicode: 128536
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 13
|
||||||
|
x: 128
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 1f923
|
||||||
|
hashCode: 57200239
|
||||||
|
unicode: 129315
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 14
|
||||||
|
x: 256
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 263a
|
||||||
|
hashCode: 1748406
|
||||||
|
unicode: 9786
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
- id: 15
|
||||||
|
x: 384
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
xOffset: 0
|
||||||
|
yOffset: 115.6
|
||||||
|
xAdvance: 128
|
||||||
|
scale: 1
|
||||||
|
name: 2639
|
||||||
|
hashCode: 1748462
|
||||||
|
unicode: 9785
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
sprite: {fileID: 0}
|
||||||
|
fallbackSpriteAssets: []
|
||||||
|
--- !u!21 &1369835458
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: TextMeshPro/Sprite
|
||||||
|
m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs: []
|
||||||
|
m_Floats: []
|
||||||
|
m_Colors: []
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c41005c129ba4d66911b75229fd70b45
|
||||||
|
timeCreated: 1480316912
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
9
Assets/TextMesh Pro/Resources/Style Sheets.meta
Normal file
9
Assets/TextMesh Pro/Resources/Style Sheets.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4aecb92fff08436c8303b10eab8da368
|
||||||
|
folderAsset: yes
|
||||||
|
timeCreated: 1441876950
|
||||||
|
licenseType: Pro
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,68 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ab2114bdc8544297b417dfefe9f1e410, type: 3}
|
||||||
|
m_Name: Default Style Sheet
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_StyleList:
|
||||||
|
- m_Name: H1
|
||||||
|
m_HashCode: 2425
|
||||||
|
m_OpeningDefinition: <size=2em><b><#40ff80>*
|
||||||
|
m_ClosingDefinition: '*</size></b></color>'
|
||||||
|
m_OpeningTagArray: 3c00000073000000690000007a000000650000003d00000032000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000660000006600000038000000300000003e0000002a000000
|
||||||
|
m_ClosingTagArray: 2a0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000
|
||||||
|
- m_Name: Quote
|
||||||
|
m_HashCode: 92254330
|
||||||
|
m_OpeningDefinition: <i><size=75%><margin=10%>
|
||||||
|
m_ClosingDefinition: </i></size></width></margin>
|
||||||
|
m_OpeningTagArray: 3c000000690000003e0000003c00000073000000690000007a000000650000003d0000003700000035000000250000003e0000003c0000006d000000610000007200000067000000690000006e0000003d0000003100000030000000250000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f000000690000003e0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f00000077000000690000006400000074000000680000003e0000003c0000002f0000006d000000610000007200000067000000690000006e0000003e000000
|
||||||
|
- m_Name: Link
|
||||||
|
m_HashCode: 2687968
|
||||||
|
m_OpeningDefinition: <u><#40a0ff><link="ID_01">
|
||||||
|
m_ClosingDefinition: </u></color></link>
|
||||||
|
m_OpeningTagArray: 3c000000750000003e0000003c000000230000003400000030000000610000003000000066000000660000003e0000003c0000006c000000690000006e0000006b0000003d0000002200000049000000440000005f0000003000000031000000220000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f000000750000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f0000006c000000690000006e0000006b0000003e000000
|
||||||
|
- m_Name: Title
|
||||||
|
m_HashCode: 98732960
|
||||||
|
m_OpeningDefinition: <size=125%><b><align=center>
|
||||||
|
m_ClosingDefinition: </size></b></align>
|
||||||
|
m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e0000003c000000620000003e0000003c000000610000006c00000069000000670000006e0000003d00000063000000650000006e0000007400000065000000720000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000610000006c00000069000000670000006e0000003e000000
|
||||||
|
- m_Name: H2
|
||||||
|
m_HashCode: 2426
|
||||||
|
m_OpeningDefinition: <size=1.5em><b><#4080FF>
|
||||||
|
m_ClosingDefinition: </size></b></color>
|
||||||
|
m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e00000035000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000380000003000000046000000460000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000
|
||||||
|
- m_Name: H3
|
||||||
|
m_HashCode: 2427
|
||||||
|
m_OpeningDefinition: <size=1.17em><b><#FF8040>
|
||||||
|
m_ClosingDefinition: </size></b></color>
|
||||||
|
m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e0000003100000037000000650000006d0000003e0000003c000000620000003e0000003c000000230000004600000046000000380000003000000034000000300000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000
|
||||||
|
- m_Name: C1
|
||||||
|
m_HashCode: 2194
|
||||||
|
m_OpeningDefinition: <color=#ffff40>
|
||||||
|
m_ClosingDefinition: </color>
|
||||||
|
m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000660000006600000034000000300000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e000000
|
||||||
|
- m_Name: C2
|
||||||
|
m_HashCode: 2193
|
||||||
|
m_OpeningDefinition: <color=#ff40FF><size=125%>
|
||||||
|
m_ClosingDefinition: </color></size>
|
||||||
|
m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000340000003000000046000000460000003e0000003c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f00000073000000690000007a000000650000003e000000
|
||||||
|
- m_Name: C3
|
||||||
|
m_HashCode: 2192
|
||||||
|
m_OpeningDefinition: <color=#80A0FF><b>
|
||||||
|
m_ClosingDefinition: </color></b>
|
||||||
|
m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000003800000030000000410000003000000046000000460000003e0000003c000000620000003e000000
|
||||||
|
m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f000000620000003e000000
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f952c082cb03451daed3ee968ac6c63e
|
||||||
|
timeCreated: 1432805430
|
||||||
|
licenseType: Store
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
46
Assets/TextMesh Pro/Resources/TMP Settings.asset
Normal file
46
Assets/TextMesh Pro/Resources/TMP Settings.asset
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
%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: 2705215ac5b84b70bacc50632be6e391, type: 3}
|
||||||
|
m_Name: TMP Settings
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_enableWordWrapping: 1
|
||||||
|
m_enableKerning: 1
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
m_enableTintAllSprites: 0
|
||||||
|
m_enableParseEscapeCharacters: 1
|
||||||
|
m_EnableRaycastTarget: 1
|
||||||
|
m_GetFontFeaturesAtRuntime: 1
|
||||||
|
m_missingGlyphCharacter: 0
|
||||||
|
m_warningsDisabled: 0
|
||||||
|
m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||||
|
m_defaultFontAssetPath: Fonts & Materials/
|
||||||
|
m_defaultFontSize: 36
|
||||||
|
m_defaultAutoSizeMinRatio: 0.5
|
||||||
|
m_defaultAutoSizeMaxRatio: 2
|
||||||
|
m_defaultTextMeshProTextContainerSize: {x: 20, y: 5}
|
||||||
|
m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50}
|
||||||
|
m_autoSizeTextContainer: 0
|
||||||
|
m_fallbackFontAssets: []
|
||||||
|
m_matchMaterialPreset: 1
|
||||||
|
m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45,
|
||||||
|
type: 2}
|
||||||
|
m_defaultSpriteAssetPath: Sprite Assets/
|
||||||
|
m_enableEmojiSupport: 1
|
||||||
|
m_MissingCharacterSpriteUnicode: 0
|
||||||
|
m_defaultColorGradientPresetsPath: Color Gradient Presets/
|
||||||
|
m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e,
|
||||||
|
type: 2}
|
||||||
|
m_StyleSheetsResourcePath:
|
||||||
|
m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3}
|
||||||
|
m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b,
|
||||||
|
type: 3}
|
||||||
|
m_UseModernHangulLineBreakingRules: 0
|
8
Assets/TextMesh Pro/Resources/TMP Settings.asset.meta
Normal file
8
Assets/TextMesh Pro/Resources/TMP Settings.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3f5b5dff67a942289a9defa416b206f3
|
||||||
|
timeCreated: 1436653997
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/TextMesh Pro/Shaders.meta
Normal file
8
Assets/TextMesh Pro/Shaders.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9f693669af91aa45ad615fc681ed29f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
143
Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader
Normal file
143
Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
Shader "TextMeshPro/Bitmap Custom Atlas" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_FaceTex ("Font Texture", 2D) = "white" {}
|
||||||
|
[HDR]_FaceColor ("Text Color", Color) = (1,1,1,1)
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_Padding ("Padding", float) = 0
|
||||||
|
|
||||||
|
_StencilComp("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil("Stencil ID", Float) = 0
|
||||||
|
_StencilOp("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode("Cull Mode", Float) = 0
|
||||||
|
_ColorMask("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader{
|
||||||
|
|
||||||
|
Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref[_Stencil]
|
||||||
|
Comp[_StencilComp]
|
||||||
|
Pass[_StencilOp]
|
||||||
|
ReadMask[_StencilReadMask]
|
||||||
|
WriteMask[_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lighting Off
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
ZWrite Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend SrcAlpha OneMinusSrcAlpha
|
||||||
|
ColorMask[_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
|
struct appdata_t {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct v2f {
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
float4 mask : TEXCOORD2;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform sampler2D _MainTex;
|
||||||
|
uniform sampler2D _FaceTex;
|
||||||
|
uniform float4 _FaceTex_ST;
|
||||||
|
uniform fixed4 _FaceColor;
|
||||||
|
|
||||||
|
uniform float _VertexOffsetX;
|
||||||
|
uniform float _VertexOffsetY;
|
||||||
|
uniform float4 _ClipRect;
|
||||||
|
uniform float _MaskSoftnessX;
|
||||||
|
uniform float _MaskSoftnessY;
|
||||||
|
|
||||||
|
float2 UnpackUV(float uv)
|
||||||
|
{
|
||||||
|
float2 output;
|
||||||
|
output.x = floor(uv / 4096);
|
||||||
|
output.y = uv - 4096 * output.x;
|
||||||
|
|
||||||
|
return output * 0.001953125;
|
||||||
|
}
|
||||||
|
|
||||||
|
v2f vert (appdata_t v)
|
||||||
|
{
|
||||||
|
float4 vert = v.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
|
||||||
|
vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
|
||||||
|
|
||||||
|
float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
|
||||||
|
|
||||||
|
fixed4 faceColor = v.color;
|
||||||
|
faceColor *= _FaceColor;
|
||||||
|
|
||||||
|
v2f OUT;
|
||||||
|
OUT.vertex = vPosition;
|
||||||
|
OUT.color = faceColor;
|
||||||
|
OUT.texcoord0 = v.texcoord0;
|
||||||
|
OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
|
||||||
|
|
||||||
|
// Clamp _ClipRect to 16bit.
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
|
||||||
|
return OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixed4 frag (v2f IN) : SV_Target
|
||||||
|
{
|
||||||
|
fixed4 color = tex2D(_MainTex, IN.texcoord0) * tex2D(_FaceTex, IN.texcoord1) * IN.color;
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
|
||||||
|
color *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(color.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48bb5f55d8670e349b6e614913f9d910
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
145
Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader
Normal file
145
Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
Shader "TextMeshPro/Mobile/Bitmap" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
[HDR]_Color ("Text Color", Color) = (1,1,1,1)
|
||||||
|
_DiffusePower ("Diffuse Power", Range(1.0,4.0)) = 1.0
|
||||||
|
|
||||||
|
_VertexOffsetX("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY("Vertex OffsetY", float) = 0
|
||||||
|
_MaskSoftnessX("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
|
||||||
|
_StencilComp("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil("Stencil ID", Float) = 0
|
||||||
|
_StencilOp("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode("Cull Mode", Float) = 0
|
||||||
|
_ColorMask("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
|
||||||
|
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref[_Stencil]
|
||||||
|
Comp[_StencilComp]
|
||||||
|
Pass[_StencilOp]
|
||||||
|
ReadMask[_StencilReadMask]
|
||||||
|
WriteMask[_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lighting Off
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
ZWrite Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend SrcAlpha OneMinusSrcAlpha
|
||||||
|
ColorMask[_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma fragmentoption ARB_precision_hint_fastest
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
|
struct appdata_t {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct v2f {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float4 mask : TEXCOORD2;
|
||||||
|
};
|
||||||
|
|
||||||
|
sampler2D _MainTex;
|
||||||
|
fixed4 _Color;
|
||||||
|
float _DiffusePower;
|
||||||
|
|
||||||
|
uniform float _VertexOffsetX;
|
||||||
|
uniform float _VertexOffsetY;
|
||||||
|
uniform float4 _ClipRect;
|
||||||
|
uniform float _MaskSoftnessX;
|
||||||
|
uniform float _MaskSoftnessY;
|
||||||
|
|
||||||
|
v2f vert (appdata_t v)
|
||||||
|
{
|
||||||
|
v2f OUT;
|
||||||
|
float4 vert = v.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
|
||||||
|
vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
|
||||||
|
|
||||||
|
OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert));
|
||||||
|
OUT.color = v.color;
|
||||||
|
OUT.color *= _Color;
|
||||||
|
OUT.color.rgb *= _DiffusePower;
|
||||||
|
OUT.texcoord0 = v.texcoord0;
|
||||||
|
|
||||||
|
float2 pixelSize = OUT.vertex.w;
|
||||||
|
//pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
|
||||||
|
|
||||||
|
// Clamp _ClipRect to 16bit.
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
|
||||||
|
return OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixed4 frag (v2f IN) : COLOR
|
||||||
|
{
|
||||||
|
fixed4 color = fixed4(IN.color.rgb, IN.color.a * tex2D(_MainTex, IN.texcoord0).a);
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
|
||||||
|
color *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(color.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
|
||||||
|
Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off }
|
||||||
|
Blend SrcAlpha OneMinusSrcAlpha
|
||||||
|
BindChannels {
|
||||||
|
Bind "Color", color
|
||||||
|
Bind "Vertex", vertex
|
||||||
|
Bind "TexCoord", texcoord0
|
||||||
|
}
|
||||||
|
Pass {
|
||||||
|
SetTexture [_MainTex] {
|
||||||
|
constantColor [_Color] combine constant * primary, constant * texture
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1e3b057af24249748ff873be7fafee47
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
143
Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader
Normal file
143
Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
Shader "TextMeshPro/Bitmap" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_FaceTex ("Font Texture", 2D) = "white" {}
|
||||||
|
[HDR]_FaceColor ("Text Color", Color) = (1,1,1,1)
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
|
||||||
|
_StencilComp("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil("Stencil ID", Float) = 0
|
||||||
|
_StencilOp("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode("Cull Mode", Float) = 0
|
||||||
|
_ColorMask("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader{
|
||||||
|
|
||||||
|
Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref[_Stencil]
|
||||||
|
Comp[_StencilComp]
|
||||||
|
Pass[_StencilOp]
|
||||||
|
ReadMask[_StencilReadMask]
|
||||||
|
WriteMask[_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Lighting Off
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
ZWrite Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend SrcAlpha OneMinusSrcAlpha
|
||||||
|
ColorMask[_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
|
struct appdata_t {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct v2f {
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
float4 mask : TEXCOORD2;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform sampler2D _MainTex;
|
||||||
|
uniform sampler2D _FaceTex;
|
||||||
|
uniform float4 _FaceTex_ST;
|
||||||
|
uniform fixed4 _FaceColor;
|
||||||
|
|
||||||
|
uniform float _VertexOffsetX;
|
||||||
|
uniform float _VertexOffsetY;
|
||||||
|
uniform float4 _ClipRect;
|
||||||
|
uniform float _MaskSoftnessX;
|
||||||
|
uniform float _MaskSoftnessY;
|
||||||
|
|
||||||
|
float2 UnpackUV(float uv)
|
||||||
|
{
|
||||||
|
float2 output;
|
||||||
|
output.x = floor(uv / 4096);
|
||||||
|
output.y = uv - 4096 * output.x;
|
||||||
|
|
||||||
|
return output * 0.001953125;
|
||||||
|
}
|
||||||
|
|
||||||
|
v2f vert (appdata_t v)
|
||||||
|
{
|
||||||
|
float4 vert = v.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
|
||||||
|
vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
|
||||||
|
|
||||||
|
float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
|
||||||
|
|
||||||
|
fixed4 faceColor = v.color;
|
||||||
|
faceColor *= _FaceColor;
|
||||||
|
|
||||||
|
v2f OUT;
|
||||||
|
OUT.vertex = vPosition;
|
||||||
|
OUT.color = faceColor;
|
||||||
|
OUT.texcoord0 = v.texcoord0;
|
||||||
|
OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
|
||||||
|
|
||||||
|
// Clamp _ClipRect to 16bit.
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
|
||||||
|
return OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
fixed4 frag (v2f IN) : SV_Target
|
||||||
|
{
|
||||||
|
fixed4 color = tex2D(_MainTex, IN.texcoord0);
|
||||||
|
color = fixed4 (tex2D(_FaceTex, IN.texcoord1).rgb * IN.color.rgb, IN.color.a * color.a);
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
|
||||||
|
color *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(color.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI"
|
||||||
|
}
|
9
Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta
Normal file
9
Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 128e987d567d4e2c824d754223b3f3b0
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
317
Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader
Normal file
317
Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
Shader "TextMeshPro/Distance Field Overlay" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_FaceTex ("Face Texture", 2D) = "white" {}
|
||||||
|
_FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineTex ("Outline Texture", 2D) = "white" {}
|
||||||
|
_OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_Bevel ("Bevel", Range(0,1)) = 0.5
|
||||||
|
_BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0
|
||||||
|
_BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0
|
||||||
|
_BevelClamp ("Bevel Clamp", Range(0,1)) = 0
|
||||||
|
_BevelRoundness ("Bevel Roundness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416
|
||||||
|
[HDR]_SpecularColor ("Specular", Color) = (1,1,1,1)
|
||||||
|
_SpecularPower ("Specular", Range(0,4)) = 2.0
|
||||||
|
_Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10
|
||||||
|
_Diffuse ("Diffuse", Range(0,1)) = 0.5
|
||||||
|
_Ambient ("Ambient", Range(1,0)) = 0.5
|
||||||
|
|
||||||
|
_BumpMap ("Normal map", 2D) = "bump" {}
|
||||||
|
_BumpOutline ("Bump Outline", Range(0,1)) = 0
|
||||||
|
_BumpFace ("Bump Face", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1)
|
||||||
|
_ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1)
|
||||||
|
_Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
|
||||||
|
_EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5)
|
||||||
|
_GlowOffset ("Offset", Range(-1,1)) = 0
|
||||||
|
_GlowInner ("Inner", Range(0,1)) = 0.05
|
||||||
|
_GlowOuter ("Outer", Range(0,1)) = 0.05
|
||||||
|
_GlowPower ("Falloff", Range(1, 0)) = 0.75
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = 0.5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5.0
|
||||||
|
_ScaleX ("Scale X", float) = 1.0
|
||||||
|
_ScaleY ("Scale Y", float) = 1.0
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767)
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Overlay"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest Always
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma target 3.0
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ BEVEL_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
#pragma shader_feature __ GLOW_ON
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
#include "TMPro.cginc"
|
||||||
|
|
||||||
|
struct vertex_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
float4 position : POSITION;
|
||||||
|
float3 normal : NORMAL;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct pixel_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||||||
|
float4 position : SV_POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 atlas : TEXCOORD0; // Atlas
|
||||||
|
float4 param : TEXCOORD1; // alphaClip, scale, bias, weight
|
||||||
|
float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw)
|
||||||
|
float3 viewDir : TEXCOORD3;
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
float4 texcoord2 : TEXCOORD4; // u,v, scale, bias
|
||||||
|
fixed4 underlayColor : COLOR1;
|
||||||
|
#endif
|
||||||
|
float4 textures : TEXCOORD5;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Used by Unity internally to handle Texture Tiling and Offset.
|
||||||
|
float4 _FaceTex_ST;
|
||||||
|
float4 _OutlineTex_ST;
|
||||||
|
|
||||||
|
pixel_t VertShader(vertex_t input)
|
||||||
|
{
|
||||||
|
pixel_t output;
|
||||||
|
|
||||||
|
UNITY_INITIALIZE_OUTPUT(pixel_t, output);
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
UNITY_TRANSFER_INSTANCE_ID(input,output);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||||
|
|
||||||
|
float bold = step(input.texcoord1.y, 0);
|
||||||
|
|
||||||
|
float4 vert = input.position;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
|
||||||
|
float4 vPosition = UnityObjectToClipPos(vert);
|
||||||
|
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||||
|
float scale = rsqrt(dot(pixelSize, pixelSize));
|
||||||
|
scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
|
||||||
|
if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
|
||||||
|
|
||||||
|
float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
|
||||||
|
weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
|
||||||
|
|
||||||
|
float bias =(.5 - weight) + (.5 / scale);
|
||||||
|
|
||||||
|
float alphaClip = (1.0 - _OutlineWidth*_ScaleRatioA - _OutlineSoftness*_ScaleRatioA);
|
||||||
|
|
||||||
|
#if GLOW_ON
|
||||||
|
alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight;
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
float4 underlayColor = _UnderlayColor;
|
||||||
|
underlayColor.rgb *= underlayColor.a;
|
||||||
|
|
||||||
|
float bScale = scale;
|
||||||
|
bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale);
|
||||||
|
float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale);
|
||||||
|
|
||||||
|
float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
|
||||||
|
float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
|
||||||
|
float2 bOffset = float2(x, y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generate UV for the Masking Texture
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
|
||||||
|
|
||||||
|
// Support for texture tiling and offset
|
||||||
|
float2 textureUV = UnpackUV(input.texcoord1.x);
|
||||||
|
float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex);
|
||||||
|
float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex);
|
||||||
|
|
||||||
|
|
||||||
|
output.position = vPosition;
|
||||||
|
output.color = input.color;
|
||||||
|
output.atlas = input.texcoord0;
|
||||||
|
output.param = float4(alphaClip, scale, bias, weight);
|
||||||
|
output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz);
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias);
|
||||||
|
output.underlayColor = underlayColor;
|
||||||
|
#endif
|
||||||
|
output.textures = float4(faceUV, outlineUV);
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fixed4 PixShader(pixel_t input) : SV_Target
|
||||||
|
{
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
|
||||||
|
float c = tex2D(_MainTex, input.atlas).a;
|
||||||
|
|
||||||
|
#ifndef UNDERLAY_ON
|
||||||
|
clip(c - input.param.x);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float scale = input.param.y;
|
||||||
|
float bias = input.param.z;
|
||||||
|
float weight = input.param.w;
|
||||||
|
float sd = (bias - c) * scale;
|
||||||
|
|
||||||
|
float outline = (_OutlineWidth * _ScaleRatioA) * scale;
|
||||||
|
float softness = (_OutlineSoftness * _ScaleRatioA) * scale;
|
||||||
|
|
||||||
|
half4 faceColor = _FaceColor;
|
||||||
|
half4 outlineColor = _OutlineColor;
|
||||||
|
|
||||||
|
faceColor.rgb *= input.color.rgb;
|
||||||
|
|
||||||
|
faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y);
|
||||||
|
outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y);
|
||||||
|
|
||||||
|
faceColor = GetColor(sd, faceColor, outlineColor, outline, softness);
|
||||||
|
|
||||||
|
#if BEVEL_ON
|
||||||
|
float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0);
|
||||||
|
float3 n = GetSurfaceNormal(input.atlas, weight, dxy);
|
||||||
|
|
||||||
|
float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz;
|
||||||
|
bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5));
|
||||||
|
n = normalize(n- bump);
|
||||||
|
|
||||||
|
float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0));
|
||||||
|
|
||||||
|
float3 col = GetSpecular(n, light);
|
||||||
|
faceColor.rgb += col*faceColor.a;
|
||||||
|
faceColor.rgb *= 1-(dot(n, light)*_Diffuse);
|
||||||
|
faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z);
|
||||||
|
|
||||||
|
fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
|
||||||
|
faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_ON
|
||||||
|
float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
|
||||||
|
faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_INNER
|
||||||
|
float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
|
||||||
|
faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GLOW_ON
|
||||||
|
float4 glowColor = GetGlowColor(sd, scale);
|
||||||
|
faceColor.rgb += glowColor.rgb * glowColor.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
|
||||||
|
faceColor *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(faceColor.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return faceColor * input.color.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Fallback "TextMeshPro/Mobile/Distance Field"
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
9
Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta
Normal file
9
Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dd89cf5b9246416f84610a006f916af7
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
310
Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader
Normal file
310
Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
Shader "TextMeshPro/Distance Field SSD" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_FaceTex ("Face Texture", 2D) = "white" {}
|
||||||
|
_FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineTex ("Outline Texture", 2D) = "white" {}
|
||||||
|
_OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_Bevel ("Bevel", Range(0,1)) = 0.5
|
||||||
|
_BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0
|
||||||
|
_BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0
|
||||||
|
_BevelClamp ("Bevel Clamp", Range(0,1)) = 0
|
||||||
|
_BevelRoundness ("Bevel Roundness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416
|
||||||
|
[HDR]_SpecularColor ("Specular", Color) = (1,1,1,1)
|
||||||
|
_SpecularPower ("Specular", Range(0,4)) = 2.0
|
||||||
|
_Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10
|
||||||
|
_Diffuse ("Diffuse", Range(0,1)) = 0.5
|
||||||
|
_Ambient ("Ambient", Range(1,0)) = 0.5
|
||||||
|
|
||||||
|
_BumpMap ("Normal map", 2D) = "bump" {}
|
||||||
|
_BumpOutline ("Bump Outline", Range(0,1)) = 0
|
||||||
|
_BumpFace ("Bump Face", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1)
|
||||||
|
_ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1)
|
||||||
|
_Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
|
||||||
|
_EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5)
|
||||||
|
_GlowOffset ("Offset", Range(-1,1)) = 0
|
||||||
|
_GlowInner ("Inner", Range(0,1)) = 0.05
|
||||||
|
_GlowOuter ("Outer", Range(0,1)) = 0.05
|
||||||
|
_GlowPower ("Falloff", Range(1, 0)) = 0.75
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = 0.5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5.0
|
||||||
|
_ScaleX ("Scale X", float) = 1.0
|
||||||
|
_ScaleY ("Scale Y", float) = 1.0
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767)
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue" = "Transparent"
|
||||||
|
"IgnoreProjector" = "True"
|
||||||
|
"RenderType" = "Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref[_Stencil]
|
||||||
|
Comp[_StencilComp]
|
||||||
|
Pass[_StencilOp]
|
||||||
|
ReadMask[_StencilReadMask]
|
||||||
|
WriteMask[_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull[_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest[unity_GUIZTestMode]
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask[_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma target 3.0
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ BEVEL_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
#pragma shader_feature __ GLOW_ON
|
||||||
|
#pragma shader_feature __ FORCE_LINEAR
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
#include "TMPro.cginc"
|
||||||
|
|
||||||
|
struct vertex_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
float4 position : POSITION;
|
||||||
|
float3 normal : NORMAL;
|
||||||
|
float4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct pixel_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||||||
|
float4 position : SV_POSITION;
|
||||||
|
float4 color : COLOR;
|
||||||
|
float2 atlas : TEXCOORD0;
|
||||||
|
float weight : TEXCOORD1;
|
||||||
|
float2 mask : TEXCOORD2; // Position in object space(xy)
|
||||||
|
float3 viewDir : TEXCOORD3;
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
float2 texcoord2 : TEXCOORD4;
|
||||||
|
float4 underlayColor : COLOR1;
|
||||||
|
#endif
|
||||||
|
float4 textures : TEXCOORD5;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Used by Unity internally to handle Texture Tiling and Offset.
|
||||||
|
float4 _FaceTex_ST;
|
||||||
|
float4 _OutlineTex_ST;
|
||||||
|
|
||||||
|
float4 SRGBToLinear(float4 rgba) {
|
||||||
|
return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a);
|
||||||
|
}
|
||||||
|
|
||||||
|
pixel_t VertShader(vertex_t input)
|
||||||
|
{
|
||||||
|
pixel_t output;
|
||||||
|
|
||||||
|
UNITY_INITIALIZE_OUTPUT(pixel_t, output);
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
UNITY_TRANSFER_INSTANCE_ID(input,output);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||||
|
|
||||||
|
float bold = step(input.texcoord1.y, 0);
|
||||||
|
|
||||||
|
float4 vert = input.position;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
|
||||||
|
float4 vPosition = UnityObjectToClipPos(vert);
|
||||||
|
|
||||||
|
float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
|
||||||
|
weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
float4 underlayColor = _UnderlayColor;
|
||||||
|
underlayColor.rgb *= underlayColor.a;
|
||||||
|
|
||||||
|
float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
|
||||||
|
float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
|
||||||
|
float2 bOffset = float2(x, y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generate UV for the Masking Texture
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
|
||||||
|
// Support for texture tiling and offset
|
||||||
|
float2 textureUV = UnpackUV(input.texcoord1.x);
|
||||||
|
float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex);
|
||||||
|
float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex);
|
||||||
|
|
||||||
|
float4 color = input.color;
|
||||||
|
#if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA)
|
||||||
|
color = SRGBToLinear(input.color);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
output.position = vPosition;
|
||||||
|
output.color = color;
|
||||||
|
output.atlas = input.texcoord0;
|
||||||
|
output.weight = weight;
|
||||||
|
output.mask = half2(vert.xy * 2 - clampedRect.xy - clampedRect.zw);
|
||||||
|
output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz);
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
output.texcoord2 = input.texcoord0 + bOffset;
|
||||||
|
output.underlayColor = underlayColor;
|
||||||
|
#endif
|
||||||
|
output.textures = float4(faceUV, outlineUV);
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fixed4 PixShader(pixel_t input) : SV_Target
|
||||||
|
{
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
|
||||||
|
float c = tex2D(_MainTex, input.atlas).a;
|
||||||
|
|
||||||
|
float2 pixelSize = float2(ddx(input.atlas.y), ddy(input.atlas.y));
|
||||||
|
pixelSize *= _TextureWidth * .75;
|
||||||
|
float scale = rsqrt(dot(pixelSize, pixelSize)) * _GradientScale * (_Sharpness + 1);
|
||||||
|
|
||||||
|
float weight = input.weight;
|
||||||
|
float bias = (.5 - weight) + (.5 / scale);
|
||||||
|
float sd = (bias - c) * scale;
|
||||||
|
|
||||||
|
float outline = (_OutlineWidth * _ScaleRatioA) * scale;
|
||||||
|
float softness = (_OutlineSoftness * _ScaleRatioA) * scale;
|
||||||
|
|
||||||
|
half4 faceColor = _FaceColor;
|
||||||
|
half4 outlineColor = _OutlineColor;
|
||||||
|
|
||||||
|
faceColor.rgb *= input.color.rgb;
|
||||||
|
|
||||||
|
faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y);
|
||||||
|
outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y);
|
||||||
|
|
||||||
|
faceColor = GetColor(sd, faceColor, outlineColor, outline, softness);
|
||||||
|
|
||||||
|
#if BEVEL_ON
|
||||||
|
float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0);
|
||||||
|
float3 n = GetSurfaceNormal(input.atlas, weight, dxy);
|
||||||
|
|
||||||
|
float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz;
|
||||||
|
bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5));
|
||||||
|
n = normalize(n - bump);
|
||||||
|
|
||||||
|
float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0));
|
||||||
|
|
||||||
|
float3 col = GetSpecular(n, light);
|
||||||
|
faceColor.rgb += col * faceColor.a;
|
||||||
|
faceColor.rgb *= 1 - (dot(n, light) * _Diffuse);
|
||||||
|
faceColor.rgb *= lerp(_Ambient, 1, n.z * n.z);
|
||||||
|
|
||||||
|
fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
|
||||||
|
faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
float bScale = scale;
|
||||||
|
bScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * bScale);
|
||||||
|
float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_ON
|
||||||
|
float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale;
|
||||||
|
faceColor += input.underlayColor * saturate(d - bBias) * (1 - faceColor.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_INNER
|
||||||
|
float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale;
|
||||||
|
faceColor += input.underlayColor * (1 - saturate(d - bBias)) * saturate(1 - sd) * (1 - faceColor.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if GLOW_ON
|
||||||
|
float4 glowColor = GetGlowColor(sd, scale);
|
||||||
|
faceColor.rgb += glowColor.rgb * glowColor.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
float2 maskZW = 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + (1 / scale));
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * maskZW);
|
||||||
|
faceColor *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(faceColor.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return faceColor * input.color.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Fallback "TextMeshPro/Mobile/Distance Field"
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
9
Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta
Normal file
9
Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 14eb328de4b8eb245bb7cea29e4ac00b
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
247
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader
Normal file
247
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
// Simplified SDF shader:
|
||||||
|
// - No Shading Option (bevel / bump / env map)
|
||||||
|
// - No Glow Option
|
||||||
|
// - Softness is applied on both side of the outline
|
||||||
|
|
||||||
|
Shader "TextMeshPro/Mobile/Distance Field - Masking" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0,1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = .5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5
|
||||||
|
_ScaleX ("Scale X", float) = 1
|
||||||
|
_ScaleY ("Scale Y", float) = 1
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
_MaskTex ("Mask Texture", 2D) = "white" {}
|
||||||
|
_MaskInverse ("Inverse", float) = 0
|
||||||
|
_MaskEdgeColor ("Edge Color", Color) = (1,1,1,1)
|
||||||
|
_MaskEdgeSoftness ("Edge Softness", Range(0, 1)) = 0.01
|
||||||
|
_MaskWipeControl ("Wipe Position", Range(0, 1)) = 0.5
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ OUTLINE_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
|
||||||
|
struct vertex_t {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
float3 normal : NORMAL;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pixel_t {
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 faceColor : COLOR;
|
||||||
|
fixed4 outlineColor : COLOR1;
|
||||||
|
float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV
|
||||||
|
half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w)
|
||||||
|
half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw)
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved
|
||||||
|
half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y)
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
float _MaskWipeControl;
|
||||||
|
float _MaskEdgeSoftness;
|
||||||
|
fixed4 _MaskEdgeColor;
|
||||||
|
bool _MaskInverse;
|
||||||
|
|
||||||
|
pixel_t VertShader(vertex_t input)
|
||||||
|
{
|
||||||
|
float bold = step(input.texcoord1.y, 0);
|
||||||
|
|
||||||
|
float4 vert = input.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
float4 vPosition = UnityObjectToClipPos(vert);
|
||||||
|
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||||
|
|
||||||
|
float scale = rsqrt(dot(pixelSize, pixelSize));
|
||||||
|
scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
|
||||||
|
if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
|
||||||
|
|
||||||
|
float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
|
||||||
|
weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
|
||||||
|
|
||||||
|
float layerScale = scale;
|
||||||
|
|
||||||
|
scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale);
|
||||||
|
float bias = (0.5 - weight) * scale - 0.5;
|
||||||
|
float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
|
||||||
|
|
||||||
|
float opacity = input.color.a;
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
opacity = 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
|
||||||
|
faceColor.rgb *= faceColor.a;
|
||||||
|
|
||||||
|
fixed4 outlineColor = _OutlineColor;
|
||||||
|
outlineColor.a *= opacity;
|
||||||
|
outlineColor.rgb *= outlineColor.a;
|
||||||
|
outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2))));
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
|
||||||
|
layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
|
||||||
|
float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
|
||||||
|
|
||||||
|
float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
|
||||||
|
float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
|
||||||
|
float2 layerOffset = float2(x, y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generate UV for the Masking Texture
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
|
||||||
|
|
||||||
|
// Structure for pixel shader
|
||||||
|
pixel_t output = {
|
||||||
|
vPosition,
|
||||||
|
faceColor,
|
||||||
|
outlineColor,
|
||||||
|
float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y),
|
||||||
|
half4(scale, bias - outline, bias + outline, bias),
|
||||||
|
half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)),
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
float4(input.texcoord0 + layerOffset, input.color.a, 0),
|
||||||
|
half2(layerScale, layerBias),
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PIXEL SHADER
|
||||||
|
fixed4 PixShader(pixel_t input) : SV_Target
|
||||||
|
{
|
||||||
|
half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
|
||||||
|
half4 c = input.faceColor * saturate(d - input.param.w);
|
||||||
|
|
||||||
|
#ifdef OUTLINE_ON
|
||||||
|
c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z));
|
||||||
|
c *= saturate(d - input.param.y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_ON
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_INNER
|
||||||
|
half sd = saturate(d - input.param.z);
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
//#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
|
||||||
|
c *= m.x * m.y;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a);
|
||||||
|
float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl;
|
||||||
|
a = saturate(t / _MaskEdgeSoftness);
|
||||||
|
c.rgb = lerp(_MaskEdgeColor.rgb*c.a, c.rgb, a);
|
||||||
|
c *= a;
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
c *= input.texcoord1.z;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(c.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bc1ede39bf3643ee8e493720e4259791
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
240
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader
Normal file
240
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
// Simplified SDF shader:
|
||||||
|
// - No Shading Option (bevel / bump / env map)
|
||||||
|
// - No Glow Option
|
||||||
|
// - Softness is applied on both side of the outline
|
||||||
|
|
||||||
|
Shader "TextMeshPro/Mobile/Distance Field Overlay" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0,1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = .5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5
|
||||||
|
_ScaleX ("Scale X", float) = 1
|
||||||
|
_ScaleY ("Scale Y", float) = 1
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Overlay"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest Always
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ OUTLINE_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
|
||||||
|
struct vertex_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
float3 normal : NORMAL;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pixel_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 faceColor : COLOR;
|
||||||
|
fixed4 outlineColor : COLOR1;
|
||||||
|
float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV
|
||||||
|
half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w)
|
||||||
|
half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw)
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved
|
||||||
|
half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y)
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
pixel_t VertShader(vertex_t input)
|
||||||
|
{
|
||||||
|
pixel_t output;
|
||||||
|
|
||||||
|
UNITY_INITIALIZE_OUTPUT(pixel_t, output);
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||||
|
|
||||||
|
float bold = step(input.texcoord1.y, 0);
|
||||||
|
|
||||||
|
float4 vert = input.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
float4 vPosition = UnityObjectToClipPos(vert);
|
||||||
|
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||||
|
|
||||||
|
float scale = rsqrt(dot(pixelSize, pixelSize));
|
||||||
|
scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
|
||||||
|
if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
|
||||||
|
|
||||||
|
float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
|
||||||
|
weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
|
||||||
|
|
||||||
|
float layerScale = scale;
|
||||||
|
|
||||||
|
scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale);
|
||||||
|
float bias = (0.5 - weight) * scale - 0.5;
|
||||||
|
float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
|
||||||
|
|
||||||
|
float opacity = input.color.a;
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
opacity = 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
|
||||||
|
faceColor.rgb *= faceColor.a;
|
||||||
|
|
||||||
|
fixed4 outlineColor = _OutlineColor;
|
||||||
|
outlineColor.a *= opacity;
|
||||||
|
outlineColor.rgb *= outlineColor.a;
|
||||||
|
outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2))));
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
|
||||||
|
float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
|
||||||
|
|
||||||
|
float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
|
||||||
|
float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
|
||||||
|
float2 layerOffset = float2(x, y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generate UV for the Masking Texture
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
|
||||||
|
|
||||||
|
// Populate structure for pixel shader
|
||||||
|
output.vertex = vPosition;
|
||||||
|
output.faceColor = faceColor;
|
||||||
|
output.outlineColor = outlineColor;
|
||||||
|
output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
|
||||||
|
output.param = half4(scale, bias - outline, bias + outline, bias);
|
||||||
|
output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0);
|
||||||
|
output.underlayParam = half2(layerScale, layerBias);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PIXEL SHADER
|
||||||
|
fixed4 PixShader(pixel_t input) : SV_Target
|
||||||
|
{
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
|
||||||
|
half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
|
||||||
|
half4 c = input.faceColor * saturate(d - input.param.w);
|
||||||
|
|
||||||
|
#ifdef OUTLINE_ON
|
||||||
|
c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z));
|
||||||
|
c *= saturate(d - input.param.y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_ON
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_INNER
|
||||||
|
half sd = saturate(d - input.param.z);
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
|
||||||
|
c *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
c *= input.texcoord1.z;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(c.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a02a7d8c237544f1962732b55a9aebf1
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
106
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader
Normal file
106
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
// Simplified SDF shader:
|
||||||
|
// - No Shading Option (bevel / bump / env map)
|
||||||
|
// - No Glow Option
|
||||||
|
// - Softness is applied on both side of the outline
|
||||||
|
|
||||||
|
Shader "TextMeshPro/Mobile/Distance Field SSD" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0,1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = .5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5
|
||||||
|
_ScaleX ("Scale X", float) = 1
|
||||||
|
_ScaleY ("Scale Y", float) = 1
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
_MaskTex ("Mask Texture", 2D) = "white" {}
|
||||||
|
_MaskInverse ("Inverse", float) = 0
|
||||||
|
_MaskEdgeColor ("Edge Color", Color) = (1,1,1,1)
|
||||||
|
_MaskEdgeSoftness ("Edge Softness", Range(0, 1)) = 0.01
|
||||||
|
_MaskWipeControl ("Wipe Position", Range(0, 1)) = 0.5
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags {
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ OUTLINE_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
|
||||||
|
#include "TMPro_Mobile.cginc"
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c8d12adcee749c344b8117cf7c7eb912
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
240
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader
Normal file
240
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
// Simplified SDF shader:
|
||||||
|
// - No Shading Option (bevel / bump / env map)
|
||||||
|
// - No Glow Option
|
||||||
|
// - Softness is applied on both side of the outline
|
||||||
|
|
||||||
|
Shader "TextMeshPro/Mobile/Distance Field" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
[HDR]_FaceColor ("Face Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0,1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_UnderlayColor ("Border Color", Color) = (0,0,0,.5)
|
||||||
|
_UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0
|
||||||
|
_UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0
|
||||||
|
_UnderlayDilate ("Border Dilate", Range(-1,1)) = 0
|
||||||
|
_UnderlaySoftness ("Border Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = .5
|
||||||
|
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5
|
||||||
|
_ScaleX ("Scale X", float) = 1
|
||||||
|
_ScaleY ("Scale Y", float) = 1
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
|
||||||
|
_MaskSoftnessX ("Mask SoftnessX", float) = 0
|
||||||
|
_MaskSoftnessY ("Mask SoftnessY", float) = 0
|
||||||
|
|
||||||
|
_StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
_Stencil ("Stencil ID", Float) = 0
|
||||||
|
_StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
_StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
_StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
_ColorMask ("Color Mask", Float) = 15
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull [_CullMode]
|
||||||
|
ZWrite Off
|
||||||
|
Lighting Off
|
||||||
|
Fog { Mode Off }
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Blend One OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
Pass {
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex VertShader
|
||||||
|
#pragma fragment PixShader
|
||||||
|
#pragma shader_feature __ OUTLINE_ON
|
||||||
|
#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_CLIP_RECT
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
|
||||||
|
struct vertex_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
float3 normal : NORMAL;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 texcoord0 : TEXCOORD0;
|
||||||
|
float2 texcoord1 : TEXCOORD1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct pixel_t {
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 faceColor : COLOR;
|
||||||
|
fixed4 outlineColor : COLOR1;
|
||||||
|
float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV
|
||||||
|
half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w)
|
||||||
|
half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw)
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved
|
||||||
|
half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y)
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
pixel_t VertShader(vertex_t input)
|
||||||
|
{
|
||||||
|
pixel_t output;
|
||||||
|
|
||||||
|
UNITY_INITIALIZE_OUTPUT(pixel_t, output);
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||||
|
|
||||||
|
float bold = step(input.texcoord1.y, 0);
|
||||||
|
|
||||||
|
float4 vert = input.vertex;
|
||||||
|
vert.x += _VertexOffsetX;
|
||||||
|
vert.y += _VertexOffsetY;
|
||||||
|
float4 vPosition = UnityObjectToClipPos(vert);
|
||||||
|
|
||||||
|
float2 pixelSize = vPosition.w;
|
||||||
|
pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
|
||||||
|
|
||||||
|
float scale = rsqrt(dot(pixelSize, pixelSize));
|
||||||
|
scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
|
||||||
|
if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
|
||||||
|
|
||||||
|
float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
|
||||||
|
weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
|
||||||
|
|
||||||
|
float layerScale = scale;
|
||||||
|
|
||||||
|
scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale);
|
||||||
|
float bias = (0.5 - weight) * scale - 0.5;
|
||||||
|
float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
|
||||||
|
|
||||||
|
float opacity = input.color.a;
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
opacity = 1.0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
|
||||||
|
faceColor.rgb *= faceColor.a;
|
||||||
|
|
||||||
|
fixed4 outlineColor = _OutlineColor;
|
||||||
|
outlineColor.a *= opacity;
|
||||||
|
outlineColor.rgb *= outlineColor.a;
|
||||||
|
outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2))));
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
|
||||||
|
float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
|
||||||
|
|
||||||
|
float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
|
||||||
|
float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
|
||||||
|
float2 layerOffset = float2(x, y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generate UV for the Masking Texture
|
||||||
|
float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
|
||||||
|
float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
|
||||||
|
|
||||||
|
// Populate structure for pixel shader
|
||||||
|
output.vertex = vPosition;
|
||||||
|
output.faceColor = faceColor;
|
||||||
|
output.outlineColor = outlineColor;
|
||||||
|
output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
|
||||||
|
output.param = half4(scale, bias - outline, bias + outline, bias);
|
||||||
|
output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
|
||||||
|
#if (UNDERLAY_ON || UNDERLAY_INNER)
|
||||||
|
output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0);
|
||||||
|
output.underlayParam = half2(layerScale, layerBias);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PIXEL SHADER
|
||||||
|
fixed4 PixShader(pixel_t input) : SV_Target
|
||||||
|
{
|
||||||
|
UNITY_SETUP_INSTANCE_ID(input);
|
||||||
|
|
||||||
|
half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
|
||||||
|
half4 c = input.faceColor * saturate(d - input.param.w);
|
||||||
|
|
||||||
|
#ifdef OUTLINE_ON
|
||||||
|
c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z));
|
||||||
|
c *= saturate(d - input.param.y);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_ON
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNDERLAY_INNER
|
||||||
|
half sd = saturate(d - input.param.z);
|
||||||
|
d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
|
||||||
|
c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Alternative implementation to UnityGet2DClipping with support for softness.
|
||||||
|
#if UNITY_UI_CLIP_RECT
|
||||||
|
half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
|
||||||
|
c *= m.x * m.y;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (UNDERLAY_ON | UNDERLAY_INNER)
|
||||||
|
c *= input.texcoord1.z;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if UNITY_UI_ALPHACLIP
|
||||||
|
clip(c.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
9
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta
Normal file
9
Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fe393ace9b354375a9cb14cdbbc28be4
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
138
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader
Normal file
138
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
// Simplified version of the SDF Surface shader :
|
||||||
|
// - No support for Bevel, Bump or envmap
|
||||||
|
// - Diffuse only lighting
|
||||||
|
// - Fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH.
|
||||||
|
|
||||||
|
Shader "TextMeshPro/Mobile/Distance Field (Surface)" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_FaceTex ("Fill Texture", 2D) = "white" {}
|
||||||
|
[HDR]_FaceColor ("Fill Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineTex ("Outline Texture", 2D) = "white" {}
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5)
|
||||||
|
_GlowOffset ("Offset", Range(-1,1)) = 0
|
||||||
|
_GlowInner ("Inner", Range(0,1)) = 0.05
|
||||||
|
_GlowOuter ("Outer", Range(0,1)) = 0.05
|
||||||
|
_GlowPower ("Falloff", Range(1, 0)) = 0.75
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = 0.5
|
||||||
|
|
||||||
|
// Should not be directly exposed to the user
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5.0
|
||||||
|
_ScaleX ("Scale X", float) = 1.0
|
||||||
|
_ScaleY ("Scale Y", float) = 1.0
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
//_MaskCoord ("Mask Coords", vector) = (0,0,0,0)
|
||||||
|
//_MaskSoftness ("Mask Softness", float) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
|
||||||
|
Tags {
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
LOD 300
|
||||||
|
Cull [_CullMode]
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma surface PixShader Lambert alpha:blend vertex:VertShader noforwardadd nolightmap nodirlightmap
|
||||||
|
#pragma target 3.0
|
||||||
|
#pragma shader_feature __ GLOW_ON
|
||||||
|
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
#include "TMPro.cginc"
|
||||||
|
|
||||||
|
half _FaceShininess;
|
||||||
|
half _OutlineShininess;
|
||||||
|
|
||||||
|
struct Input
|
||||||
|
{
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 uv_MainTex;
|
||||||
|
float2 uv2_FaceTex;
|
||||||
|
float2 uv2_OutlineTex;
|
||||||
|
float2 param; // Weight, Scale
|
||||||
|
float3 viewDirEnv;
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "TMPro_Surface.cginc"
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
|
||||||
|
// Pass to render object as a shadow caster
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "Caster"
|
||||||
|
Tags { "LightMode" = "ShadowCaster" }
|
||||||
|
Offset 1, 1
|
||||||
|
|
||||||
|
Fog {Mode Off}
|
||||||
|
ZWrite On ZTest LEqual Cull Off
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma multi_compile_shadowcaster
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
|
struct v2f {
|
||||||
|
V2F_SHADOW_CASTER;
|
||||||
|
float2 uv : TEXCOORD1;
|
||||||
|
float2 uv2 : TEXCOORD3;
|
||||||
|
float alphaClip : TEXCOORD2;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform float4 _MainTex_ST;
|
||||||
|
uniform float4 _OutlineTex_ST;
|
||||||
|
float _OutlineWidth;
|
||||||
|
float _FaceDilate;
|
||||||
|
float _ScaleRatioA;
|
||||||
|
|
||||||
|
v2f vert( appdata_base v )
|
||||||
|
{
|
||||||
|
v2f o;
|
||||||
|
TRANSFER_SHADOW_CASTER(o)
|
||||||
|
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
|
||||||
|
o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex);
|
||||||
|
o.alphaClip = o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2;
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
uniform sampler2D _MainTex;
|
||||||
|
|
||||||
|
float4 frag(v2f i) : COLOR
|
||||||
|
{
|
||||||
|
fixed4 texcol = tex2D(_MainTex, i.uv).a;
|
||||||
|
clip(texcol.a - i.alphaClip);
|
||||||
|
SHADOW_CASTER_FRAGMENT(i)
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 85187c2149c549c5b33f0cdb02836b17
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
158
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader
Normal file
158
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
Shader "TextMeshPro/Distance Field (Surface)" {
|
||||||
|
|
||||||
|
Properties {
|
||||||
|
_FaceTex ("Fill Texture", 2D) = "white" {}
|
||||||
|
_FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
[HDR]_FaceColor ("Fill Color", Color) = (1,1,1,1)
|
||||||
|
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_OutlineTex ("Outline Texture", 2D) = "white" {}
|
||||||
|
_OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0
|
||||||
|
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
|
||||||
|
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_Bevel ("Bevel", Range(0,1)) = 0.5
|
||||||
|
_BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0
|
||||||
|
_BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0
|
||||||
|
_BevelClamp ("Bevel Clamp", Range(0,1)) = 0
|
||||||
|
_BevelRoundness ("Bevel Roundness", Range(0,1)) = 0
|
||||||
|
|
||||||
|
_BumpMap ("Normalmap", 2D) = "bump" {}
|
||||||
|
_BumpOutline ("Bump Outline", Range(0,1)) = 0.5
|
||||||
|
_BumpFace ("Bump Face", Range(0,1)) = 0.5
|
||||||
|
|
||||||
|
_ReflectFaceColor ("Face Color", Color) = (0,0,0,1)
|
||||||
|
_ReflectOutlineColor ("Outline Color", Color) = (0,0,0,1)
|
||||||
|
_Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
|
||||||
|
_EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0)
|
||||||
|
[HDR]_SpecColor ("Specular Color", Color) = (0,0,0,1)
|
||||||
|
|
||||||
|
_FaceShininess ("Face Shininess", Range(0,1)) = 0
|
||||||
|
_OutlineShininess ("Outline Shininess", Range(0,1)) = 0
|
||||||
|
|
||||||
|
[HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5)
|
||||||
|
_GlowOffset ("Offset", Range(-1,1)) = 0
|
||||||
|
_GlowInner ("Inner", Range(0,1)) = 0.05
|
||||||
|
_GlowOuter ("Outer", Range(0,1)) = 0.05
|
||||||
|
_GlowPower ("Falloff", Range(1, 0)) = 0.75
|
||||||
|
|
||||||
|
_WeightNormal ("Weight Normal", float) = 0
|
||||||
|
_WeightBold ("Weight Bold", float) = 0.5
|
||||||
|
|
||||||
|
// Should not be directly exposed to the user
|
||||||
|
_ShaderFlags ("Flags", float) = 0
|
||||||
|
_ScaleRatioA ("Scale RatioA", float) = 1
|
||||||
|
_ScaleRatioB ("Scale RatioB", float) = 1
|
||||||
|
_ScaleRatioC ("Scale RatioC", float) = 1
|
||||||
|
|
||||||
|
_MainTex ("Font Atlas", 2D) = "white" {}
|
||||||
|
_TextureWidth ("Texture Width", float) = 512
|
||||||
|
_TextureHeight ("Texture Height", float) = 512
|
||||||
|
_GradientScale ("Gradient Scale", float) = 5.0
|
||||||
|
_ScaleX ("Scale X", float) = 1.0
|
||||||
|
_ScaleY ("Scale Y", float) = 1.0
|
||||||
|
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
|
||||||
|
_Sharpness ("Sharpness", Range(-1,1)) = 0
|
||||||
|
|
||||||
|
_VertexOffsetX ("Vertex OffsetX", float) = 0
|
||||||
|
_VertexOffsetY ("Vertex OffsetY", float) = 0
|
||||||
|
|
||||||
|
_CullMode ("Cull Mode", Float) = 0
|
||||||
|
//_MaskCoord ("Mask Coords", vector) = (0,0,0,0)
|
||||||
|
//_MaskSoftness ("Mask Softness", float) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader {
|
||||||
|
|
||||||
|
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
|
||||||
|
|
||||||
|
LOD 300
|
||||||
|
Cull [_CullMode]
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma surface PixShader BlinnPhong alpha:blend vertex:VertShader nolightmap nodirlightmap
|
||||||
|
#pragma target 3.0
|
||||||
|
#pragma shader_feature __ GLOW_ON
|
||||||
|
#pragma glsl
|
||||||
|
|
||||||
|
#include "TMPro_Properties.cginc"
|
||||||
|
#include "TMPro.cginc"
|
||||||
|
|
||||||
|
half _FaceShininess;
|
||||||
|
half _OutlineShininess;
|
||||||
|
|
||||||
|
struct Input
|
||||||
|
{
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
float2 uv_MainTex;
|
||||||
|
float2 uv2_FaceTex;
|
||||||
|
float2 uv2_OutlineTex;
|
||||||
|
float2 param; // Weight, Scale
|
||||||
|
float3 viewDirEnv;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define BEVEL_ON 1
|
||||||
|
#include "TMPro_Surface.cginc"
|
||||||
|
|
||||||
|
ENDCG
|
||||||
|
|
||||||
|
// Pass to render object as a shadow caster
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "Caster"
|
||||||
|
Tags { "LightMode" = "ShadowCaster" }
|
||||||
|
Offset 1, 1
|
||||||
|
|
||||||
|
Fog {Mode Off}
|
||||||
|
ZWrite On
|
||||||
|
ZTest LEqual
|
||||||
|
Cull Off
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma multi_compile_shadowcaster
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
|
||||||
|
struct v2f {
|
||||||
|
V2F_SHADOW_CASTER;
|
||||||
|
float2 uv : TEXCOORD1;
|
||||||
|
float2 uv2 : TEXCOORD3;
|
||||||
|
float alphaClip : TEXCOORD2;
|
||||||
|
};
|
||||||
|
|
||||||
|
uniform float4 _MainTex_ST;
|
||||||
|
uniform float4 _OutlineTex_ST;
|
||||||
|
float _OutlineWidth;
|
||||||
|
float _FaceDilate;
|
||||||
|
float _ScaleRatioA;
|
||||||
|
|
||||||
|
v2f vert( appdata_base v )
|
||||||
|
{
|
||||||
|
v2f o;
|
||||||
|
TRANSFER_SHADOW_CASTER(o)
|
||||||
|
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
|
||||||
|
o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex);
|
||||||
|
o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2;
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
uniform sampler2D _MainTex;
|
||||||
|
|
||||||
|
float4 frag(v2f i) : COLOR
|
||||||
|
{
|
||||||
|
fixed4 texcol = tex2D(_MainTex, i.uv).a;
|
||||||
|
clip(texcol.a - i.alphaClip);
|
||||||
|
SHADOW_CASTER_FRAGMENT(i)
|
||||||
|
}
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
|
||||||
|
}
|
||||||
|
|
9
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta
Normal file
9
Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f7ada0af4f174f0694ca6a487b8f543d
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user