Commit 38815d97 authored by KenzyAshour2's avatar KenzyAshour2

imported the tutorial canva

parent 45b90dea
fileFormatVersion: 2
guid: a8318cee1e8d00e49b0ae4ecd10882df
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f64493dee1bdf4880ae2faf45e652b3a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: b652e9617b11185469f30839f9d7cad6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 2550c34bcb002466682343c8e43106c7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 50, y: 48, z: 50, w: 48}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: c5244042df83e024c9bbc6862623bd40
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 998847c3a89ada347a8f74eb6a827627
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 05a9222bcf8727940984a43c01379d3f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9a48552680495754082bc69605e2adc3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3070d174e7660a04094316607cef81c9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 6fa6e529e8b66734ea86209368858ab6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: bffdf8cbd8232a14c9e2eb0ebe93c6c4
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 143efcb8b14d41343990b168db6db89d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9a0afdb57d35c7343a7becf027e36082
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 632768b01156b864e890725e0c4f7624
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 64b00a79a916e0d4e92449b865fb156b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 09a084257d05bb14cb8b88d42bf86d55
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 54e75ef13792be547b93505eb806a260
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using static LeTai.TrueShadow.Math;
namespace LeTai.TrueShadow.Demo
{
[Serializable]
public class KnobValueChangedEvent : UnityEvent<float> { }
[ExecuteAlways]
public class DirectionalKnob : UIBehaviour, IDragHandler
{
public Transform knobGraphic;
public float min = 0;
public float max = 1;
public float value = .5f;
public KnobValueChangedEvent knobValueChanged;
RectTransform rectTransform;
Vector2 zeroVector;
protected override void Start()
{
rectTransform = GetComponent<RectTransform>();
}
#if UNITY_EDITOR
protected override void OnValidate()
{
base.OnValidate();
value = Mathf.Clamp(value, min, max);
SetValue(value);
}
#endif
public void SetValue(float newValue)
{
value = newValue;
knobGraphic.localRotation = Quaternion.Euler(0, 0, 1 - value * 360);
knobValueChanged.Invoke(value);
}
public void OnDrag(PointerEventData eventData)
{
if (RectTransformUtility.ScreenPointToLocalPointInRectangle(
rectTransform,
eventData.position,
eventData.pressEventCamera,
out var point
))
{
var angle = Angle360(Vector2.down, point);
SetValue(Mathf.InverseLerp(min, max, 1 - angle / 360f));
}
}
}
}
fileFormatVersion: 2
guid: 74ba1d2462853034eb9901e6d9315712
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using static UnityEngine.RectTransform.Edge;
namespace LeTai.TrueShadow.Demo
{
[ExecuteAlways]
public class ToggleSwitchAnimation : MonoBehaviour
{
public Color onColor = new Color(0.29f, 1, 0.26f);
public Color offColor = new Color(0.93f, 0.3f, 0.23f);
public Graphic background;
public RectTransform handle;
public float handleInset = 1.5f;
public float transitionDuration = .1f;
Coroutine anim;
void Start()
{
var isOn = GetComponent<Toggle>().isOn;
background.color = isOn ? onColor : offColor;
handle.SetInsetAndSizeFromParentEdge(isOn ? Right : Left, handleInset, handle.rect.width);
}
IEnumerator Animate(float fromX, Color fromColor)
{
var toColor = background.color;
var position = handle.position;
var toX = position.x;
var y = position.y;
var z = position.z;
var t = 0f;
do
{
t = Mathf.Min(t + Time.deltaTime / transitionDuration, 1);
var tsmoothed = Mathf.SmoothStep(0, 1, t);
handle.position = new Vector3(Mathf.Lerp(fromX, toX, tsmoothed), y, z);
background.color = Color.Lerp(fromColor, toColor, tsmoothed);
yield return null;
} while (t < 1);
}
public void Toggle(bool isOn)
{
if (!background) return;
if (!handle) return;
var fromColor = background.color;
background.color = isOn ? onColor : offColor;
var fromX = handle.position.x;
handle.SetInsetAndSizeFromParentEdge(isOn ? Right : Left, handleInset, handle.rect.width);
if (!Application.isEditor || Application.isPlaying)
{
if (anim != null) StopCoroutine(anim);
anim = StartCoroutine(Animate(fromX, fromColor));
}
}
}
}
fileFormatVersion: 2
guid: d47588945eaa90240a76a557be7bce7f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 785c64398909a374bb49c1dcc71fd4d7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: fc8a61cbf832e0a46a7469ceeec8ea8b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
namespace LeTai.TrueShadow.Demo
{
[RequireComponent(typeof(BarGraph))]
public class AdsrBarGraphSource : MonoBehaviour
{
const float HOLD_TIME = 4f;
public float attack = 1;
public float decay = 1;
public float sustain = .5f;
public float release = 1;
#region EditorEventSetter
public void SetAttack(float value)
{
attack = value;
SetAdsrValues();
}
public void SetDecay(float value)
{
decay = value;
SetAdsrValues();
}
public void SetSustain(float value)
{
sustain = value;
SetAdsrValues();
}
public void SetRelease(float value)
{
release = value;
SetAdsrValues();
}
#endregion
BarGraph graph;
AdsrEnvelop adsr;
void Start()
{
graph = GetComponent<BarGraph>();
graph.Init();
adsr = new AdsrEnvelop();
SetAdsrValues();
}
void SetAdsrValues()
{
if (!graph) return;
var sampleRate = graph.barCount / HOLD_TIME;
adsr.numAttackSamples = Mathf.RoundToInt(attack * sampleRate);
adsr.numDecaySamples = Mathf.RoundToInt(decay * sampleRate);
adsr.sustainScale = sustain;
adsr.numReleaseSamples = Mathf.RoundToInt(release * sampleRate);
// int releaseIndex = graph.barCount - adsr.numReleaseSamples;
int releaseIndex = Mathf.RoundToInt(graph.barCount * .75f);
adsr.Reset();
for (var i = 0; i < graph.barCount; i++)
{
if (i == releaseIndex)
adsr.Release();
adsr.MoveNext();
graph.SetValue(i, (float) adsr.Current);
}
}
}
}
fileFormatVersion: 2
guid: 3cd1a23d80c94ecf8633bce675710720
timeCreated: 1603266114
\ No newline at end of file
using System;
using System.Collections;
using System.Collections.Generic;
namespace LeTai.TrueShadow.Demo
{
public enum AdsrStage
{
Off,
Attack,
Decay,
Sustain,
Release
};
public class AdsrEnvelop : IEnumerator<double>
{
public int numAttackSamples;
public int numDecaySamples;
public double sustainScale;
public int numReleaseSamples;
public AdsrStage CurrentStage { get; private set; } = AdsrStage.Off;
int releaseSample;
int currentSample;
public void Release()
{
CurrentStage = AdsrStage.Release;
releaseSample = currentSample;
}
public bool MoveNext()
{
currentSample++;
MaybeAdvancesStage();
switch (CurrentStage)
{
case AdsrStage.Off:
Current = 0;
break;
case AdsrStage.Attack:
Current = Map(currentSample, 0, numAttackSamples, 0, 1);
break;
case AdsrStage.Decay:
Current = Map(currentSample - numAttackSamples, 0, numDecaySamples, 1, sustainScale);
break;
case AdsrStage.Sustain:
Current = sustainScale;
break;
case AdsrStage.Release:
Current = Map(currentSample - releaseSample, 0, numReleaseSamples, sustainScale, 0);
break;
default:
throw new ArgumentOutOfRangeException();
}
return true;
}
public void Reset()
{
currentSample = 0;
CurrentStage = AdsrStage.Attack;
}
void MaybeAdvancesStage()
{
if (CurrentStage == AdsrStage.Attack)
{
if (currentSample > numAttackSamples)
CurrentStage = AdsrStage.Decay;
}
if (CurrentStage == AdsrStage.Decay)
{
if (currentSample > numAttackSamples + numDecaySamples)
CurrentStage = AdsrStage.Sustain;
}
if (CurrentStage == AdsrStage.Release)
{
if (currentSample - releaseSample > numReleaseSamples)
CurrentStage = AdsrStage.Off;
}
}
static double Map(double value, double fromLow, double fromHigh, double toLow, double toHigh)
{
return (value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
}
public double Current { get; private set; }
object IEnumerator.Current => Current;
public void Dispose() { }
}
}
fileFormatVersion: 2
guid: 38d42192b995448caf026eaef4cc9c59
timeCreated: 1603266171
\ No newline at end of file
using UnityEngine;
namespace LeTai.TrueShadow.Demo
{
public class BarGraph : MonoBehaviour
{
public GameObject barPrefab;
public int barCount = 15;
public int maxValue = 7;
BarGraphBar[] bars;
public void Init()
{
bars = new BarGraphBar[barCount];
for (var i = 0; i < barCount; i++)
{
var go = Instantiate(barPrefab, transform);
var bar = go.GetComponent<BarGraphBar>();
bar.Init(maxValue);
bars[i] = bar;
}
}
public void SetValue(int index, float value)
{
bars[index].SetValue(value);
}
}
}
fileFormatVersion: 2
guid: 51b48b6db7cd5cb40abbcfab370f1f2b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow.Demo
{
[RequireComponent(typeof(Slider))]
public class BarGraphBar : MonoBehaviour
{
Slider slider;
public void Init(int max)
{
slider = GetComponent<Slider>();
slider.maxValue = max;
slider.value = 0;
}
public void SetValue(float value)
{
slider.value = value * slider.maxValue;
}
}
}
fileFormatVersion: 2
guid: 9497ffaf021646caaf8805e90cdfdf39
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9e166f0d0e4a9df4e9de2b95c05c8c3f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8c869099e5fb0c34296e1a740a333c52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.Utils
{
[RequireComponent(typeof(Text))]
public class FpsCounter : MonoBehaviour
{
const long FPS_SAMPLE_PERIOD = 500;
string displayFormat = "{0} FPS\n{1} ms";
Text text;
int framesSinceLast;
Stopwatch stopwatch;
void Start()
{
stopwatch = Stopwatch.StartNew();
text = GetComponent<Text>();
displayFormat = text.text;
}
void Update()
{
framesSinceLast++;
var elapsedMs = stopwatch.ElapsedMilliseconds;
if (elapsedMs < FPS_SAMPLE_PERIOD)
return;
float elapsedSec = elapsedMs / 1000f;
var fps = framesSinceLast / elapsedSec;
var frameTimeMs = elapsedMs / (float)framesSinceLast;
text.text = string.Format(displayFormat, fps, frameTimeMs);
framesSinceLast = 0;
stopwatch.Restart();
}
}
}
fileFormatVersion: 2
guid: 766a0fe386669aa48894ee7a94acf0f0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Image))]
public class GradientSlider : MonoBehaviour
{
public Gradient gradient;
Image image;
void Start()
{
image = GetComponent<Image>();
}
public void Set(float value)
{
if (!image) return;
image.fillAmount = value;
image.color = gradient.Evaluate(value);
}
}
fileFormatVersion: 2
guid: 7280b760bd9580c43b06285560697a5e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using LeTai.SwipeView;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow.Demo
{
public class HotDogCard : Swipable<HotDogSprite>
{
public Image content;
public override void SetData(HotDogSprite data)
{
Data = data;
content.sprite = Data.sprite;
}
}
}
fileFormatVersion: 2
guid: d0e957e6c5eb10540a2cfc76f0401717
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
namespace LeTai.TrueShadow.Demo
{
public struct HotDogSprite
{
public Sprite sprite;
public bool isHotDog;
public override string ToString()
{
var prefix = isHotDog ? "(Hot Dog) " : "";
return prefix + sprite;
}
}
}
fileFormatVersion: 2
guid: 550cd0578a054d1a8812437691e64994
timeCreated: 1596277787
\ No newline at end of file
using System;
using System.Collections.Generic;
using LeTai.SwipeView;
using UnityEngine;
using Random = UnityEngine.Random;
namespace LeTai.TrueShadow.Demo
{
public class HotDogSwipeView : LeftRightSwipeView<HotDogSprite>
{
public Sprite[] hotdogs;
public Sprite[] notHotdogs;
public GradientSlider goodnessSlider;
float goodness = 100f;
protected override void Start()
{
Init(RandomSprites());
onSwipeToDirection.AddListener(OnSwipeToDirection);
AddGoodness(0);
}
void Update()
{
if (Application.isPlaying)
{
var reduction = Mathf.Exp(goodness * .025f + .6f);
reduction = Mathf.Max(reduction, 0);
AddGoodness(-reduction * Time.deltaTime);
}
}
void AddGoodness(float amount)
{
goodness += amount;
goodness = Mathf.Clamp(goodness, 0f, 100f);
goodnessSlider.Set(goodness / 100f);
}
void OnSwipeToDirection(SwipeDirection direction)
{
var isHotDog = TopCard.Data.isHotDog;
switch (direction)
{
case SwipeDirection.Left:
if (!isHotDog) AddGoodness(10);
else AddGoodness(-10);
break;
case SwipeDirection.Right:
if (isHotDog) AddGoodness(10);
else AddGoodness(-10);
break;
default:
throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
}
}
IEnumerable<HotDogSprite> RandomSprites()
{
int last = -1;
int nAttempt = 0;
while (true)
{
var hotDogRatio = hotdogs.Length / (float) (hotdogs.Length + notHotdogs.Length);
var array = Random.value < hotDogRatio ? hotdogs : notHotdogs;
int next;
do
{
next = Random.Range(0, array.Length);
} while (next == last && nAttempt++ < 5);
nAttempt = 0;
last = next;
yield return new HotDogSprite {
sprite = array[next],
isHotDog = array == hotdogs
};
}
}
}
}
fileFormatVersion: 2
guid: 4f81c30eceb7d04468edd80617e15f18
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: bdf2919a45d9cb640b588c6fa229cde7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
namespace LeTai.SwipeView
{
public enum SwipeDirection
{
Left,
Right
}
[Serializable]
public class CardSwipedToDirectionEvent : UnityEvent<SwipeDirection> { }
public class LeftRightSwipeView<T> : SwipeView<T>
{
public CardSwipedToDirectionEvent onSwipeToDirection;
protected override void Init(IEnumerable<T> data)
{
base.Init(data);
onSwiped.AddListener(OnSwiped);
}
void OnSwiped(Vector2 offset)
{
if (Vector2.Dot(offset, Vector2.right) >= 0)
onSwipeToDirection.Invoke(SwipeDirection.Right);
else
onSwipeToDirection.Invoke(SwipeDirection.Left);
}
}
}
fileFormatVersion: 2
guid: 9b13d0ccc8f1477a9bf7b7ef337d7a8a
timeCreated: 1596276659
\ No newline at end of file
using System;
using System.Collections;
using UnityEngine;
namespace LeTai.SwipeView
{
public abstract class Swipable<TData> : MonoBehaviour
{
public event Action<Vector2> removed;
public TData Data { get; protected set; }
internal RectTransform RectTransform { get; private set; }
internal SwipeView<TData> view;
internal Vector2 snapPosition;
internal Vector3 snapScale;
protected bool isSwiping;
protected bool isSnaping;
Coroutine runningSnap;
Vector3 currentPosVel;
Vector3 currentScaleVel;
void Awake()
{
RectTransform = GetComponent<RectTransform>();
}
protected internal void StartSnap(bool snapOut = false)
{
if (isSnaping && runningSnap != null) StopCoroutine(runningSnap);
isSnaping = true;
runningSnap = StartCoroutine(Snap(snapOut));
}
void DoTilt()
{
RectTransform.localRotation = Quaternion.LookRotation(RectTransform.forward,
RectTransform.localPosition -
view.rotationPivot.WithZ(0) *
view.canvas.scaleFactor);
}
protected IEnumerator Snap(bool snapOut)
{
var targetPosition = snapOut
? RectTransform.localPosition.normalized * view.throwDistance
: (Vector3) snapPosition;
if (snapOut)
{
OnRemoved(RectTransform.localPosition);
}
currentScaleVel = Vector3.zero;
currentPosVel = Vector3.zero;
while (!isSwiping && (RectTransform.localPosition - targetPosition).sqrMagnitude > 1e-4f)
{
RectTransform.localPosition = Vector3.SmoothDamp(RectTransform.localPosition,
targetPosition,
ref currentPosVel,
view.animationSmoothTime);
RectTransform.localScale = Vector3.SmoothDamp(RectTransform.localScale,
snapScale,
ref currentScaleVel,
view.animationSmoothTime);
DoTilt();
yield return null;
}
isSnaping = false;
if (snapOut)
{
Destroy(gameObject);
}
}
public void Swipe(Vector2 offset)
{
isSwiping = true;
RectTransform.localPosition = snapPosition + offset;
DoTilt();
}
public abstract void SetData(TData data);
internal void EndSwipe(Vector2 offset)
{
isSwiping = false;
bool willRemove = offset.magnitude > view.distanceToRemove;
StartSnap(willRemove);
}
protected virtual void OnRemoved(Vector2 offset)
{
removed?.Invoke(offset);
}
}
}
fileFormatVersion: 2
guid: 265193ed20c54a5f95ce9b3655527496
timeCreated: 1595072543
\ No newline at end of file
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace LeTai.SwipeView
{
[Serializable]
public class CardSwipedEvent : UnityEvent<Vector2> { }
public class SwipeView<TData> : Graphic, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public int stackSize = 4;
public GameObject cardPrefab;
public AnimationCurve shapeXCurve;
public AnimationCurve shapeYCurve;
public AnimationCurve sizeCurve;
public Vector2 rotationPivot = Vector2.down * 400;
public float distanceToRemove = 100f;
public float animationSmoothTime = .15f;
public CardSwipedEvent onSwiped;
public Swipable<TData> TopCard => cards.Count > 0 ? cards.Peek() : null;
protected IEnumerable<TData> data;
protected Queue<Swipable<TData>> cards;
internal float throwDistance;
IEnumerator<TData> dataEnumerator;
protected virtual void Init(IEnumerable<TData> data)
{
if (!Application.isPlaying)
return;
cards = new Queue<Swipable<TData>>(stackSize);
this.data = data;
dataEnumerator = this.data.GetEnumerator();
for (var i = 0; i < stackSize; i++) InsertNextCard();
}
void InsertNextCard()
{
if (dataEnumerator.MoveNext())
{
var obj = Instantiate(cardPrefab, transform);
var card = obj.GetComponent<Swipable<TData>>();
if (!card) throw new ArgumentException($"Card Prefab need a {nameof(Swipable<TData>)} component");
card.view = this;
card.SetData(dataEnumerator.Current);
card.removed += RemoveTopCard;
card.RectTransform.SetSiblingIndex(0);
cards.Enqueue(card);
obj.name = card.Data.ToString();
}
UpdateCardsPosition();
}
void UpdateCardsPosition()
{
int index = 0;
foreach (var card in cards)
{
var curvePosition = index++ % stackSize / (float) (stackSize - 1);
card.snapScale = Vector3.one * sizeCurve.Evaluate(curvePosition);
card.snapPosition = new Vector2(
shapeXCurve.Evaluate(curvePosition),
shapeYCurve.Evaluate(curvePosition)
);
card.StartSnap();
}
}
void RemoveTopCard(Vector2 offset)
{
onSwiped.Invoke(offset);
cards.Dequeue();
InsertNextCard();
}
Vector2 pointerStartPos;
public void OnBeginDrag(PointerEventData eventData)
{
if (!TopCard) return;
EventSystem.current.SetSelectedGameObject(TopCard.gameObject, eventData);
RectTransformUtility.ScreenPointToLocalPointInRectangle(
rectTransform,
eventData.position,
eventData.pressEventCamera,
out pointerStartPos
);
RectTransformUtility.ScreenPointToLocalPointInRectangle(
rectTransform,
Vector2.right * (Screen.width + Screen.height),
eventData.pressEventCamera,
out var farPoint
);
throwDistance = farPoint.magnitude;
}
public void OnDrag(PointerEventData eventData)
{
if (!TopCard) return;
EventSystem.current.SetSelectedGameObject(TopCard.gameObject, eventData);
RectTransformUtility.ScreenPointToLocalPointInRectangle(
rectTransform,
eventData.position,
eventData.pressEventCamera,
out var pos
);
TopCard.Swipe(pos - pointerStartPos);
}
public void OnEndDrag(PointerEventData eventData)
{
if (!TopCard) return;
EventSystem.current.SetSelectedGameObject(null);
RectTransformUtility.ScreenPointToLocalPointInRectangle(
rectTransform,
eventData.position,
eventData.pressEventCamera,
out var pos
);
TopCard.EndSwipe(pos - pointerStartPos);
}
#if UNITY_EDITOR
void OnDrawGizmosSelected()
{
UnityEditor.Handles.color = Color.green;
var rotPivotWorld = transform.TransformPoint(rotationPivot * canvas.scaleFactor);
UnityEditor.Handles.Disc(Quaternion.identity,
rotPivotWorld,
transform.forward,
UnityEditor.HandleUtility.GetHandleSize(rotPivotWorld) * .1f,
false,
0);
}
#endif
}
}
fileFormatVersion: 2
guid: cac04a9accad4830909197c18d6653b8
timeCreated: 1595068908
\ No newline at end of file
fileFormatVersion: 2
guid: 11f84f641665cf84099522a0374fc7ab
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.UI;
public class OpenUrl : MonoBehaviour
{
public string buttonURL;
Button button;
void Start()
{
button = GetComponent<Button>();
if (button)
button.onClick.AddListener(() => Open(buttonURL));
}
public void Open(string url)
{
Application.OpenURL(url);
}
}
fileFormatVersion: 2
guid: d913e19fec2d9b54da88a806aee86096
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using LeTai.TrueShadow;
using UnityEngine;
using UnityEngine.UI;
using Random = UnityEngine.Random;
public class SymbolsManager : MonoBehaviour
{
#pragma warning disable 0649
[SerializeField] float cellSize = 100;
[SerializeField] GameObject shapePrefab;
[SerializeField] Sprite[] sprites;
[SerializeField] Color[] colors;
[SerializeField] float maxReactionDistance;
[SerializeField] AnimationCurve reactionCurve;
[SerializeField] float heightOffset;
[SerializeField] Vector2 shadowSizeMinMax;
[SerializeField] Vector2 shadowDistanceMinMax;
[SerializeField] Gradient shadowGradient;
[SerializeField] TrueShadow[] samples;
#pragma warning restore 0649
float colorScale = 1;
RectTransform selfRt;
Camera interectionCam;
Vector2[] initialPositions;
RectTransform[] rectTransforms;
TrueShadow[] shadows;
void Start()
{
interectionCam = Camera.main;
Spawn();
}
void Spawn()
{
selfRt = GetComponent<RectTransform>();
var res = GetComponentInParent<CanvasScaler>().referenceResolution;
var xCount = Mathf.CeilToInt(res.x / cellSize);
var yCount = Mathf.CeilToInt(res.y / cellSize);
var count = xCount * yCount;
initialPositions = new Vector2[count];
rectTransforms = new RectTransform[count];
shadows = new TrueShadow[count];
var randomFrom = .25f * cellSize;
var randomTo = .75f * cellSize;
for (int idY = 0; idY < yCount; idY++)
for (int idX = 0; idX < xCount; idX++)
{
var obj = Instantiate(shapePrefab, transform);
var rt = obj.GetComponent<RectTransform>();
rt.anchorMin = Vector2.zero;
rt.anchorMax = Vector2.zero;
rt.anchoredPosition = new Vector3(
idX * cellSize + Random.Range(randomFrom, randomTo),
idY * cellSize + Random.Range(randomFrom, randomTo),
transform.position.z
);
rt.rotation = Quaternion.Euler(0, 0, Mathf.Floor((Random.value - .5f) * 4) * 90 / 4);
rt.sizeDelta *= cellSize / 220;
var img = obj.GetComponent<Image>();
var spriteId = Random.Range(0, sprites.Length);
img.sprite = sprites[spriteId];
img.color = colors[spriteId];
var index = idY * xCount + idX;
rectTransforms[index] = rt;
initialPositions[index] = rt.anchoredPosition;
shadows[index] = img.GetComponent<TrueShadow>();
}
}
void Update()
{
React();
}
void React()
{
var count = initialPositions.Length;
RectTransformUtility.ScreenPointToLocalPointInRectangle(selfRt,
Input.mousePosition,
interectionCam,
out var mouse);
for (int i = 0; i < count; i++)
{
var position = initialPositions[i];
var dist = (position - mouse).magnitude;
var reaction = reactionCurve.Evaluate(Mathf.InverseLerp(maxReactionDistance, 0, dist));
position.y += heightOffset * reaction;
rectTransforms[i].anchoredPosition = position;
var shadow = shadows[i];
shadow.Size = Mathf.Lerp(shadowSizeMinMax.x, shadowSizeMinMax.y, reaction);
shadow.OffsetDistance = Mathf.Lerp(shadowDistanceMinMax.x, shadowDistanceMinMax.y, reaction);
var color = shadowGradient.Evaluate(reaction);
color.r *= colorScale;
color.g *= colorScale;
color.b *= colorScale;
shadow.Color = color;
}
}
public void SetMaxSize(float maxSize)
{
shadowSizeMinMax.y = maxSize;
var sampleSize = maxSize / 2f;
for (var i = 0; i < samples.Length; i++)
{
samples[i].Size = sampleSize;
}
}
public void SetColorScale(float scale)
{
colorScale = scale;
var sampleColor = Color.white * (scale / 2f + .25f);
sampleColor.a = samples[0].Color.a;
for (var i = 0; i < samples.Length; i++)
{
samples[i].Color = sampleColor;
}
}
}
fileFormatVersion: 2
guid: afae5a31ba4dd9549b7c6077d26c94ee
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 179b5dc57fb67c44dad8bed6b790a5cb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
#if LETAI_TRUESHADOW_DEBUG
using System;
using UnityEngine;
#if UNITY_EDITOR
using System.IO;
using UnityEditor;
#endif
namespace LeTai.TrueShadow
{
[Serializable]
public class DebugSettings
{
const string FILE_PATH = "ProjectSettings/TrueShadowDebugSettings.json";
static DebugSettings instance;
public static DebugSettings Instance
{
get
{
if (instance == null)
{
#if UNITY_EDITOR
try
{
if (File.Exists(FILE_PATH))
instance = JsonUtility.FromJson<DebugSettings>(File.ReadAllText(FILE_PATH));
else
Create();
}
catch (Exception)
{
Create();
}
#else
Create();
#endif
}
return instance;
}
}
static void Create()
{
instance = new DebugSettings();
instance.Save();
}
public bool showObjects = true;
void Save()
{
#if UNITY_EDITOR
File.WriteAllText(FILE_PATH, JsonUtility.ToJson(this, true));
#endif
}
#if UNITY_EDITOR
[MenuItem("Tools/Show Objects")]
static void ShowObjects()
{
Instance.showObjects = true;
Instance.Save();
}
[MenuItem("Tools/Hide Objects")]
static void HideObjects()
{
Instance.showObjects = false;
Instance.Save();
}
#endif
}
}
#endif
fileFormatVersion: 2
guid: 15f8726536514604185aa6c94cb75b8b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9828472a1e7da384d91dbfc5a7cbc1b3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
namespace LeTai.TrueShadow.Editor
{
[InitializeOnLoad]
public static class AutoCustomScriptingDefine
{
internal static readonly HashSet<string> SYMBOLS = new HashSet<string> {"LETAI_TRUESHADOW"};
static AutoCustomScriptingDefine()
{
Apply();
}
public static void Apply()
{
AddMissingSymbols(EditorUserBuildSettings.activeBuildTarget);
}
static void AddMissingSymbols(BuildTarget buildTarget)
{
var currentGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);
var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentGroup).Split(';').ToList();
var missing = SYMBOLS.Except(defines).ToList();
defines.AddRange(missing);
if (missing.Count > 0)
PlayerSettings.SetScriptingDefineSymbolsForGroup(currentGroup, string.Join(";", defines));
}
}
}
fileFormatVersion: 2
guid: 150508a406864b6ca9ad4e38e75cb333
timeCreated: 1597477199
\ No newline at end of file
using System;
using System.Globalization;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
public class EditorProperty
{
public readonly SerializedProperty serializedProperty;
readonly SerializedObject serializedObject;
readonly MethodInfo propertySetter;
readonly SerializedProperty dirtyFlag;
public EditorProperty(SerializedObject obj, string name)
{
var propertyName = char.ToLowerInvariant(name[0]) + name.Substring(1);
serializedObject = obj;
serializedProperty = serializedObject.FindProperty(propertyName);
propertySetter = serializedObject.targetObject.GetType().GetProperty(name).SetMethod;
dirtyFlag = serializedObject.FindProperty("modifiedFromInspector");
}
public void Draw(params GUILayoutOption[] options)
{
using (var scope = new EditorGUI.ChangeCheckScope())
{
EditorGUILayout.PropertyField(serializedProperty, options);
if (!scope.changed)
return;
if (dirtyFlag != null)
dirtyFlag.boolValue = true;
serializedObject.ApplyModifiedProperties();
foreach (var target in serializedObject.targetObjects)
{
switch (serializedProperty.propertyType)
{
case SerializedPropertyType.Float:
propertySetter.Invoke(target, new object[] { serializedProperty.floatValue });
break;
case SerializedPropertyType.Enum:
propertySetter.Invoke(target, new object[] { serializedProperty.enumValueIndex });
break;
case SerializedPropertyType.Boolean:
propertySetter.Invoke(target, new object[] { serializedProperty.boolValue });
break;
case SerializedPropertyType.Color:
propertySetter.Invoke(target, new object[] { serializedProperty.colorValue });
break;
default: throw new NotImplementedException();
}
}
}
}
}
}
fileFormatVersion: 2
guid: 1f9db8b2544c48c2a7f13b46f27236e8
timeCreated: 1594635819
\ No newline at end of file
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
public class InlineToolbar : PropertyDrawer
{
protected static Texture[] textures;
static readonly GUIStyle LABEL_STYLE = new GUIStyle(EditorStyles.label)
{alignment = TextAnchor.MiddleLeft,};
public override void OnGUI(Rect position, SerializedProperty property,
GUIContent label)
{
using (var propScope = new EditorGUI.PropertyScope(position, label, property))
{
int id = GUIUtility.GetControlID(FocusType.Keyboard, position);
var lableRect = position;
lableRect.y += (lableRect.height - EditorGUIUtility.singleLineHeight) / 2;
lableRect.height = EditorGUIUtility.singleLineHeight;
var toolbarRect = EditorGUI.PrefixLabel(lableRect, id, propScope.content, LABEL_STYLE);
toolbarRect.width = EditorGUIUtility.singleLineHeight * 4f;
toolbarRect.height = position.height;
toolbarRect.y = position.y;
using (var changeScope = new EditorGUI.ChangeCheckScope())
{
var isOn = GUI.Toolbar(toolbarRect, property.boolValue ? 1 : 0, textures) == 1;
var changed = changeScope.changed;
if (Event.current.type == EventType.KeyDown &&
GUIUtility.keyboardControl == id)
{
if (Event.current.keyCode == KeyCode.Return ||
Event.current.keyCode == KeyCode.KeypadEnter ||
Event.current.keyCode == KeyCode.Space)
{
changed = GUI.changed = true;
isOn = !isOn;
}
}
if (changed)
property.boolValue = isOn;
}
}
}
}
}
fileFormatVersion: 2
guid: ea4346ac17c04991bf233f1dc0def012
timeCreated: 1602580020
\ No newline at end of file
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
[CustomPropertyDrawer(typeof(InsetToggleAttribute))]
public class InsetToggle : InlineToolbar
{
static readonly Texture OUTER_SHADOW_TEXTURE = Utility.FindEditorResource<Texture>("Outer Shadow");
static readonly Texture INNER_SHADOW_TEXTURE = Utility.FindEditorResource<Texture>("Inner Shadow");
static InsetToggle()
{
textures = new[] {OUTER_SHADOW_TEXTURE, INNER_SHADOW_TEXTURE};
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return OUTER_SHADOW_TEXTURE.height + 4;
}
}
}
fileFormatVersion: 2
guid: 89a04959b4ed4a9abee2ce76210516b9
timeCreated: 1641895407
\ No newline at end of file
using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
using static LeTai.TrueShadow.Math;
using EGU = UnityEditor.EditorGUIUtility;
namespace LeTai.TrueShadow.Editor
{
[CustomPropertyDrawer(typeof(KnobAttribute))]
public class KnobPropertyDrawer : PropertyDrawer
{
public static bool procrastinationMode = false;
static readonly Texture2D KNOB_BG_TEXTURE = Utility.FindEditorResource<Texture2D>("Knob_BG");
static readonly Texture2D KNOB_FG_TEXTURE = Utility.FindEditorResource<Texture2D>("Knob_FG");
static readonly MethodInfo DO_FLOAT_FIELD_METHOD;
static readonly FieldInfo RECYCLED_EDITOR_PROPERTY;
static readonly FieldInfo FLOAT_FIELD_FORMAT_STRING_CONST;
static readonly Color KNOB_BG_COLOR;
static readonly Color KNOB_FG_COLOR;
static readonly Color KNOB_FG_COLOR_ACTIVE;
static KnobPropertyDrawer()
{
var editorGUIType = typeof(EditorGUI);
const BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Static;
Type[] argumentTypes = {
Assembly.GetAssembly(editorGUIType).GetType("UnityEditor.EditorGUI+RecycledTextEditor"),
typeof(Rect),
typeof(Rect),
typeof(int),
typeof(float),
typeof(string),
typeof(GUIStyle),
typeof(bool)
};
DO_FLOAT_FIELD_METHOD = editorGUIType.GetMethod("DoFloatField", flags, null, argumentTypes, null);
RECYCLED_EDITOR_PROPERTY = editorGUIType.GetField("s_RecycledEditor", flags);
FLOAT_FIELD_FORMAT_STRING_CONST = editorGUIType.GetField("kFloatFieldFormatString", flags);
if (EGU.isProSkin)
{
KNOB_BG_COLOR = new Color(.164f, .164f, .164f);
KNOB_FG_COLOR = new Color(.701f, .701f, .701f);
KNOB_FG_COLOR_ACTIVE = new Color(.49f, .67f, .94f);
}
else
{
KNOB_BG_COLOR = new Color(.941f, .941f, .941f);
KNOB_FG_COLOR = new Color(.239f, .239f, .239f);
KNOB_FG_COLOR_ACTIVE = new Color(.054f, .274f, .549f);
}
}
static float DoFloatFieldInternal(Rect position,
Rect dragHotZone,
int id,
float value,
string formatString = null,
GUIStyle style = null,
bool draggable = true)
{
style = style ?? EditorStyles.numberField;
formatString = formatString ?? (string) FLOAT_FIELD_FORMAT_STRING_CONST.GetValue(null);
var editor = RECYCLED_EDITOR_PROPERTY.GetValue(null);
return (float) DO_FLOAT_FIELD_METHOD.Invoke(null, new[] {
editor,
position,
dragHotZone,
id,
value,
formatString,
style,
draggable
});
}
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
if (!(attribute is KnobAttribute)) return;
KnobProperty(position, label, property, Vector2.right);
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return ControlHeight;
}
static float ControlHeight => EGU.singleLineHeight * 2.0f;
static float KnobSize => EGU.singleLineHeight * 2.5f;
static float KnobYOffset => (ControlHeight - KnobSize) / 2;
static Color Lighten(Color color, float amount)
{
Color.RGBToHSV(color, out var h, out var s, out var v);
return Color.HSVToRGB(h, s, v + amount);
}
public static void KnobProperty(Rect rect, GUIContent label, SerializedProperty prop, Vector2 zeroVector)
{
float angle = prop.floatValue;
float prevAngle = angle;
using (var propScope = new EditorGUI.PropertyScope(rect, label, prop))
using (var changeScope = new EditorGUI.ChangeCheckScope())
{
var labelRect = new Rect(rect) {
y = rect.y + (ControlHeight - EGU.singleLineHeight) / 2,
height = EGU.singleLineHeight
};
int fieldId = GUIUtility.GetControlID(FocusType.Keyboard, labelRect);
var fieldRect = EditorGUI.PrefixLabel(labelRect, fieldId, propScope.content);
labelRect.xMax = fieldRect.x;
fieldRect.x += ControlHeight;
fieldRect.width -= ControlHeight;
Rect knobRect = new Rect(rect.x + EGU.labelWidth + KnobYOffset,
rect.y + KnobYOffset,
KnobSize, KnobSize);
int knobId = GUIUtility.GetControlID(FocusType.Passive, knobRect);
if (Event.current != null)
{
if (Event.current.type == EventType.MouseDown && knobRect.Contains(Event.current.mousePosition))
{
GUIUtility.hotControl = knobId;
angle = Angle360(zeroVector, Event.current.mousePosition - knobRect.center);
}
else if (Event.current.type == EventType.MouseUp && GUIUtility.hotControl == knobId)
{
GUIUtility.hotControl = 0;
}
else if (Event.current.type == EventType.MouseDrag && GUIUtility.hotControl == knobId)
{
angle = Angle360(zeroVector, Event.current.mousePosition - knobRect.center);
}
else if (Event.current.type == EventType.Repaint)
{
var notRotated = GUI.matrix;
var oldColor = GUI.color;
var highlighted = GUIUtility.hotControl == knobId ||
GUIUtility.hotControl == fieldId ||
GUIUtility.keyboardControl == fieldId;
GUIUtility.RotateAroundPivot(angle, knobRect.center);
GUI.color = KNOB_BG_COLOR;
GUI.DrawTexture(knobRect, KNOB_BG_TEXTURE, ScaleMode.ScaleToFit, true, 1);
GUI.color = highlighted ? KNOB_FG_COLOR_ACTIVE : KNOB_FG_COLOR;
if (procrastinationMode) GUI.color = Color.red;
GUI.DrawTexture(knobRect, KNOB_FG_TEXTURE, ScaleMode.ScaleToFit, true, 1);
if (!procrastinationMode)
GUI.matrix = notRotated;
GUI.color = oldColor;
}
if (angle != prevAngle) GUI.changed = true;
}
angle = DoFloatFieldInternal(
fieldRect,
labelRect,
fieldId,
angle
);
if (changeScope.changed) prop.floatValue = angle;
}
}
}
}
fileFormatVersion: 2
guid: 07c24ad14ec14d40ab304c80ba6af657
timeCreated: 1594636852
\ No newline at end of file
using System.Linq;
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
public class MigrateToVV1Window : EditorWindow
{
private const string SHOW_ON_START_EDITOR_PREFS_KEY = "LeTai.TrueShadow.MigrateToVV1WindowShown";
[MenuItem("Tools/TrueShadow/Migrate To v1")]
public static MigrateToVV1Window ShowWindow()
{
var window = GetWindow<MigrateToVV1Window>(true, "True Shadow");
window.position = new Rect(600, 400, 600, 400);
return window;
}
[InitializeOnLoadMethod]
private static void InitializeOnLoadMethod()
{
RegisterWindowCheck();
}
private static void RegisterWindowCheck()
{
if (!EditorApplication.isPlayingOrWillChangePlaymode)
{
EditorApplication.update += CheckShowWindow;
}
}
private static void CheckShowWindow()
{
EditorApplication.update -= CheckShowWindow;
if (EditorPrefs.GetBool(SHOW_ON_START_EDITOR_PREFS_KEY, true))
{
ShowWindow();
}
}
void OnDestroy()
{
EditorPrefs.SetBool(SHOW_ON_START_EDITOR_PREFS_KEY, false);
}
bool haveBackup;
private void OnGUI()
{
GUILayout.Label("Migrate to v1", EditorStyles.largeLabel);
EditorGUILayout.Separator();
EditorGUILayout.HelpBox(
"In v1, Blend Mode was changed to produce better looking shadows, as well as better compatibility with 3rd parties asset. As a side effect, most shadows should now use Color Bleed Mode: <Black>. This tool attempt to do this automatically.\n\n" +
"All True Shadows in currently loaded scenes will be migrated. You may want to load all scenes you want to fix before migrating. All True Shadows in prefabs will also be migrated.\n\n" +
"All True Shadows in prefabs will also be migrated.\n\n" +
"You may access this dialog later from the Tools menu.",
MessageType.Info
);
EditorGUILayout.Separator();
EditorGUILayout.HelpBox(
"!!! MAKE SURE TO BACK UP YOUR PROJECT BEFORE USE !!!\n\n" +
"This tool will modify your project files. Please backup your project before use. If you are unsure how to do this, do NOT use this tool! Manually change any problematic shadows Color Bleed mode to Black instead!",
MessageType.Warning);
EditorGUILayout.Separator();
haveBackup = EditorGUILayout.ToggleLeft("I have backed up the project and can undo any changes done by the tool", haveBackup);
if (haveBackup)
{
if (GUILayout.Button("Migrate to v1"))
MigrateToV1();
}
}
public static void MigrateToV1()
{
var allPrefabs = AssetDatabase.FindAssets("t:Prefab");
foreach (var guid in allPrefabs)
{
var path = AssetDatabase.GUIDToAssetPath(guid);
var prefabRoot = PrefabUtility.LoadPrefabContents(path);
var changed = false;
foreach (var shadow in prefabRoot.GetComponentsInChildren<TrueShadow>())
{
shadow.ColorBleedMode = ColorBleedMode.Black;
changed = true;
}
if (changed)
PrefabUtility.SaveAsPrefabAsset(prefabRoot, path);
PrefabUtility.UnloadPrefabContents(prefabRoot);
}
var inScene = Resources.FindObjectsOfTypeAll<TrueShadow>()
.ToArray();
Undo.RecordObjects(inScene, "Migrate to 0.5");
foreach (var shadow in inScene)
{
shadow.ColorBleedMode = ColorBleedMode.Black;
}
}
}
}
fileFormatVersion: 2
guid: 126149305ac84024ac1d713f39caf754
timeCreated: 1611560835
\ No newline at end of file
using UnityEditor;
namespace LeTai.TrueShadow.Editor
{
[InitializeOnLoad]
class PrefabEventHandler
{
static PrefabEventHandler()
{
PrefabUtility.prefabInstanceUpdated += go =>
{
var shadows = go.GetComponentsInChildren<TrueShadow>();
foreach (var shadow in shadows)
shadow.ApplySerializedData();
};
}
}
}
fileFormatVersion: 2
guid: 9806fc5a3b18445e9766a68cf69b81c9
timeCreated: 1600845150
\ No newline at end of file
using System;
using System.IO;
using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
using static UnityEditor.EditorGUILayout;
using static UnityEditor.EditorGUIUtility;
namespace LeTai.TrueShadow.Editor
{
[CanEditMultipleObjects]
[CustomEditor(typeof(ProjectSettings))]
public class ProjectSettingsEditor : UnityEditor.Editor
{
EditorProperty useGlobalAngleByDefault;
EditorProperty globalAngle;
EditorProperty showQuickPresetsButtons;
EditorProperty quickPresets;
ReorderableList reorderableList;
void OnEnable()
{
// Domain reload cause target to be null
if(target == null) return;
useGlobalAngleByDefault = new EditorProperty(serializedObject, nameof(ProjectSettings.UseGlobalAngleByDefault));
globalAngle = new EditorProperty(serializedObject, nameof(ProjectSettings.GlobalAngle));
showQuickPresetsButtons = new EditorProperty(serializedObject, nameof(ProjectSettings.ShowQuickPresetsButtons));
quickPresets = new EditorProperty(serializedObject, nameof(ProjectSettings.QuickPresets));
reorderableList = new ReorderableList(serializedObject, quickPresets.serializedProperty, true, true, true, true) {
drawHeaderCallback = DrawPresetsHListHeader,
drawElementCallback = DrawPresetListItems,
elementHeight = singleLineHeight * 6
+ standardVerticalSpacing * 7,
};
}
void DrawPresetsHListHeader(Rect rect)
{
EditorGUI.PrefixLabel(rect, new GUIContent(quickPresets.serializedProperty.displayName));
}
void DrawPresetListItems(Rect rect, int index, bool isActive, bool isFocused)
{
SerializedProperty element = reorderableList.serializedProperty.GetArrayElementAtIndex(index);
var childRect = new Rect(rect) { height = singleLineHeight };
EditorGUI.LabelField(childRect, element.FindPropertyRelative(nameof(QuickPreset.name)).stringValue);
childRect.y += singleLineHeight + standardVerticalSpacing;
var oldLabelWidth = labelWidth;
labelWidth = Mathf.Min(labelWidth, pixelsPerPoint * 60);
foreach (var childProp in element)
{
EditorGUI.PropertyField(childRect, (SerializedProperty)childProp, true);
childRect.y += singleLineHeight + standardVerticalSpacing;
}
labelWidth = oldLabelWidth;
}
public override void OnInspectorGUI()
{
serializedObject.Update();
useGlobalAngleByDefault.Draw();
globalAngle.Draw();
Space();
showQuickPresetsButtons.Draw();
using (new GUILayout.HorizontalScope())
{
Space(pixelsPerPoint * 8, false);
using (new GUILayout.VerticalScope(GUILayout.MaxWidth(pixelsPerPoint * 400)))
reorderableList.DoLayoutList();
Space(pixelsPerPoint * 8, false);
}
serializedObject.ApplyModifiedProperties();
}
[SettingsProvider]
public static SettingsProvider CreatSettingsProvider()
{
if (!Resources.Load(ProjectSettings.RESOURCE_PATH))
return null;
return AssetSettingsProvider.CreateProviderFromResourcePath(
"Project/True Shadow",
ProjectSettings.RESOURCE_PATH,
SettingsProvider.GetSearchKeywordsFromPath(ProjectSettings.RESOURCE_PATH)
);
}
}
class RunOnImport : AssetPostprocessor
{
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
if (Resources.Load(ProjectSettings.RESOURCE_PATH))
return;
foreach (var path in importedAssets)
{
var fileName = Path.GetFileNameWithoutExtension(path);
if (string.Compare(fileName,
ProjectSettings.DEFAULT_RESOURCE_PATH,
StringComparison.InvariantCulture) == 0)
{
EnsureSettingAsset(path);
break;
}
if (string.Compare(fileName,
ProjectSettings.RESOURCE_PATH,
StringComparison.InvariantCulture) == 0)
{
EditorApplication.update += NotifySettingsProviderChanged;
break;
}
}
}
static void NotifySettingsProviderChanged()
{
SettingsService.NotifySettingsProviderChanged();
EditorApplication.update -= NotifySettingsProviderChanged;
}
static void EnsureSettingAsset(string defaultPath)
{
// ReSharper disable once AssignNullToNotNullAttribute
var userPath = Path.Combine(Path.GetDirectoryName(defaultPath), ProjectSettings.RESOURCE_PATH + ".asset");
var userSettings = AssetDatabase.LoadAssetAtPath<ProjectSettings>(userPath);
if (userSettings)
return;
AssetDatabase.CopyAsset(defaultPath, userPath);
AssetDatabase.ImportAsset(userPath,
ImportAssetOptions.ForceUpdate
| ImportAssetOptions.ForceSynchronousImport);
}
}
}
fileFormatVersion: 2
guid: ce58e85c062341bdacd3d6bd0855d6ed
timeCreated: 1641808404
\ No newline at end of file
using System;
using System.Linq;
using System.Reflection;
using UnityEditor;
namespace LeTai.Asset.TrueShadow.Editor
{
class ScenceGizmoAutoDisable : AssetPostprocessor
{
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
{
if (!importedAssets.Any(p => p.Contains("TrueShadow")))
return;
var structAnnotation = Type.GetType("UnityEditor.Annotation, UnityEditor");
if (structAnnotation == null) return;
var fieldClassId = structAnnotation.GetField("classID");
var fieldScriptClass = structAnnotation.GetField("scriptClass");
var fieldFlags = structAnnotation.GetField("flags");
var fieldIconEnabled = structAnnotation.GetField("iconEnabled");
Type classAnnotationUtility = Type.GetType("UnityEditor.AnnotationUtility, UnityEditor");
if (classAnnotationUtility == null) return;
var methodGetAnnotations = classAnnotationUtility.GetMethod("GetAnnotations", BindingFlags.NonPublic | BindingFlags.Static);
if (methodGetAnnotations == null) return;
var methodSetIconEnabled = classAnnotationUtility.GetMethod("SetIconEnabled", BindingFlags.NonPublic | BindingFlags.Static);
if (methodSetIconEnabled == null) return;
Array annotations = (Array)methodGetAnnotations.Invoke(null, null);
foreach (var a in annotations)
{
string scriptClass = (string)fieldScriptClass.GetValue(a);
// built in types
if (string.IsNullOrEmpty(scriptClass)) continue;
int classId = (int)fieldClassId.GetValue(a);
int flags = (int)fieldFlags.GetValue(a);
int iconEnabled = (int)fieldIconEnabled.GetValue(a);
const int maskHasIcon = 1;
bool hasIconFlag = (flags & maskHasIcon) == maskHasIcon;
if (hasIconFlag
&& iconEnabled != 0
&& scriptClass.Contains("TrueShadow"))
{
methodSetIconEnabled.Invoke(null, new object[] { classId, scriptClass, 0 });
}
}
}
}
}
fileFormatVersion: 2
guid: a1266d64cf1066b47b900e5115a5b75d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
[CustomEditor(typeof(ShadowMaterial))]
public class ShadowMaterialEditor : UnityEditor.Editor
{
ShadowMaterial shadowMaterial;
MaterialEditor materialEditor;
void OnEnable()
{
shadowMaterial = (ShadowMaterial) target;
if (shadowMaterial.material != null)
{
materialEditor = (MaterialEditor) CreateEditor(shadowMaterial.material);
}
}
public override void OnInspectorGUI()
{
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(serializedObject.FindProperty("material"));
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
if (materialEditor)
{
DestroyImmediate(materialEditor);
}
if (shadowMaterial.material)
{
materialEditor = (MaterialEditor) CreateEditor(shadowMaterial.material);
}
}
if (materialEditor)
{
materialEditor.DrawHeader();
bool isDefaultMaterial = !AssetDatabase.GetAssetPath(shadowMaterial.material).StartsWith("Assets");
using (new EditorGUI.DisabledGroupScope(isDefaultMaterial))
{
EditorGUI.BeginChangeCheck();
materialEditor.OnInspectorGUI();
if (EditorGUI.EndChangeCheck())
{
shadowMaterial.OnMaterialModified();
}
}
}
}
void OnDisable()
{
if (materialEditor)
{
DestroyImmediate(materialEditor);
}
}
}
}
fileFormatVersion: 2
guid: 618f886531374376920d0f8a8ae0fc6c
timeCreated: 1632817269
\ No newline at end of file
using UnityEditor;
using UnityEngine;
using static UnityEditor.EditorGUI;
namespace LeTai.TrueShadow.Editor
{
[CustomPropertyDrawer(typeof(SpreadSliderAttribute))]
public class SpreadSliderDrawer : PropertyDrawer
{
const float SLIDER_SPACING = 5;
const float MARKER_HEIGHT = 6;
const float MARKER_ALPHA = .75f;
const float MARKER_FILLET = 2;
static readonly Vector4 START_RADII = new Vector4(MARKER_FILLET, 0, 0, MARKER_FILLET);
static readonly Vector4 END_RADII = new Vector4(0, MARKER_FILLET, MARKER_FILLET, 0);
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
using (var propScope = new PropertyScope(position, label, property))
using (var changeScope = new ChangeCheckScope())
{
var controlPosition = PrefixLabel(position, propScope.content);
var floatFieldWidth = Mathf.Min(EditorGUIUtility.fieldWidth, controlPosition.width);
var sliderPosition = new Rect(controlPosition)
{width = controlPosition.width - floatFieldWidth - SLIDER_SPACING};
const float marker1 = .8f;
const float marker2 = .95f;
DrawMarkers(sliderPosition,
(marker1, new Color(1.00000f, 0.60392f, 0.01961f, MARKER_ALPHA)),
(marker2, new Color(1.00000f, 0.25490f, 0.20784f, MARKER_ALPHA)));
var newVal = Slider(controlPosition,
GUIContent.none,
property.floatValue,
0, 1);
if (!Event.current.control && !Event.current.alt)
{
var dist1 = (newVal - marker1) * sliderPosition.width;
var dist2 = (newVal - marker2) * sliderPosition.width;
if (0 < dist1 && dist1 < 4)
newVal = marker1;
if (0 < dist2 && dist2 < 4)
newVal = marker2;
}
if (changeScope.changed)
property.floatValue = newVal;
}
}
void DrawMarkers(Rect sliderPosition, params (float, Color)[] markers)
{
var hPad = GUI.skin.horizontalSliderThumb.fixedWidth / 2f;
var markerXStart = sliderPosition.x + hPad;
var markerXEnd = sliderPosition.width - hPad * 2;
var vPad = (sliderPosition.height - MARKER_HEIGHT) / 2f;
var markerYStart = sliderPosition.y + vPad;
var markerHeight = sliderPosition.height - vPad * 2;
for (var i = 0; i < markers.Length; i++)
{
var (offset, color) = markers[i];
var x = markerXStart + markerXEnd * offset;
var width = i < markers.Length - 1
? sliderPosition.width * (markers[i + 1].Item1 - offset) - 1
: sliderPosition.xMax - x;
var position = new Rect {
x = x,
y = markerYStart,
width = width,
height = markerHeight
};
var radii = i == 0 ? START_RADII : END_RADII;
GUI.DrawTexture(position,
Texture2D.whiteTexture, ScaleMode.StretchToFill, true, 0, color,
Vector4.zero, radii);
}
}
}
}
fileFormatVersion: 2
guid: 3292983b33504803ae542a485f446019
timeCreated: 1615190623
\ No newline at end of file
fileFormatVersion: 2
guid: 23d5c09d6cd32644aa9ba98410f9602d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 098c7906709c37c4bba842c34581765c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 0
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: 0
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: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 21fab31b34964614680dcb53be2692d1
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
using System.Linq;
using System.Reflection;
using LeTai.TrueShadow.PluginInterfaces;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using static UnityEditor.EditorGUILayout;
namespace LeTai.TrueShadow.Editor
{
[CanEditMultipleObjects]
[CustomEditor(typeof(TrueShadow))]
public class TrueShadowEditor : UnityEditor.Editor
{
EditorProperty insetProp;
EditorProperty sizeProp;
EditorProperty spreadProp;
EditorProperty useGlobalAngleProp;
EditorProperty angleProp;
EditorProperty distanceProp;
EditorProperty colorProp;
EditorProperty blendModeProp;
EditorProperty multiplyCasterAlphaProp;
EditorProperty ignoreCasterColorProp;
EditorProperty colorBleedModeProp;
EditorProperty disableFitCompensationProp;
#if LETAI_TRUESHADOW_DEBUG
SerializedProperty alwayRenderProp;
#endif
GUIContent procrastinateLabel;
GUIContent editGlobalAngleLabel;
static bool showExperimental;
static bool showAdvanced;
static Texture warningIcon;
static GUIStyle hashWarningStyle;
static GUIContent hashWarningLabel;
void OnEnable()
{
insetProp = new EditorProperty(serializedObject, nameof(TrueShadow.Inset));
sizeProp = new EditorProperty(serializedObject, nameof(TrueShadow.Size));
spreadProp = new EditorProperty(serializedObject, nameof(TrueShadow.Spread));
useGlobalAngleProp = new EditorProperty(serializedObject, nameof(TrueShadow.UseGlobalAngle));
angleProp = new EditorProperty(serializedObject, nameof(TrueShadow.OffsetAngle));
distanceProp = new EditorProperty(serializedObject, nameof(TrueShadow.OffsetDistance));
colorProp = new EditorProperty(serializedObject, nameof(TrueShadow.Color));
blendModeProp = new EditorProperty(serializedObject, nameof(TrueShadow.BlendMode));
multiplyCasterAlphaProp = new EditorProperty(serializedObject, nameof(TrueShadow.UseCasterAlpha));
ignoreCasterColorProp = new EditorProperty(serializedObject, nameof(TrueShadow.IgnoreCasterColor));
colorBleedModeProp = new EditorProperty(serializedObject, nameof(TrueShadow.ColorBleedMode));
disableFitCompensationProp = new EditorProperty(serializedObject, nameof(TrueShadow.DisableFitCompensation));
#if LETAI_TRUESHADOW_DEBUG
alwayRenderProp = serializedObject.FindProperty(nameof(TrueShadow.alwaysRender));
#endif
if (EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showExperimental)))
{
showExperimental = EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showExperimental), false);
showAdvanced = EditorPrefs.GetBool("LeTai_TrueShadow_" + nameof(showAdvanced), false);
}
procrastinateLabel = new GUIContent("Procrastinate", "A bug that is too fun to fix");
editGlobalAngleLabel = new GUIContent("Edit...");
if (!warningIcon)
{
warningIcon = typeof(EditorGUIUtility)
.GetProperty("warningIcon", BindingFlags.Static | BindingFlags.NonPublic)
?.GetValue(null) as Texture;
}
hashWarningLabel = new GUIContent(warningIcon);
hashWarningStyle = new GUIStyle(EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector)
.FindStyle("WordWrappedLabel")) {
richText = true
};
}
public override void OnInspectorGUI()
{
serializedObject.Update();
var ts = (TrueShadow)target;
DrawPresetButtons(ts);
Space();
insetProp.Draw();
sizeProp.Draw();
spreadProp.Draw();
useGlobalAngleProp.Draw(GUILayout.ExpandWidth(!ts.UseGlobalAngle));
if (ts.UseGlobalAngle)
{
var settingRect = GUILayoutUtility.GetLastRect();
settingRect.xMin += EditorGUIUtility.labelWidth + EditorGUIUtility.singleLineHeight;
settingRect.width = GUI.skin.button.CalcSize(editGlobalAngleLabel).x;
if (GUI.Button(settingRect, editGlobalAngleLabel))
{
SettingsService.OpenProjectSettings("Project/True Shadow");
}
}
else
{
angleProp.Draw();
}
distanceProp.Draw();
colorProp.Draw();
if (ts.UsingRendererMaterialProvider)
{
using (new EditorGUI.DisabledScope(true))
LabelField(blendModeProp.serializedProperty.displayName, "Custom Material");
}
else
{
blendModeProp.Draw();
}
DrawAdvancedSettings();
DrawHashWarning();
serializedObject.ApplyModifiedProperties();
}
void DrawPresetButtons(TrueShadow ts)
{
if (!ProjectSettings.Instance.ShowQuickPresetsButtons) return;
using (new HorizontalScope())
{
var presets = ProjectSettings.Instance.QuickPresets;
var selected = GUILayout.Toolbar(-1, presets.Select(p => p.name).ToArray());
if (selected != -1)
{
Undo.RecordObject(ts, "Apply Quick Preset on " + ts.name);
presets[selected].Apply(ts);
EditorApplication.QueuePlayerLoopUpdate();
}
if (GUILayout.Button("...", GUILayout.ExpandWidth(false)))
{
SettingsService.OpenProjectSettings("Project/True Shadow");
}
}
}
void DrawAdvancedSettings()
{
using (var change = new EditorGUI.ChangeCheckScope())
{
showAdvanced = Foldout(showAdvanced, "Advanced Settings", true);
using (new EditorGUI.IndentLevelScope())
if (showAdvanced)
{
multiplyCasterAlphaProp.Draw();
ignoreCasterColorProp.Draw();
colorBleedModeProp.Draw();
disableFitCompensationProp.Draw();
if (KnobPropertyDrawer.procrastinationMode)
{
var rot = GUI.matrix;
GUI.matrix = Matrix4x4.identity;
KnobPropertyDrawer.procrastinationMode ^= Toggle("Be Productive", false);
GUI.matrix = rot;
}
else
{
KnobPropertyDrawer.procrastinationMode |= Toggle(procrastinateLabel, false);
}
#if LETAI_TRUESHADOW_DEBUG
PropertyField(alwayRenderProp);
#endif
}
if (change.changed)
{
EditorPrefs.SetBool("LeTai_TrueShadow_" + nameof(showExperimental), showExperimental);
EditorPrefs.SetBool("LeTai_TrueShadow_" + nameof(showAdvanced), showAdvanced);
}
}
}
static readonly string[] KNOWN_TYPES = {
"UnityEngine.UI.Image",
"UnityEngine.UI.RawImage",
"UnityEngine.UI.Text",
"TMPro.TextMeshProUGUI",
"Unity.VectorGraphics.SVGImage",
};
void DrawHashWarning()
{
var ts = (TrueShadow)target;
if (ts.GetComponent<ITrueShadowCustomHashProvider>() != null)
return;
var casterType = ts.GetComponent<Graphic>().GetType();
if (KNOWN_TYPES.Contains(casterType.FullName))
return;
hashWarningLabel.text = "Shadow may not update with changes";
using (var _ = new VerticalScope(EditorStyles.helpBox))
{
GUILayout.Label(hashWarningLabel);
GUILayout.Label($"True Shadow can't tell 2 <i>{casterType.Name}</i> apart." +
$" The shadow may not update when the <i>{casterType.Name}</i> changes.\n" +
$"To fix this, set the shadow CustomHash, or disable shadow caching for this element.",
hashWarningStyle);
if (GUILayout.Button("More info on CustomHash", EditorStyles.linkLabel))
{
Application.OpenURL("https://leloctai.com/trueshadow/docs/articles/integration.html#make-sure-shadow-update");
}
if (GUILayout.Button("Disable Shadow Cache for this element", EditorStyles.linkLabel))
{
Undo.AddComponent<DisableShadowCache>(ts.gameObject);
}
}
}
}
}
fileFormatVersion: 2
guid: 120b61c7775149ed9de9c782978f6d61
timeCreated: 1592985822
\ No newline at end of file
using UnityEditor;
using UnityEngine;
namespace LeTai.TrueShadow.Editor
{
public static class Utility
{
internal static T FindEditorResource<T>(string assetName) where T : Object
{
var guids = AssetDatabase.FindAssets("l:TrueShadowEditorResources " + assetName);
if (guids.Length == 0)
{
Debug.LogError(
$"Asset \"{assetName}\" not found. Make sure it have the label \"TrueShadowEditorResources\"");
return null;
}
var path = AssetDatabase.GUIDToAssetPath(guids[0]);
return AssetDatabase.LoadAssetAtPath<T>(path);
}
}
}
fileFormatVersion: 2
guid: 09b72999f3c04f898c16bf60deb38c6e
timeCreated: 1602578784
\ No newline at end of file
fileFormatVersion: 2
guid: 530284691e76dd245aa72ac6685767df
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
namespace LeTai.Effects
{
public class BlurConfig : ScriptableObject
{
}
}
fileFormatVersion: 2
guid: 1598e613c3d69154db682bbf3c234cb2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.Rendering;
namespace LeTai.Effects
{
public interface IBlurAlgorithm
{
void Configure(BlurConfig config);
void Blur(CommandBuffer cmd,
RenderTargetIdentifier src,
Rect srcCropRegion,
RenderTexture target);
}
}
fileFormatVersion: 2
guid: 5bc98ab7243bbdc40a0c52f6d1ed58a0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using UnityEngine.Rendering;
namespace LeTai.Effects
{
public class ScalableBlur : IBlurAlgorithm
{
Material material;
ScalableBlurConfig config;
static readonly int BLUE_NOISE_ID = Shader.PropertyToID("_BlueNoise");
static readonly int TARGET_SIZE_ID = Shader.PropertyToID("_TargetSize");
readonly Texture2D blueNoise;
const int BLUR_PASS = 0;
const int CROP_BLUR_PASS = 1;
const int DITHER_BLUR_PASS = 2;
public ScalableBlur()
{
blueNoise = Resources.Load<Texture2D>("True Shadow Blue Noise");
}
Material Material
{
get
{
if (material == null)
{
material = new Material(Shader.Find("Hidden/TrueShadow/Generate"));
}
return material;
}
set => material = value;
}
public void Configure(BlurConfig config)
{
this.config = (ScalableBlurConfig)config;
}
public void Blur(CommandBuffer cmd,
RenderTargetIdentifier src,
Rect srcCropRegion,
RenderTexture target)
{
float radius = config.Radius;
Material.SetFloat(ShaderProperties.blurRadius, radius);
Material.SetVector(ShaderProperties.blurTextureCropRegion, srcCropRegion.ToMinMaxVector());
int firstDownsampleFactor = config.Iteration > 0 ? 1 : 0;
int stepCount = Mathf.Max(config.Iteration * 2 - 1, 1);
int firstIRT = ShaderProperties.intermediateRT[0];
CreateTempRenderTextureFrom(cmd, firstIRT, target, firstDownsampleFactor);
// cmd.BlitFullscreenTriangle(src, firstIRT, Material, CROP_BLUR_PASS);
cmd.Blit(src, firstIRT, Material, CROP_BLUR_PASS);
for (var i = 1; i < stepCount; i++)
{
BlurAtDepth(cmd, i, target);
}
Material.SetTexture(BLUE_NOISE_ID, blueNoise);
Material.SetVector(TARGET_SIZE_ID, new Vector4(target.width, target.height));
// cmd.BlitFullscreenTriangle(ShaderProperties.intermediateRT[stepCount - 1], target, Material, BLUR_PASS);
cmd.Blit(ShaderProperties.intermediateRT[stepCount - 1], target, Material, DITHER_BLUR_PASS);
CleanupIntermediateRT(cmd, stepCount);
}
protected virtual void BlurAtDepth(CommandBuffer cmd, int depth, RenderTexture baseTexture)
{
int sizeLevel = Utility.SimplePingPong(depth, config.Iteration - 1) + 1;
sizeLevel = Mathf.Min(sizeLevel, config.MaxDepth);
CreateTempRenderTextureFrom(cmd, ShaderProperties.intermediateRT[depth], baseTexture, sizeLevel);
// cmd.BlitFullscreenTriangle(
cmd.Blit(
ShaderProperties.intermediateRT[depth - 1],
ShaderProperties.intermediateRT[depth],
Material,
BLUR_PASS
);
}
static void CreateTempRenderTextureFrom(CommandBuffer cmd,
int nameId,
RenderTexture src,
int downsampleFactor)
{
int w = src.width >> downsampleFactor; //= width / 2^downsample
int h = src.height >> downsampleFactor;
cmd.GetTemporaryRT(nameId, w, h, 0, FilterMode.Bilinear, src.format);
}
static void CleanupIntermediateRT(CommandBuffer cmd, int amount)
{
for (var i = 0; i < amount; i++)
{
cmd.ReleaseTemporaryRT(ShaderProperties.intermediateRT[i]);
}
}
}
}
fileFormatVersion: 2
guid: d72465d1220a01e4abccda77619f6763
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
using static UnityEngine.Mathf;
namespace LeTai.Effects
{
public class ScalableBlurConfig : BlurConfig
{
[SerializeField] float radius = 4;
[SerializeField] int iteration = 4;
[SerializeField] int maxDepth = 6;
[SerializeField] [Range(0, 256)] float strength;
/// <summary>
/// Distance between the base texel and the texel to be sampled.
/// </summary>
public float Radius
{
get { return radius; }
set { radius = Max(0, value); }
}
/// <summary>
/// Half the number of time to process the image. It is half because the real number of iteration must alway be even. Using half also make calculation simpler
/// </summary>
/// <value>
/// Must be non-negative
/// </value>
public int Iteration
{
get { return iteration; }
set { iteration = Max(0, value); }
}
/// <summary>
/// Clamp the minimum size of the intermediate texture. Reduce flickering and blur
/// </summary>
/// <value>
/// Must larger than 0
/// </value>
public int MaxDepth
{
get { return maxDepth; }
set { maxDepth = Max(1, value); }
}
/// <summary>
/// User friendly property to control the amount of blur
/// </summary>
///<value>
/// Must be non-negative
/// </value>
public float Strength
{
get { return strength = radius * (3 * (1 << iteration) - 2) / UNIT_VARIANCE; }
set
{
strength = Max(0, value);
SetAdvancedFieldFromSimple();
}
}
// With the "correct" unit variance, the edge of the shadow at higher stddev go below 8bit fixed point resolution
// We "wastes" processing power on these.
// TODO: optimize that:
// The maximum distance that will show up is:
// e^(-D^2 / 2R^2) < .5/256
// => D < 3*sqrt(2*log(2)) * R ~ 3.53223*R
// Can probably stop sooner than that
static readonly float UNIT_VARIANCE = 1f + Sqrt(2f) / 2f;
/// <summary>
/// Calculate size and iteration from strength
/// </summary>
protected virtual void SetAdvancedFieldFromSimple()
{
if (strength < 1e-2)
{
iteration = 0;
radius = 0;
return;
}
var variance = strength * UNIT_VARIANCE;
// Each level of the pyramid have double the effective radius of the last, so total effective radius would be:
// S = (2^0 + 2^1 +...+ 2^iteration +...+ 2^1 + 2^0) * R
// https://en.wikipedia.org/wiki/1_%2B_2_%2B_4_%2B_8_%2B_%E2%8B%AF
// S = (3 * 2^I - 2) * R
// so:
// I = log((s + 2r)/ (3r))/log(2)
// and:
// R = S / (3 * 2^I - 2)
//
// Experimental result show that best result are obtained with R <= 2^I - 1, so:
// I >= log(1/6 * (sqrt(12S + 1) + 5))/log(2)
//
// There still some artifact at the lower end, not sure how to handle that yet
// TODO: use a different algorithm for low Strength.
iteration = CeilToInt(Log(1 / 6f * (Sqrt(12 * variance + 1) + 5)) / Log(2));
radius = variance / (3 * (1 << iteration) - 2);
}
void OnValidate()
{
SetAdvancedFieldFromSimple();
}
}
}
fileFormatVersion: 2
guid: 506e4e7bc6f8ce24486de8c2732c0a1b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
namespace LeTai.Effects
{
public static class ShaderProperties
{
private static bool isInitialized;
public static int[] intermediateRT;
public static int blurRadius;
public static int blurTextureCropRegion;
public static void Init()
{
if (isInitialized)
return;
blurRadius = Shader.PropertyToID("_Radius");
blurTextureCropRegion = Shader.PropertyToID("_CropRegion");
isInitialized = true;
}
public static void Init(int stackDepth)
{
intermediateRT = new int[stackDepth * 2 - 1];
for (var i = 0; i < intermediateRT.Length; i++)
{
intermediateRT[i] = Shader.PropertyToID(string.Format("TI_intermediate_rt_{0}", i));
}
Init();
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 3ae61d4a8774bbb41acdf25cded306c2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 28be2f6dc9999e74ca23b966d0ab8c5d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using UnityEngine;
using UnityEngine.EventSystems;
namespace LeTai.TrueShadow
{
public class AnimatedBiStateButton : MonoBehaviour,
IPointerDownHandler, IPointerUpHandler,
IPointerEnterHandler, IPointerExitHandler
{
public enum State
{
Up,
AnimateDown,
Down,
AnimateUp,
}
public float animationDuration = .1f;
public AnimationCurve animationCurve = AnimationCurve.EaseInOut(0, 0, 1, 1);
public bool useEnterExitEvents = true;
public event Action willPress;
public event Action willRelease;
protected State state = State.Up;
/// <summary>
/// 0 = fully up
/// 1 = fully down
/// </summary>
protected float pressAmount = 0;
protected bool IsAnimating => state == State.AnimateDown || state == State.AnimateUp;
void Update()
{
PollPointerUp();
DoAnimation();
}
void DoAnimation()
{
if (!IsAnimating) return;
if (state == State.AnimateDown)
{
pressAmount += Time.deltaTime / animationDuration;
}
else if (state == State.AnimateUp)
{
pressAmount -= Time.deltaTime / animationDuration;
}
pressAmount = Mathf.Clamp01(pressAmount);
var animationProgress = pressAmount;
if (state == State.AnimateUp) animationProgress = 1 - animationProgress;
animationProgress = animationCurve.Evaluate(animationProgress);
if (state == State.AnimateUp) animationProgress = 1 - animationProgress;
Animate(animationProgress);
if (state == State.AnimateDown && pressAmount == 1)
{
state = State.Down;
}
if (state == State.AnimateUp && pressAmount == 0)
{
state = State.Up;
}
}
protected void Press()
{
if (state != State.Down && state != State.AnimateDown)
{
OnWillPress();
state = State.AnimateDown;
}
}
protected void Release()
{
if (state != State.Up && state != State.AnimateUp)
{
OnWillRelease();
state = State.AnimateUp;
}
}
/// <summary>
/// Pointer Up event does not fire on an object if it was not the one receive the Pointer Down event.
/// </summary>
void PollPointerUp()
{
if (useEnterExitEvents
&& (state == State.Down || state == State.AnimateDown)
&& !Input.GetMouseButton(0))
{
Release();
}
}
/// <summary>
/// NOP if not overrided
/// </summary>
/// <param name="visualPressAmount"><see cref="pressAmount"/> conformed to <see cref="animationCurve"/></param>
protected virtual void Animate(float visualPressAmount) { }
public void OnPointerDown(PointerEventData eventData)
{
Press();
}
public void OnPointerUp(PointerEventData eventData)
{
Release();
}
public void OnPointerEnter(PointerEventData eventData)
{
if (useEnterExitEvents && Input.GetMouseButton(0)) Press();
}
public void OnPointerExit(PointerEventData eventData)
{
if (useEnterExitEvents) Release();
}
protected virtual void OnWillPress()
{
willPress?.Invoke();
}
protected virtual void OnWillRelease()
{
willRelease?.Invoke();
}
}
}
fileFormatVersion: 2
guid: d498001a5177468b90ceba93a17a5307
timeCreated: 1603966347
\ No newline at end of file
using LeTai.TrueShadow.PluginInterfaces;
using UnityEngine;
namespace LeTai.TrueShadow
{
[ExecuteAlways]
[RequireComponent(typeof(TrueShadow))]
public class DisableShadowCache : MonoBehaviour, ITrueShadowCustomHashProvider
{
TrueShadow shadow;
void OnEnable()
{
shadow = GetComponent<TrueShadow>();
shadow.CustomHash = shadow.GetInstanceID();
shadow.SetTextureDirty();
}
void OnDisable()
{
shadow.CustomHash = 0;
shadow.SetTextureDirty();
}
}
}
fileFormatVersion: 2
guid: 760d23c40a1e4341b91ad16c6a10e224
timeCreated: 1662364892
\ No newline at end of file
using UnityEngine;
namespace LeTai.TrueShadow
{
[RequireComponent(typeof(TrueShadow))]
public class InsetOnPress : AnimatedBiStateButton
{
TrueShadow[] shadows;
float[] normalOpacity;
bool wasInset;
void OnEnable()
{
shadows = GetComponents<TrueShadow>();
normalOpacity = new float[shadows.Length];
}
protected override void Animate(float visualPressAmount)
{
void SetAllOpacity(float lerpProgress)
{
for (var i = 0; i < shadows.Length; i++)
{
var color = shadows[i].Color;
color.a = Mathf.Lerp(0, normalOpacity[i], lerpProgress);
shadows[i].Color = color;
}
}
bool shouldInset = visualPressAmount > .5f;
if (shouldInset != wasInset)
{
for (var i = 0; i < shadows.Length; i++)
{
shadows[i].Inset = shouldInset;
}
wasInset = shouldInset;
}
if (shouldInset)
{
SetAllOpacity(visualPressAmount * 2f - 1f);
}
else
{
SetAllOpacity(1 - visualPressAmount * 2f);
}
}
void MemorizeOpacity()
{
if (IsAnimating) return;
for (var i = 0; i < shadows.Length; i++)
{
normalOpacity[i] = shadows[i].Color.a;
}
}
protected override void OnWillPress()
{
wasInset = shadows[0].Inset;
MemorizeOpacity();
base.OnWillPress();
}
}
}
fileFormatVersion: 2
guid: dd53a06400e8496e82467031771bf46e
timeCreated: 1602747228
\ No newline at end of file
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using static UnityEngine.Mathf;
namespace LeTai.TrueShadow
{
[RequireComponent(typeof(TrueShadow))]
public class InteractiveShadow : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, ISelectHandler,
IDeselectHandler, IPointerDownHandler, IPointerUpHandler
{
public float smoothTime = .05f;
[Tooltip("Deselect on pointer up")]
public bool autoDeselect;
[Header("Size")]
public float selectedSize = 28;
public float hoverSize = 28;
public float clickedSize = 24;
[Header("Distance")]
public float selectedDistance = 12;
public float hoverDistance = 12;
public float clickedDistance = 8;
[Header("Color")]
public Color selectedColor = new Color(0, 0, 0, .25f);
public Color hoverColor = new Color(0, 0, 0, .20f);
public Color clickedColor = new Color(0, 0, 0, .25f);
float normalSize;
float normalDistance;
Color normalColor;
bool normalStateAcquired;
bool isSelected;
bool isHovered;
bool isClicked;
TrueShadow shadow;
Selectable selectable;
float targetSize;
float targetDistance;
Color targetColor;
static readonly Color FADED_COLOR = new Color(.5f, .5f, .5f, .5f);
#if UNITY_EDITOR
void Reset()
{
shadow = FindTrueShadow();
if (shadow)
{
normalSize = shadow.Size;
normalDistance = shadow.OffsetDistance;
normalColor = shadow.Color;
normalStateAcquired = true;
// Clicked UI remain selected, which is unwanted. Selected state is probably most useful on console
// and keyboard nav, the later is rather hard to detect
bool selectedIsNormal = Input.mousePresent || Input.touchSupported;
autoDeselect = selectedIsNormal;
hoverSize = Round(Min(normalSize * 1.75f, normalSize + 20f));
selectedSize = selectedIsNormal ? normalSize : hoverSize;
clickedSize = Round(Min(normalSize * 1.25f, normalSize + 15f));
hoverDistance = Round(Min(normalDistance * 1.5f, normalDistance + 20f));
selectedDistance = selectedIsNormal ? normalDistance : hoverDistance;
clickedDistance = Round(Min(normalDistance * 1.25f, normalDistance + 15f));
hoverColor = Color.Lerp(normalColor, FADED_COLOR, .15f);
selectedColor = selectedIsNormal ? normalColor : hoverColor;
clickedColor = Color.Lerp(normalColor, FADED_COLOR, .25f);
}
}
#endif
readonly List<RaycastResult> raycastResults = new List<RaycastResult>();
void OnEnable()
{
shadow = FindTrueShadow();
selectable = GetComponent<Selectable>();
isHovered = false;
if (Input.mousePresent)
isHovered = IsOverGameObject(Input.mousePosition);
if (!isHovered)
{
for (var i = 0; i < Input.touchCount; i++)
{
isHovered = IsOverGameObject(Input.GetTouch(i).position);
if (isHovered) break;
}
}
isSelected = !autoDeselect && EventSystem.current.currentSelectedGameObject == gameObject;
isClicked = false;
if (!normalStateAcquired)
{
targetSize = normalSize = shadow.Size;
targetDistance = normalDistance = shadow.OffsetDistance;
targetColor = normalColor = shadow.Color;
normalStateAcquired = true;
}
shadow.Size = targetSize = normalSize;
shadow.OffsetDistance = targetDistance = normalDistance;
}
TrueShadow FindTrueShadow()
{
var shadows = GetComponents<TrueShadow>();
if (shadows.Length == 0) return null;
var ishadows = GetComponents<InteractiveShadow>();
int index = 0;
for (; index < ishadows.Length; index++)
if (ishadows[index] == this)
break;
return shadows[index];
}
void OnStateChange()
{
if (isClicked)
{
targetSize = clickedSize;
targetDistance = clickedDistance;
targetColor = clickedColor;
}
else if (isSelected)
{
targetSize = selectedSize;
targetDistance = selectedDistance;
targetColor = selectedColor;
}
else if (isHovered)
{
targetSize = hoverSize;
targetDistance = hoverDistance;
targetColor = hoverColor;
}
else
{
targetSize = normalSize;
targetDistance = normalDistance;
targetColor = normalColor;
}
}
#region AnimationState
float currentSizeVelocity;
float currentDistanceVelocity;
float currentColorRVelocity;
float currentColorGVelocity;
float currentColorBVelocity;
float currentColorAVelocity;
#endregion
void Update()
{
if (!Approximately(targetSize, shadow.Size))
{
shadow.Size = SmoothDamp(shadow.Size,
targetSize,
ref currentSizeVelocity,
smoothTime);
}
if (!Approximately(targetDistance, shadow.OffsetDistance))
{
shadow.OffsetDistance = SmoothDamp(shadow.OffsetDistance,
targetDistance,
ref currentDistanceVelocity,
smoothTime);
}
var shadowColor = shadow.Color;
if (!Approximately(targetColor.a, shadowColor.a))
{
var r = SmoothDamp(shadowColor.r,
targetColor.r,
ref currentColorRVelocity,
smoothTime);
var g = SmoothDamp(shadowColor.g,
targetColor.g,
ref currentColorGVelocity,
smoothTime);
var b = SmoothDamp(shadowColor.b,
targetColor.b,
ref currentColorBVelocity,
smoothTime);
var a = SmoothDamp(shadowColor.a,
targetColor.a,
ref currentColorAVelocity,
smoothTime);
shadow.Color = new Color(r, g, b, a);
}
}
public void OnPointerEnter(PointerEventData eventData)
{
isHovered = true;
OnStateChange();
}
public void OnPointerExit(PointerEventData eventData)
{
isHovered = false;
OnStateChange();
}
public void OnSelect(BaseEventData eventData)
{
isSelected = true;
OnStateChange();
}
public void OnDeselect(BaseEventData eventData)
{
isSelected = false;
OnStateChange();
}
public void OnPointerDown(PointerEventData eventData)
{
isClicked = true;
OnStateChange();
}
public void OnPointerUp(PointerEventData eventData)
{
if (autoDeselect && EventSystem.current.currentSelectedGameObject == gameObject)
EventSystem.current.SetSelectedGameObject(null);
isClicked = false;
OnStateChange();
}
bool IsOverGameObject(Vector2 position)
{
var pointerData = new PointerEventData(EventSystem.current) { position = position };
EventSystem.current.RaycastAll(pointerData, raycastResults);
for (var i = 0; i < raycastResults.Count; i++)
{
if (raycastResults[i].gameObject == gameObject)
return true;
}
return false;
}
}
}
fileFormatVersion: 2
guid: 2b6bd66378f54ffc974312b194733dd9
timeCreated: 1593508708
\ No newline at end of file
using System;
using LeTai.TrueShadow.PluginInterfaces;
using UnityEngine;
namespace LeTai.TrueShadow
{
[ExecuteAlways]
public class ShadowMaterial : MonoBehaviour, ITrueShadowRendererMaterialProvider
{
public Material material;
public event Action materialReplaced;
public event Action materialModified;
public Material GetTrueShadowRendererMaterial()
{
if (!isActiveAndEnabled) // Component Destroyed
return null;
return material;
}
void OnEnable()
{
var ts = GetComponent<TrueShadow>();
if (ts)
{
ts.RefreshPlugins();
}
materialReplaced?.Invoke();
}
void OnDisable()
{
var ts = GetComponent<TrueShadow>();
if (ts)
{
ts.RefreshPlugins();
}
materialReplaced?.Invoke();
}
void OnValidate()
{
materialReplaced?.Invoke();
}
public void OnMaterialModified()
{
materialModified?.Invoke();
}
}
}
fileFormatVersion: 2
guid: 77f806e511f9ba94c94c7af7d293885a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow.PluginInterfaces
{
public interface ITrueShadowCasterMaterialProvider
{
event Action materialReplaced;
event Action materialModified;
Material GetTrueShadowCasterMaterial();
}
public interface ITrueShadowCasterMeshModifier
{
void ModifyTrueShadowCasterMesh(Mesh mesh);
}
public interface ITrueShadowCasterMaterialPropertiesModifier
{
void ModifyTrueShadowCasterMaterialProperties(MaterialPropertyBlock propertyBlock);
}
public interface ITrueShadowCasterClearColorProvider
{
Color GetTrueShadowCasterClearColor();
}
public interface ITrueShadowRendererMaterialProvider
{
event Action materialReplaced;
event Action materialModified;
Material GetTrueShadowRendererMaterial();
}
public interface ITrueShadowRendererMaterialModifier
{
void ModifyTrueShadowRendererMaterial(Material baseMaterial);
}
public interface ITrueShadowRendererMeshModifier
{
void ModifyTrueShadowRendererMesh(VertexHelper vertexHelper);
}
public interface ITrueShadowCustomHashProvider { }
}
fileFormatVersion: 2
guid: 81f076a2e89b8b34da77ca09f22cfe59
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections.Generic;
using UnityEngine;
namespace LeTai.TrueShadow
{
public class ProjectSettings : ScriptableObject
{
public const string DEFAULT_RESOURCE_PATH = "True Shadow Project Settings Default";
#if LETAI_TRUESHADOW_DEBUG
public const string RESOURCE_PATH = DEFAULT_RESOURCE_PATH;
#else
public const string RESOURCE_PATH = "True Shadow Project Settings";
#endif
static ProjectSettings instance;
public static ProjectSettings Instance
{
get
{
if (!instance) instance = Resources.Load<ProjectSettings>(RESOURCE_PATH);
if (!instance)
{
Debug.LogError($"Can't find \"{RESOURCE_PATH}\" in a Resources folder. Please restore the file or re-install True Shadow.");
}
return instance;
}
}
[SerializeField] internal bool useGlobalAngleByDefault = false;
[Knob]
[SerializeField] internal float globalAngle = 90f;
[SerializeField] internal bool showQuickPresetsButtons = true;
[SerializeField] internal List<QuickPreset> quickPresets = new List<QuickPreset>(8);
public bool UseGlobalAngleByDefault
{
get => useGlobalAngleByDefault;
private set => useGlobalAngleByDefault = value;
}
public float GlobalAngle
{
get => globalAngle;
private set
{
globalAngle = value;
globalAngleChanged?.Invoke(globalAngle);
}
}
public bool ShowQuickPresetsButtons
{
get => showQuickPresetsButtons;
private set => showQuickPresetsButtons = value;
}
public List<QuickPreset> QuickPresets
{
get => quickPresets;
private set => quickPresets = value;
}
public event Action<float> globalAngleChanged;
}
}
fileFormatVersion: 2
guid: a360fd8db0e641b1a650910279a4ce4b
timeCreated: 1641804688
\ No newline at end of file
using System;
using UnityEngine;
namespace LeTai.TrueShadow
{
[Serializable]
public struct QuickPreset
{
public string name;
[Min(0)]
public float size;
[SpreadSlider]
public float spread;
[Min(0)]
public float distance;
[Range(0, 1)]
public float alpha;
public QuickPreset(string name, float size, float spread, float distance, float alpha)
{
this.name = name;
this.size = size;
this.spread = spread;
this.distance = distance;
this.alpha = alpha;
}
public void Apply(TrueShadow target)
{
target.Size = size;
target.Spread = spread;
target.OffsetDistance = distance;
var color = target.Color;
color.a = alpha;
target.Color = color;
}
}
}
fileFormatVersion: 2
guid: 876b5ff218e24d73811af2f5a4065105
timeCreated: 1641540439
\ No newline at end of file
using System.Collections.Generic;
using LeTai.Effects;
using UnityEngine;
using UnityEngine.Rendering;
namespace LeTai.TrueShadow
{
public class ShadowFactory
{
private static ShadowFactory instance;
public static ShadowFactory Instance => instance ?? (instance = new ShadowFactory());
readonly Dictionary<int, ShadowContainer> shadowCache =
new Dictionary<int, ShadowContainer>();
public int CachedCount => shadowCache.Count;
readonly CommandBuffer cmd;
readonly MaterialPropertyBlock materialProps;
readonly ScalableBlur blurProcessor;
readonly ScalableBlurConfig blurConfig;
Material cutoutMaterial;
Material imprintPostProcessMaterial;
Material shadowPostProcessMaterial;
Material CutoutMaterial =>
cutoutMaterial ? cutoutMaterial : cutoutMaterial = new Material(Shader.Find("Hidden/TrueShadow/Cutout"));
Material ImprintPostProcessMaterial =>
imprintPostProcessMaterial
? imprintPostProcessMaterial
: imprintPostProcessMaterial = new Material(Shader.Find("Hidden/TrueShadow/ImprintPostProcess"));
Material ShadowPostProcessMaterial =>
shadowPostProcessMaterial
? shadowPostProcessMaterial
: shadowPostProcessMaterial = new Material(Shader.Find("Hidden/TrueShadow/PostProcess"));
private ShadowFactory()
{
cmd = new CommandBuffer { name = "Shadow Commands" };
materialProps = new MaterialPropertyBlock();
materialProps.SetVector(ShaderId.CLIP_RECT,
new Vector4(float.NegativeInfinity, float.NegativeInfinity,
float.PositiveInfinity, float.PositiveInfinity));
materialProps.SetInt(ShaderId.COLOR_MASK, (int)ColorWriteMask.All); // Render shadow even if mask hide graphic
ShaderProperties.Init(8);
blurConfig = ScriptableObject.CreateInstance<ScalableBlurConfig>();
blurConfig.hideFlags = HideFlags.HideAndDontSave;
blurProcessor = new ScalableBlur();
blurProcessor.Configure(blurConfig);
}
#if LETAI_TRUESHADOW_DEBUG
RenderTexture debugTexture;
#endif
// public int createdContainerCount;
// public int releasedContainerCount;
internal void Get(ShadowSettingSnapshot snapshot, ref ShadowContainer container)
{
if (float.IsNaN(snapshot.dimensions.x) || snapshot.dimensions.x < 1 ||
float.IsNaN(snapshot.dimensions.y) || snapshot.dimensions.y < 1)
{
ReleaseContainer(ref container);
return;
}
// Quick and dirty check to filter most hang causing resolution change
var padding = snapshot.size * 2;
if (snapshot.dimensions.x + padding > 4097 || snapshot.dimensions.y + padding > 4097)
{
Debug.LogWarning("Requested Shadow is too large");
return;
}
#if LETAI_TRUESHADOW_DEBUG
RenderTexture.ReleaseTemporary(debugTexture);
if (snapshot.shadow.alwaysRender)
debugTexture = GenerateShadow(snapshot).Texture;
#endif
// Each request need a coresponding shadow texture
// Texture may be shared by multiple elements
// Texture are released when no longer used by any element
// ShadowContainer keep track of texture and their usage
int requestHash = snapshot.GetHashCode();
// Case: requester can keep the same texture
if (container?.requestHash == requestHash)
return;
ReleaseContainer(ref container);
if (shadowCache.TryGetValue(requestHash, out var existingContainer))
{
// Case: requester got texture from someone else
existingContainer.RefCount++;
container = existingContainer;
}
else
{
// Case: requester got new unique texture
container = shadowCache[requestHash] = GenerateShadow(snapshot);
// Debug.Log($"Created new container for request\t{requestHash}\tTotal Created: {++createdContainerCount}\t Alive: {createdContainerCount - releasedContainerCount}");
}
}
internal void ReleaseContainer(ref ShadowContainer container)
{
if (container == null)
return;
if (--container.RefCount > 0)
return;
RenderTexture.ReleaseTemporary(container.Texture);
shadowCache.Remove(container.requestHash);
container = null;
// Debug.Log($"Released container for request\t{container.requestHash}\tTotal Released: {++releasedContainerCount}\t Alive: {createdContainerCount - releasedContainerCount}");
}
static readonly Rect UNIT_RECT = new Rect(0, 0, 1, 1);
static readonly Vector4 ALPHA8_TEXTURE_BIAS = new Vector4(1, 1, 1, 0);
ShadowContainer GenerateShadow(ShadowSettingSnapshot snapshot)
{
// return GenColoredTexture(request.GetHashCode());
cmd.Clear();
cmd.BeginSample("TrueShadow:Capture");
var bounds = snapshot.shadow.SpriteMesh.bounds;
var padding = snapshot.shadow.Inset
? System.Math.Max(
Mathf.CeilToInt(Mathf.Max(Mathf.Abs(snapshot.canvasRelativeOffset.x),
Mathf.Abs(snapshot.canvasRelativeOffset.y))),
(blurConfig.Iteration + 1) * (blurConfig.Iteration + 1)
)
: Mathf.CeilToInt(snapshot.size);
var imprintviewSize = Vector2Int.CeilToInt(snapshot.dimensions);
var tw = imprintviewSize.x;
var th = imprintviewSize.y;
var bothSidePadding = padding * 2;
tw += bothSidePadding;
th += bothSidePadding;
var shadowTex = RenderTexture.GetTemporary(tw, th, 0, RenderTextureFormat.ARGB32);
var imprintTexDesc = shadowTex.descriptor;
var imprintTex = RenderTexture.GetTemporary(imprintTexDesc);
RenderTexture imprintTexProcessed = null;
bool needProcessImprint = snapshot.shadow.IgnoreCasterColor || snapshot.shadow.Inset;
if (needProcessImprint)
imprintTexProcessed = RenderTexture.GetTemporary(imprintTexDesc);
var texture = snapshot.shadow.Content;
if (texture)
{
materialProps.SetTexture(ShaderId.MAIN_TEX, texture);
if (texture is Texture2D rt && rt.format == TextureFormat.Alpha8)
{
materialProps.SetVector(ShaderId.TEXTURE_SAMPLE_ADD, ALPHA8_TEXTURE_BIAS);
}
else
{
materialProps.SetVector(ShaderId.TEXTURE_SAMPLE_ADD, Vector4.zero);
}
}
else
{
materialProps.SetTexture(ShaderId.MAIN_TEX, Texture2D.whiteTexture);
}
cmd.SetRenderTarget(imprintTex);
cmd.ClearRenderTarget(true, true, snapshot.shadow.ClearColor);
cmd.SetViewport(new Rect(new Vector2(padding, padding), imprintviewSize));
cmd.SetViewProjectionMatrices(
Matrix4x4.identity,
Matrix4x4.Ortho(bounds.min.x, bounds.max.x,
bounds.min.y, bounds.max.y,
-1, 1)
);
materialProps.SetVector(ShaderId.SCREEN_PARAMS, new Vector4(tw, th,
1f + 1f / tw,
1f + 1f / th));
#if TMP_PRESENT
if (snapshot.shadow.Graphic is TMPro.TextMeshProUGUI)
{
var lossyScale = snapshot.canvas.transform.lossyScale;
materialProps.SetFloat(ShaderId.SCALE_X, 1f / lossyScale.x);
materialProps.SetFloat(ShaderId.SCALE_Y, 1f / lossyScale.y);
}
#endif
snapshot.shadow.ModifyShadowCastingMesh(snapshot.shadow.SpriteMesh);
snapshot.shadow.ModifyShadowCastingMaterialProperties(materialProps);
cmd.DrawMesh(snapshot.shadow.SpriteMesh,
Matrix4x4.identity,
snapshot.shadow.GetShadowCastingMaterial(),
0, 0,
materialProps);
if (needProcessImprint)
{
ImprintPostProcessMaterial.SetKeyword("BLEACH", snapshot.shadow.IgnoreCasterColor);
ImprintPostProcessMaterial.SetKeyword("INSET", snapshot.shadow.Inset);
cmd.Blit(imprintTex, imprintTexProcessed, ImprintPostProcessMaterial);
}
cmd.EndSample("TrueShadow:Capture");
var needPostProcess = snapshot.shadow.Spread > 1e-3;
cmd.BeginSample("TrueShadow:Cast");
RenderTexture blurSrc = needProcessImprint ? imprintTexProcessed : imprintTex;
RenderTexture blurDst;
if (needPostProcess)
blurDst = RenderTexture.GetTemporary(shadowTex.descriptor);
else
blurDst = shadowTex;
if (snapshot.size < 1e-2)
{
cmd.Blit(blurSrc, blurDst);
}
else
{
blurConfig.Strength = snapshot.size;
blurProcessor.Blur(cmd, blurSrc, UNIT_RECT, blurDst);
}
cmd.EndSample("TrueShadow:Cast");
var relativeOffset = new Vector2(snapshot.canvasRelativeOffset.x / tw,
snapshot.canvasRelativeOffset.y / th);
var overflowAlpha = snapshot.shadow.Inset ? 1 : 0;
if (needPostProcess)
{
cmd.BeginSample("TrueShadow:PostProcess");
ShadowPostProcessMaterial.SetTexture(ShaderId.SHADOW_TEX, blurDst);
ShadowPostProcessMaterial.SetVector(ShaderId.OFFSET, relativeOffset);
ShadowPostProcessMaterial.SetFloat(ShaderId.OVERFLOW_ALPHA, overflowAlpha);
ShadowPostProcessMaterial.SetFloat(ShaderId.ALPHA_MULTIPLIER,
1f / Mathf.Max(1f / ((1 << 16) - 1), 1f - snapshot.shadow.Spread));
cmd.SetViewport(UNIT_RECT);
cmd.Blit(blurSrc, shadowTex, ShadowPostProcessMaterial);
cmd.EndSample("TrueShadow:PostProcess");
}
else if (snapshot.shadow.Cutout)
{
cmd.BeginSample("TrueShadow:Cutout");
CutoutMaterial.SetVector(ShaderId.OFFSET, relativeOffset);
CutoutMaterial.SetFloat(ShaderId.OVERFLOW_ALPHA, overflowAlpha);
cmd.SetViewport(UNIT_RECT);
cmd.Blit(blurSrc, shadowTex, CutoutMaterial);
cmd.EndSample("TrueShadow:Cutout");
}
Graphics.ExecuteCommandBuffer(cmd);
RenderTexture.ReleaseTemporary(imprintTex);
RenderTexture.ReleaseTemporary(blurSrc);
if (needPostProcess)
RenderTexture.ReleaseTemporary(blurDst);
return new ShadowContainer(shadowTex, snapshot, padding, imprintviewSize);
}
RenderTexture GenColoredTexture(int hash)
{
var tex = new Texture2D(1, 1);
tex.SetPixels32(new[] { new Color32((byte)(hash >> 8), (byte)(hash >> 16), (byte)(hash >> 24), 255) });
tex.Apply();
var rt = RenderTexture.GetTemporary(1, 1);
Graphics.Blit(tex, rt);
return rt;
}
}
}
fileFormatVersion: 2
guid: b8d1278f371c48a784a5294591372531
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.UI;
namespace LeTai.TrueShadow
{
public partial class ShadowRenderer
{
// TODO: cleanup unused mask materials
static readonly Dictionary<int, Material> MASK_MATERIALS_CACHE = new Dictionary<int, Material>();
internal static void ClearMaskMaterialCache()
{
foreach (var keyValuePair in MASK_MATERIALS_CACHE)
{
if (Application.isPlaying)
Destroy(keyValuePair.Value);
else
DestroyImmediate(keyValuePair.Value);
}
MASK_MATERIALS_CACHE.Clear();
}
public Material GetModifiedMaterial(Material baseMaterial)
{
if (!shadow)
return baseMaterial;
shadow.ModifyShadowRendererMaterial(baseMaterial);
if (!baseMaterial.HasProperty(ShaderId.STENCIL_ID))
return baseMaterial; // Shadow is not masked
var casterMask = shadow.GetComponent<Mask>();
bool casterIsMask = casterMask != null && casterMask.isActiveAndEnabled;
int hash = HashUtils.CombineHashCodes(
casterIsMask.GetHashCode(),
baseMaterial.GetHashCode()
);
MASK_MATERIALS_CACHE.TryGetValue(hash, out var mat);
if (!mat)
{
mat = new Material(baseMaterial);
if (shadow.ShadowAsSibling)
{
// Prevent shadow from writing to stencil mask
mat.SetInt(ShaderId.COLOR_MASK, (int)ColorWriteMask.All);
mat.SetInt(ShaderId.STENCIL_OP, (int)StencilOp.Keep);
}
else if (casterIsMask)
{
// Escape own mask
var baseStencilId = mat.GetInt(ShaderId.STENCIL_ID) + 1;
int stencilDepth = 0;
for (; stencilDepth < 8; stencilDepth++)
{
if (((baseStencilId >> stencilDepth) & 1) == 1)
break;
}
stencilDepth = Mathf.Max(0, stencilDepth - 1);
var stencilId = (1 << stencilDepth) - 1;
mat.SetInt(ShaderId.STENCIL_ID, stencilId);
mat.SetInt(ShaderId.STENCIL_READ_MASK, stencilId);
}
MASK_MATERIALS_CACHE[hash] = mat;
}
else
{
// Copy over new materials props, but keep masking data
var id = mat.GetInt(ShaderId.STENCIL_ID);
var op = mat.GetInt(ShaderId.STENCIL_OP);
var colorMask = mat.GetInt(ShaderId.COLOR_MASK);
var readMask = mat.GetInt(ShaderId.STENCIL_READ_MASK);
mat.CopyPropertiesFromMaterial(baseMaterial);
mat.SetInt(ShaderId.STENCIL_ID, id);
mat.SetInt(ShaderId.STENCIL_OP, op);
mat.SetInt(ShaderId.COLOR_MASK, colorMask);
mat.SetInt(ShaderId.STENCIL_READ_MASK, readMask);
}
return mat;
}
}
}
fileFormatVersion: 2
guid: b035d21af0d3447296a96ea4f27b5f53
timeCreated: 1600848777
\ No newline at end of file
using System;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI;
using Debug = UnityEngine.Debug;
namespace LeTai.TrueShadow
{
[AddComponentMenu("")]
[ExecuteAlways]
public partial class ShadowRenderer : MonoBehaviour, ILayoutIgnorer, IMaterialModifier, IMeshModifier
{
public bool ignoreLayout => true;
static bool needRedraw = false;
[Conditional("UNITY_EDITOR")]
internal static void QueueRedraw()
{
needRedraw = true;
}
internal CanvasRenderer CanvasRenderer { get; private set; }
TrueShadow shadow;
RectTransform rt;
RawImage graphic;
Texture shadowTexture;
public static void Initialize(TrueShadow shadow, ref ShadowRenderer renderer)
{
if (renderer && renderer.shadow == shadow)
{
renderer.gameObject.SetActive(true);
return;
}
var obj = new GameObject($"{shadow.gameObject.name}'s Shadow") {
#if LETAI_TRUESHADOW_DEBUG
hideFlags = DebugSettings.Instance.showObjects
? HideFlags.DontSave
: HideFlags.HideAndDontSave
#else
hideFlags = HideFlags.HideAndDontSave
#endif
};
#if LETAI_TRUESHADOW_DEBUG && UNITY_EDITOR
UnityEditor.SceneVisibilityManager.instance.DisablePicking(obj, true);
#endif
shadow.SetHierachyDirty();
var rt = obj.AddComponent<RectTransform>();
rt.anchorMin = Vector2.zero;
rt.anchorMax = Vector2.zero;
var graphic = obj.AddComponent<RawImage>();
graphic.raycastTarget = false;
graphic.color = shadow.Color;
renderer = obj.AddComponent<ShadowRenderer>();
renderer.shadow = shadow;
renderer.rt = rt;
renderer.graphic = graphic;
renderer.UpdateMaterial();
renderer.CanvasRenderer = obj.GetComponent<CanvasRenderer>();
renderer.CanvasRenderer.SetColor(shadow.IgnoreCasterColor ? Color.white : shadow.CanvasRenderer.GetColor());
renderer.CanvasRenderer.SetAlpha(shadow.CanvasRenderer.GetAlpha());
renderer.ReLayout();
}
public void UpdateMaterial()
{
if (!graphic)
return;
if (shadow.Graphic is MaskableGraphic mg)
graphic.maskable = mg.maskable;
graphic.material = shadow.GetShadowRenderingMaterial();
}
internal void ReLayout()
{
if (!isActiveAndEnabled)
return;
var casterRt = shadow.RectTransform;
if (!casterRt)
{
CanvasRenderer.SetAlpha(0);
return;
}
if (!shadowTexture)
{
CanvasRenderer.SetAlpha(0);
return;
}
if (!shadow.SpriteMesh)
{
CanvasRenderer.SetAlpha(0);
return;
}
var nudgeSize = !(shadow.DisableFitCompensation || shadow.Graphic is Text);
#if TMP_PRESENT
nudgeSize = nudgeSize && !(shadow.Graphic is TMPro.TextMeshProUGUI);
#endif
var container = shadow.ShadowContainer;
var canvasScale = container?.Snapshot?.canvasScale ?? graphic.canvas.scaleFactor;
var casterMeshBounds = shadow.SpriteMesh.bounds;
var misalignRatio = container == null
? Vector2.one
: (Vector2)casterMeshBounds.size * canvasScale / (Vector2)container.ImprintSize;
var shadowTexSize = new Vector2(shadowTexture.width, shadowTexture.height);
shadowTexSize *= misalignRatio;
shadowTexSize /= canvasScale;
if (nudgeSize)
{
if (shadow.Inset)
shadowTexSize += Vector2.one / canvasScale;
else
shadowTexSize -= Vector2.one / canvasScale;
}
if (shadowTexSize.x < 1e-3f || shadowTexSize.y < 1e-3f)
{
CanvasRenderer.SetAlpha(0);
return;
}
rt.sizeDelta = shadowTexSize;
float paddingLS = container?.Padding ?? Mathf.CeilToInt(shadow.Size * canvasScale);
paddingLS /= canvasScale;
if (nudgeSize)
{
if (shadow.Inset)
paddingLS += .5f / canvasScale;
else
paddingLS -= .5f / canvasScale;
}
// pivot should be relative to the un-blurred part of the texture, not the whole mesh
var casterPivotLS = -(Vector2)casterMeshBounds.min;
rt.pivot = (casterPivotLS + paddingLS * misalignRatio) / shadowTexSize;
var canvasRelativeOffset = container?.Snapshot?.canvasRelativeOffset / canvasScale ?? shadow.Offset;
var offset = shadow.ShadowAsSibling
? shadow.Offset.WithZ(0)
: canvasRelativeOffset.WithZ(0);
rt.localPosition = shadow.ShadowAsSibling
? casterRt.localPosition + offset
: offset;
rt.localRotation = shadow.ShadowAsSibling ? casterRt.localRotation : Quaternion.identity;
rt.localScale = shadow.ShadowAsSibling ? casterRt.localScale : Vector3.one;
var color = shadow.Color;
if (shadow.UseCasterAlpha)
color.a *= shadow.Graphic.color.a;
graphic.color = color;
CanvasRenderer.SetColor(shadow.IgnoreCasterColor ? Color.white : shadow.CanvasRenderer.GetColor());
CanvasRenderer.SetAlpha(shadow.CanvasRenderer.GetAlpha());
graphic.Rebuild(CanvasUpdate.PreRender);
}
public void SetTexture(Texture texture)
{
shadowTexture = texture;
CanvasRenderer.SetTexture(texture);
graphic.texture = texture;
}
public void SetMaterialDirty()
{
graphic.SetMaterialDirty();
}
public void ModifyMesh(VertexHelper vertexHelper)
{
if (!shadow)
return;
shadow.ModifyShadowRendererMesh(vertexHelper);
}
public void ModifyMesh(Mesh mesh)
{
Debug.Assert(true, "This should only be called on old unsupported Unity version");
}
protected virtual void LateUpdate()
{
// Destroy events are not consistently called for some reason, have to poll
if (!shadow)
Dispose();
if (willBeDestroyed || !gameObject) return;
#if UNITY_EDITOR
if (!Application.isPlaying && needRedraw)
graphic.SetAllDirty();
#endif
}
bool willBeDestroyed;
protected virtual void OnDestroy()
{
willBeDestroyed = true;
}
public void Dispose()
{
if (willBeDestroyed) return;
if (shadow && shadow.ShadowAsSibling)
{
// Destroy does not happen immediately. Want out of hierarchy.
gameObject.SetActive(false);
transform.SetParent(null);
}
#if UNITY_EDITOR
// This look redundant but is necessary!
if (!Application.isPlaying && !UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode)
DestroyImmediate(gameObject);
else if (Application.isPlaying)
Destroy(gameObject);
#else
Destroy(gameObject);
#endif
}
#if LETAI_TRUESHADOW_DEBUG && UNITY_EDITOR
void OnValidate()
{
if (shadow)
shadow.SetLayoutDirty();
}
#endif
}
}
fileFormatVersion: 2
guid: 8c213e24c3734f43b893d039b31ac5bc
timeCreated: 1592813121
\ No newline at end of file
using System;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow
{
class ShadowSettingSnapshot
{
public readonly TrueShadow shadow;
public readonly Canvas canvas;
public readonly RectTransform canvasRt;
public readonly float canvasScale;
public readonly float size;
public readonly Vector2 canvasRelativeOffset;
public readonly Vector2 dimensions;
internal ShadowSettingSnapshot(TrueShadow shadow)
{
this.shadow = shadow;
canvas = shadow.Graphic.canvas;
canvasRt = (RectTransform)canvas.transform;
Bounds meshBound;
if (shadow.SpriteMesh)
meshBound = shadow.SpriteMesh.bounds;
else
meshBound = new Bounds(Vector3.zero, Vector3.zero);
canvasScale = canvas.scaleFactor;
var canvasRelativeRotation = Quaternion.Inverse(canvasRt.rotation) * shadow.RectTransform.rotation;
canvasRelativeOffset = shadow.Offset.Rotate(-canvasRelativeRotation.eulerAngles.z) * canvasScale;
dimensions = (Vector2)meshBound.size * canvasScale;
size = shadow.Size * canvasScale;
CalcHash();
}
const int DIMENSIONS_HASH_STEP = 1;
void CalcHash()
{
var graphic = shadow.Graphic;
int canvasScaleHash = (int)(canvasScale * 1e4);
int insetHash = shadow.Inset ? 1 : 0;
var clearColor = shadow.ClearColor;
var imageColor = graphic.color;
if (shadow.IgnoreCasterColor)
imageColor = Color.clear;
int colorHash = HashUtils.CombineHashCodes(
shadow.IgnoreCasterColor ? 1 : 0,
(int)shadow.ColorBleedMode,
(int)(imageColor.r * 255),
(int)(imageColor.g * 255),
(int)(imageColor.b * 255),
(int)(imageColor.a * 255),
(int)(clearColor.r * 255),
(int)(clearColor.g * 255),
(int)(clearColor.b * 255),
(int)(clearColor.a * 255)
);
// Hack until we have separated cutout cache, or proper sibling mode
int offsetHash = HashUtils.CombineHashCodes(
shadow.Cutout ? 1 : 0,
(int)(canvasRelativeOffset.x * 100),
(int)(canvasRelativeOffset.y * 100)
);
// Tiled type cannot be batched by similar size
int dimensionHash = graphic is Image im && im.type == Image.Type.Tiled
? dimensions.GetHashCode()
: HashUtils.CombineHashCodes(
Mathf.CeilToInt(dimensions.x / DIMENSIONS_HASH_STEP) * DIMENSIONS_HASH_STEP,
Mathf.CeilToInt(dimensions.y / DIMENSIONS_HASH_STEP) * DIMENSIONS_HASH_STEP
);
var sizeHash = Mathf.CeilToInt(size * 100);
var spreadHash = Mathf.CeilToInt(shadow.Spread * 100);
var commonHash = HashUtils.CombineHashCodes(
shadow.TextureRevision,
graphic.materialForRendering.ComputeCRC(),
canvasScaleHash,
insetHash,
colorHash,
offsetHash,
dimensionHash,
sizeHash,
spreadHash,
shadow.CustomHash
);
switch (graphic)
{
case Image image:
int spriteHash = 0;
if (image.sprite)
spriteHash = image.sprite.GetHashCode();
int imageHash = HashUtils.CombineHashCodes(
(int)image.type,
(int)(image.fillAmount * 360 * 20),
(int)image.fillMethod,
image.fillOrigin,
image.fillClockwise ? 1 : 0
);
hash = HashUtils.CombineHashCodes(
commonHash,
spriteHash,
imageHash
);
break;
case RawImage rawImage:
var textureHash = 0;
if (rawImage.texture)
textureHash = rawImage.texture.GetInstanceID();
hash = HashUtils.CombineHashCodes(
commonHash,
textureHash
);
break;
case Text text:
// Other properties should all cause dimensions changes, so they do not need to be explicitly hashed
hash = HashUtils.CombineHashCodes(
commonHash,
text.text.GetHashCode(),
text.font.GetHashCode(),
(int)text.alignment
);
break;
#if TMP_PRESENT
case TMPro.TextMeshProUGUI tmp:
// Other properties should all cause dimensions changes, so they do not need to be explicitly hashed
int tmpColorHash = 0;
if (!shadow.IgnoreCasterColor)
{
tmpColorHash = HashUtils.CombineHashCodes(
tmp.enableVertexGradient.GetHashCode(),
tmp.colorGradient.GetHashCode(),
tmp.overrideColorTags.GetHashCode()
);
}
hash = HashUtils.CombineHashCodes(
commonHash,
tmp.text.GetHashCode(),
tmp.font.GetHashCode(),
tmp.fontSize.GetHashCode(),
tmpColorHash,
tmp.characterSpacing.GetHashCode(),
tmp.wordSpacing.GetHashCode(),
tmp.lineSpacing.GetHashCode(),
tmp.paragraphSpacing.GetHashCode(),
(int)tmp.alignment
);
break;
#endif
default:
hash = commonHash;
break;
}
}
int hash;
// ReSharper disable once NonReadonlyMemberInGetHashCode
public override int GetHashCode() => hash;
public override bool Equals(object obj)
{
if (obj == null) return false;
return GetHashCode() == obj.GetHashCode();
}
}
}
fileFormatVersion: 2
guid: 93693e4b8ffcbca48bc39fba2e37ffda
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections.Generic;
using UnityEngine;
namespace LeTai.TrueShadow
{
[ExecuteAlways]
public class ShadowSorter : MonoBehaviour
{
#region SortDataContainer
readonly struct SortEntry : IComparable<SortEntry>
{
public readonly TrueShadow shadow;
public readonly Transform shadowTransform;
public readonly Transform rendererTransform;
public SortEntry(TrueShadow shadow)
{
this.shadow = shadow;
shadowTransform = shadow.transform;
rendererTransform = shadow.shadowRenderer.transform;
}
public int CompareTo(SortEntry other)
{
return other.shadowTransform.GetSiblingIndex().CompareTo(shadowTransform.GetSiblingIndex());
}
}
readonly struct SortGroup
{
public readonly Transform parentTransform;
public readonly List<SortEntry> sortEntries;
public SortGroup(SortEntry firstEntry)
{
sortEntries = new List<SortEntry> {firstEntry};
parentTransform = firstEntry.shadowTransform.parent;
}
public void Add(SortEntry pair)
{
if (pair.shadowTransform.parent != parentTransform)
return;
var index = sortEntries.BinarySearch(pair);
if (index < 0)
sortEntries.Insert(~index, pair);
}
public override int GetHashCode()
{
return parentTransform.GetHashCode();
}
public override bool Equals(object obj)
{
return obj is SortGroup other && other.parentTransform == parentTransform;
}
}
#endregion
private static ShadowSorter instance;
public static ShadowSorter Instance
{
get
{
if (!instance)
{
var existings = FindObjectsOfType<ShadowSorter>();
for (int i = existings.Length - 1; i > 0; i--)
{
Destroy(existings[i]);
}
#if UNITY_EDITOR
var hidden = GameObject.Find("/" + nameof(ShadowSorter));
while (hidden)
{
DestroyImmediate(hidden);
hidden = GameObject.Find("/" + nameof(ShadowSorter));
}
#endif
instance = existings.Length > 0 ? existings[0] : null;
if (!instance)
{
var obj = new GameObject(nameof(ShadowSorter)) {
#if LETAI_TRUESHADOW_DEBUG
hideFlags = DebugSettings.Instance.showObjects
? HideFlags.DontSave
: HideFlags.HideAndDontSave
#else
hideFlags = HideFlags.HideAndDontSave
#endif
};
instance = obj.AddComponent<ShadowSorter>();
}
}
return instance;
}
}
readonly IndexedSet<TrueShadow> shadows = new IndexedSet<TrueShadow>();
readonly IndexedSet<SortGroup> sortGroups = new IndexedSet<SortGroup>();
public void Register(TrueShadow shadow)
{
shadows.AddUnique(shadow);
}
public void UnRegister(TrueShadow shadow)
{
shadows.Remove(shadow);
}
void LateUpdate()
{
if (!this) return;
for (var i = 0; i < shadows.Count; i++)
{
var shadow = shadows[i];
if (!shadow || !shadow.isActiveAndEnabled)
continue;
shadow.CheckHierarchyDirtied();
if (shadow.HierachyDirty)
AddSortEntry(shadow);
}
Sort();
}
void AddSortEntry(TrueShadow shadow)
{
var entry = new SortEntry(shadow);
var group = new SortGroup(entry);
var oldIndex = sortGroups.IndexOf(group);
if (oldIndex > -1)
sortGroups[oldIndex].Add(entry);
else
sortGroups.Add(group);
}
public void Sort()
{
for (var i = 0; i < sortGroups.Count; i++)
{
var group = sortGroups[i];
if (!group.parentTransform)
continue;
foreach (var entry in group.sortEntries)
{
entry.rendererTransform.SetParent(group.parentTransform, false);
var rendererSid = entry.rendererTransform.GetSiblingIndex();
var shadowSid = entry.shadowTransform.GetSiblingIndex();
if (rendererSid > shadowSid)
{
entry.rendererTransform.SetSiblingIndex(shadowSid);
}
else
{
entry.rendererTransform.SetSiblingIndex(shadowSid - 1);
}
entry.shadow.UnSetHierachyDirty();
}
// This is a separated loop, as siblind index of an entry will be affected by the laters
foreach (var entry in group.sortEntries)
{
entry.shadow.ForgetSiblingIndexChanges();
}
}
sortGroups.Clear();
}
void OnApplicationQuit()
{
// make sure object are recreated when exit play mode. Otherwise it turn into some weird state. need more research
Destroy(gameObject);
}
}
}
fileFormatVersion: 2
guid: cbf4f3c805fa455abb21fbb9ad6e54d5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: b33ab8defd2a71c44928b27c4570682a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using UnityEngine;
namespace LeTai.TrueShadow
{
public enum BlendMode
{
Normal,
Additive,
Screen,
Multiply,
}
public static class BlendModeExtensions
{
static Material matNormal;
static Material materialAdditive;
static Material matScreen;
static Material matMultiply;
public static Material GetMaterial(this BlendMode blendMode)
{
switch (blendMode)
{
case BlendMode.Normal:
if (!matNormal) matNormal = new Material(Shader.Find("UI/TrueShadow-Normal"));
return matNormal;
case BlendMode.Additive:
if (!materialAdditive) materialAdditive = new Material(Shader.Find("UI/TrueShadow-Additive"));
return materialAdditive;
case BlendMode.Screen:
if (!matScreen) matScreen = new Material(Shader.Find("UI/TrueShadow-Screen"));
return matScreen;
case BlendMode.Multiply:
if (!matMultiply) matMultiply = new Material(Shader.Find("UI/TrueShadow-Multiply"));
return matMultiply;
default:
throw new ArgumentOutOfRangeException();
}
}
}
}
fileFormatVersion: 2
guid: 3379d45961064912b9e67abda88f84da
timeCreated: 1594095942
\ No newline at end of file
namespace LeTai.TrueShadow
{
public enum ColorBleedMode
{
ImageColor,
ShadowColor,
Black,
White,
Plugin
}
}
fileFormatVersion: 2
guid: e19e27572a184315b94a65c4dcbc9d98
timeCreated: 1596027283
\ No newline at end of file
using UnityEngine;
namespace LeTai.TrueShadow
{
class ShadowContainer
{
public RenderTexture Texture { get; }
public ShadowSettingSnapshot Snapshot { get; }
public int Padding { get; }
public Vector2Int ImprintSize { get; }
public int RefCount { get; internal set; }
public readonly int requestHash;
internal ShadowContainer(RenderTexture texture,
ShadowSettingSnapshot snapshot,
int padding,
Vector2Int imprintSize)
{
Texture = texture;
Snapshot = snapshot;
Padding = padding;
ImprintSize = imprintSize;
RefCount = 1;
requestHash = snapshot.GetHashCode();
}
}
}
fileFormatVersion: 2
guid: de9d78182ae045cfad04addb713cf2e0
timeCreated: 1595408371
\ No newline at end of file
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow
{
interface IChangeTracker
{
void Check();
}
class ChangeTracker<T> : IChangeTracker
{
T previousValue;
readonly Func<T> getValue;
readonly Func<T, T> onChange;
readonly Func<T, T, bool> compare;
public ChangeTracker(Func<T> getValue,
Func<T, T> onChange,
Func<T, T, bool> compare = null)
{
this.getValue = getValue;
this.onChange = onChange;
this.compare = compare ?? EqualityComparer<T>.Default.Equals;
previousValue = this.getValue();
}
public void Forget()
{
previousValue = getValue();
}
public void Check()
{
T newValue = getValue();
if (!compare(previousValue, newValue))
{
previousValue = onChange(newValue);
}
}
}
public partial class TrueShadow
{
Action checkHierarchyDirtiedDelegate;
IChangeTracker[] transformTrackers;
ChangeTracker<int>[] hierachyTrackers;
void InitInvalidator()
{
checkHierarchyDirtiedDelegate = CheckHierarchyDirtied;
hierachyTrackers = new[] {
new ChangeTracker<int>(
() => RectTransform.GetSiblingIndex(),
newValue =>
{
SetHierachyDirty();
return newValue; // + 1;
}
),
new ChangeTracker<int>(
() =>
{
if (shadowRenderer)
return shadowRenderer.transform.GetSiblingIndex();
return -1;
},
newValue =>
{
SetHierachyDirty();
return newValue; // + 1;
}
)
};
transformTrackers = new IChangeTracker[] {
new ChangeTracker<Vector3>(
() => RectTransform.position,
newValue =>
{
SetLayoutDirty();
return newValue;
},
(prev, curr) => prev == curr
),
new ChangeTracker<Quaternion>(
() => RectTransform.rotation,
newValue =>
{
SetLayoutDirty();
if (Cutout)
SetTextureDirty();
return newValue;
},
(prev, curr) => prev == curr
),
};
#if TMP_PRESENT
if (Graphic is TMPro.TextMeshProUGUI)
{
var old = transformTrackers;
transformTrackers = new IChangeTracker[old.Length + 1];
Array.Copy(old, transformTrackers, old.Length);
transformTrackers[old.Length] = new ChangeTracker<Vector3>(
() => RectTransform.lossyScale,
newValue =>
{
SetLayoutTextureDirty();
return newValue;
},
(prev, curr) =>
{
if (prev == curr) // Early exit for most common path
return true;
if (prev.x * prev.y * prev.z < 1e-9f
&& curr.x * curr.y * curr.z > 1e-9f)
return false;
var diff = curr - prev;
return Mathf.Abs(diff.x / prev.x) < .25f
&& Mathf.Abs(diff.y / prev.y) < .25f
&& Mathf.Abs(diff.z / prev.z) < .25f;
}
);
}
#endif
Graphic.RegisterDirtyLayoutCallback(SetLayoutTextureDirty);
Graphic.RegisterDirtyVerticesCallback(SetLayoutTextureDirty);
Graphic.RegisterDirtyMaterialCallback(OnGraphicMaterialDirty);
CheckHierarchyDirtied();
CheckTransformDirtied();
}
void TerminateInvalidator()
{
if (Graphic)
{
Graphic.UnregisterDirtyLayoutCallback(SetLayoutTextureDirty);
Graphic.UnregisterDirtyVerticesCallback(SetLayoutTextureDirty);
Graphic.UnregisterDirtyMaterialCallback(OnGraphicMaterialDirty);
}
}
void OnGraphicMaterialDirty()
{
SetLayoutTextureDirty();
shadowRenderer.UpdateMaterial();
}
internal void CheckTransformDirtied()
{
if (transformTrackers != null)
{
for (var i = 0; i < transformTrackers.Length; i++)
{
transformTrackers[i].Check();
}
}
}
internal void CheckHierarchyDirtied()
{
if (ShadowAsSibling && hierachyTrackers != null)
{
for (var i = 0; i < hierachyTrackers.Length; i++)
{
hierachyTrackers[i].Check();
}
}
}
internal void ForgetSiblingIndexChanges()
{
for (var i = 0; i < hierachyTrackers.Length; i++)
{
hierachyTrackers[i].Forget();
}
}
#if UNITY_EDITOR
protected override void Reset()
{
base.Reset();
ApplySerializedData();
if (ProjectSettings.Instance.UseGlobalAngleByDefault)
{
UseGlobalAngle = true;
}
}
#endif
protected override void OnTransformParentChanged()
{
base.OnTransformParentChanged();
if (!isActiveAndEnabled) return;
SetHierachyDirty();
this.NextFrames(checkHierarchyDirtiedDelegate);
}
protected override void OnRectTransformDimensionsChange()
{
base.OnRectTransformDimensionsChange();
if (!isActiveAndEnabled) return;
SetLayoutTextureDirty();
}
protected override void OnDidApplyAnimationProperties()
{
if (!isActiveAndEnabled) return;
SetLayoutTextureDirty();
}
public void ModifyMesh(Mesh mesh)
{
if (!isActiveAndEnabled) return;
if (SpriteMesh) Utility.SafeDestroy(SpriteMesh);
SpriteMesh = Instantiate(mesh);
SetLayoutTextureDirty();
}
public void ModifyMesh(VertexHelper verts)
{
if (!isActiveAndEnabled) return;
// For when pressing play while in prefab mode
if (!SpriteMesh) SpriteMesh = new Mesh();
verts.FillMesh(SpriteMesh);
SetLayoutTextureDirty();
}
void SetLayoutTextureDirty()
{
#if TMP_PRESENT
if (Graphic is TMPro.TextMeshProUGUI tmp)
{
if (tmp.text.Length == 0)
SpriteMesh = null;
else
SpriteMesh = tmp.mesh;
}
#endif
SetLayoutDirty();
SetTextureDirty();
}
}
}
fileFormatVersion: 2
guid: 8ed7fd00d57e48cdb5a496fb99282d83
timeCreated: 1594977538
\ No newline at end of file
using System.Collections.Generic;
using System.Linq;
using LeTai.TrueShadow.PluginInterfaces;
using UnityEngine;
using UnityEngine.UI;
namespace LeTai.TrueShadow
{
public partial class TrueShadow
{
ITrueShadowCasterMaterialProvider casterMaterialProvider;
ITrueShadowCasterMaterialPropertiesModifier casterMaterialPropertiesModifier;
ITrueShadowCasterMeshModifier casterMeshModifier;
ITrueShadowCasterClearColorProvider casterClearColorProvider;
ITrueShadowRendererMaterialProvider rendererMaterialProvider;
ITrueShadowRendererMaterialModifier rendererMaterialModifier;
ITrueShadowRendererMeshModifier rendererMeshModifier;
public bool UsingRendererMaterialProvider => rendererMaterialProvider != null;
void InitializePlugins()
{
casterMaterialProvider = GetComponent<ITrueShadowCasterMaterialProvider>();
casterMaterialPropertiesModifier = GetComponent<ITrueShadowCasterMaterialPropertiesModifier>();
casterMeshModifier = GetComponent<ITrueShadowCasterMeshModifier>();
casterClearColorProvider = GetComponent<ITrueShadowCasterClearColorProvider>();
if (casterClearColorProvider != null)
ColorBleedMode = ColorBleedMode.Plugin;
rendererMaterialProvider = GetComponent<ITrueShadowRendererMaterialProvider>();
rendererMaterialModifier = GetComponent<ITrueShadowRendererMaterialModifier>();
rendererMeshModifier = GetComponent<ITrueShadowRendererMeshModifier>();
if (casterMaterialProvider != null)
{
casterMaterialProvider.materialReplaced += HandleCasterMaterialReplaced;
casterMaterialProvider.materialModified += HandleCasterMaterialModified;
}
if (rendererMaterialProvider != null)
{
rendererMaterialProvider.materialReplaced += HandleRendererMaterialReplaced;
rendererMaterialProvider.materialModified += HandleRendererMaterialModified;
}
}
void TerminatePlugins()
{
if (casterMaterialProvider != null)
{
casterMaterialProvider.materialReplaced -= HandleCasterMaterialReplaced;
casterMaterialProvider.materialModified -= HandleCasterMaterialModified;
}
if (rendererMaterialProvider != null)
{
rendererMaterialProvider.materialReplaced -= HandleRendererMaterialReplaced;
rendererMaterialProvider.materialModified -= HandleRendererMaterialModified;
}
}
public void RefreshPlugins()
{
TerminatePlugins();
InitializePlugins();
}
void HandleCasterMaterialReplaced()
{
SetTextureDirty();
}
void HandleRendererMaterialReplaced()
{
if (shadowRenderer)
shadowRenderer.UpdateMaterial();
}
void HandleCasterMaterialModified()
{
SetTextureDirty();
}
void HandleRendererMaterialModified()
{
if (shadowRenderer)
shadowRenderer.SetMaterialDirty();
}
public virtual Material GetShadowCastingMaterial()
{
Material provided = null;
if (casterMaterialProvider != null)
provided = casterMaterialProvider.GetTrueShadowCasterMaterial();
#if TMP_PRESENT
else if (Graphic is TMPro.TextMeshProUGUI tmp)
{
provided = tmp.materialForRendering;
}
#endif
return provided != null ? provided : Graphic.material;
}
public virtual void ModifyShadowCastingMaterialProperties(MaterialPropertyBlock propertyBlock)
{
casterMaterialPropertiesModifier?.ModifyTrueShadowCasterMaterialProperties(propertyBlock);
}
public virtual void ModifyShadowCastingMesh(Mesh mesh)
{
casterMeshModifier?.ModifyTrueShadowCasterMesh(mesh);
// Caster can be semi-transparent, but cutout requires mostly opaque stencil.
// Setting alpha to 1 in fragment can't work because of antialiasing.
MakeOpaque(mesh);
}
readonly List<Color32> meshColors = new List<Color32>(4);
readonly List<Color32> meshColorsOpaque = new List<Color32>(4);
void MakeOpaque(Mesh mesh)
{
if (shadowAsSibling)
return;
mesh.GetColors(meshColors);
var meshColorCount = meshColors.Count;
if (meshColorCount < 1) return;
if (meshColorsOpaque.Count == meshColorCount)
{
// Assuming vertex colors are identical
// TODO: This is the case for builtin graphics, but userscript may invalidate that.
if (meshColors[0].a == meshColorsOpaque[0].a)
return;
}
else
{
// TODO: This assumed vertex count change infrequently. Is not the case with Text
meshColorsOpaque.Clear();
meshColorsOpaque.AddRange(Enumerable.Repeat(new Color32(0, 0, 0, 0), meshColorCount));
}
for (var i = 0; i < meshColorCount; i++)
{
var c = meshColors[i];
c.a = 255;
meshColorsOpaque[i] = c;
}
mesh.SetColors(meshColorsOpaque);
}
public virtual Material GetShadowRenderingMaterial()
{
var provided = rendererMaterialProvider?.GetTrueShadowRendererMaterial();
return provided != null ? provided : BlendMode.GetMaterial();
}
public virtual void ModifyShadowRendererMaterial(Material baseMaterial)
{
rendererMaterialModifier?.ModifyTrueShadowRendererMaterial(baseMaterial);
}
public virtual void ModifyShadowRendererMesh(VertexHelper vertexHelper)
{
rendererMeshModifier?.ModifyTrueShadowRendererMesh(vertexHelper);
}
}
}
fileFormatVersion: 2
guid: c652c1f825c14084a6d24c61de8f7772
timeCreated: 1597650075
\ No newline at end of file
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace LeTai.TrueShadow
{
[RequireComponent(typeof(Graphic))]
// Doesn't seem to cause problem any more. Hmm
// [DisallowMultipleComponent]
[HelpURL("https://leloctai.com/trueshadow/docs/articles/customize.html")]
[ExecuteAlways]
public partial class TrueShadow : UIBehaviour, IMeshModifier, ICanvasElement
{
static readonly Color DEFAULT_COLOR = new Color(0, 0, 0, .6f);
[Tooltip("Size of the shadow")]
[SerializeField] float size = 32;
[Tooltip("Spread of the shadow")]
[SpreadSlider]
[SerializeField] float spread = 0;
[SerializeField] bool useGlobalAngle = false;
[Tooltip("Direction to offset the shadow toward")]
[Knob]
[SerializeField] float offsetAngle = 90;
[Tooltip("How far to offset the shadow")]
[SerializeField] float offsetDistance = 12;
[SerializeField] Vector2 offset = Vector2.zero;
[Tooltip("Tint the shadow")]
[SerializeField] Color color = DEFAULT_COLOR;
[Tooltip("Inset shadow")]
[InsetToggle]
[SerializeField] bool inset = false;
[Tooltip("Blend mode of the shadow")]
[SerializeField] BlendMode blendMode;
[FormerlySerializedAs("multiplyCasterAlpha")]
[Tooltip("Allow shadow to cross-fade with caster")]
[SerializeField] bool useCasterAlpha = true;
[Tooltip("Ignore the shadow caster's color, so you can choose specific color for your shadow")]
[SerializeField] bool ignoreCasterColor = false;
[Tooltip("How to obtain the color of the area outside of the source image. " +
"Automatically set based on Blend Mode. You should only change this setting if you are using some very custom UI that require it")]
[SerializeField] ColorBleedMode colorBleedMode;
[Tooltip("Improve shadow fit on some sprites")]
[SerializeField] bool disableFitCompensation;
[Tooltip("Position the shadow GameObject as previous sibling of the UI element")]
[SerializeField] bool shadowAsSibling;
[Tooltip("Cut the source image from the shadow to avoid shadow showing behind semi-transparent UI")]
[SerializeField] bool cutout;
#pragma warning disable 0649
[Tooltip(
"Bake the shadow to a sprite to reduce CPU and GPU usage at runtime, at the cost of storage, memory and flexibility")]
[SerializeField] bool baked;
#pragma warning restore 0649
[SerializeField] bool modifiedFromInspector = false;
public float Size
{
get => size;
set
{
var newSize = Mathf.Max(0, value);
if (modifiedFromInspector || !Mathf.Approximately(size, newSize))
{
modifiedFromInspector = false;
SetLayoutDirty();
SetTextureDirty();
}
size = newSize;
if (Inset && OffsetDistance > Size)
{
OffsetDistance = Size;
}
}
}
public float Spread
{
get => spread;
set
{
var newSpread = Mathf.Clamp01(value);
if (modifiedFromInspector || !Mathf.Approximately(spread, newSpread))
{
modifiedFromInspector = false;
SetLayoutDirty();
SetTextureDirty();
}
spread = newSpread;
}
}
public bool UseGlobalAngle
{
get => useGlobalAngle;
set
{
useGlobalAngle = value;
ProjectSettings.Instance.globalAngleChanged -= OnGlobalAngleChanged;
var globalAngle = ProjectSettings.Instance.GlobalAngle;
if (useGlobalAngle)
{
offset = Math.AngleDistanceVector(globalAngle, offset.magnitude, Vector2.right);
SetLayoutDirty();
if (Cutout)
SetTextureDirty();
ProjectSettings.Instance.globalAngleChanged += OnGlobalAngleChanged;
}
else
{
var localAngle = offsetAngle;
OffsetAngle = globalAngle;
OffsetAngle = localAngle;
}
}
}
public float OffsetAngle
{
get => offsetAngle;
set
{
if (UseGlobalAngle) return;
var newValue = (value + 360f) % 360f;
if (modifiedFromInspector || !Mathf.Approximately(offsetAngle, newValue))
{
modifiedFromInspector = false;
SetLayoutDirty();
if (Cutout)
SetTextureDirty();
}
offsetAngle = newValue;
offset = Math.AngleDistanceVector(offsetAngle, offset.magnitude, Vector2.right);
}
}
public float OffsetDistance
{
get => offsetDistance;
set
{
// Limit offset distance for now.
// In order to properly render larger offset, imprint have to be rendered twice.
// TODO: Implement if no one complain about perf
var newValue = value;
if (Inset)
newValue = Mathf.Clamp(newValue, 0, Size);
else
newValue = Mathf.Max(0, newValue);
if (modifiedFromInspector || !Mathf.Approximately(offsetDistance, newValue))
{
modifiedFromInspector = false;
SetLayoutDirty();
if (Cutout)
SetTextureDirty();
}
offsetDistance = newValue;
offset = offset.sqrMagnitude < 1e-6f
? Math.AngleDistanceVector(offsetAngle, offsetDistance, Vector2.right)
: offset.normalized * offsetDistance;
}
}
public Color Color
{
get => color;
set
{
if (modifiedFromInspector || value != color)
{
modifiedFromInspector = false;
SetLayoutDirty();
}
color = value;
}
}
/// <summary>
/// Allow shadow to cross-fade with caster
/// </summary>
public bool UseCasterAlpha
{
get => useCasterAlpha;
set
{
if (modifiedFromInspector || value != useCasterAlpha)
{
modifiedFromInspector = false;
SetLayoutDirty();
}
useCasterAlpha = value;
}
}
/// <summary>
/// Ignore the shadow caster's color, so you can choose specific color for your shadow.
/// When false, <see cref="Color"/> is multiplied with caster's color.
/// </summary>
public bool IgnoreCasterColor
{
get => ignoreCasterColor;
set
{
if (modifiedFromInspector || value != ignoreCasterColor)
{
modifiedFromInspector = false;
SetTextureDirty();
}
ignoreCasterColor = value;
}
}
public bool Inset
{
get => inset;
set
{
if (modifiedFromInspector || value != inset)
{
modifiedFromInspector = false;
SetLayoutDirty();
SetTextureDirty();
}
inset = value;
if (Inset && OffsetDistance > Size)
{
OffsetDistance = Size;
}
}
}
public BlendMode BlendMode
{
get => blendMode;
set
{
// Work around for Unity bug causing references loss
if (!Graphic || !CanvasRenderer)
return;
blendMode = value;
shadowRenderer.UpdateMaterial();
switch (blendMode)
{
case BlendMode.Normal:
case BlendMode.Additive:
case BlendMode.Screen:
case BlendMode.Multiply:
ColorBleedMode = ColorBleedMode.Black;
break;
default:
ColorBleedMode = ColorBleedMode.Black;
break;
}
}
}
/// <summary>
/// How to obtain the color of the area outside of the source image. Automatically set based on Blend Mode. You should only change this setting if you are using some very custom UI that require it.
/// </summary>
public ColorBleedMode ColorBleedMode
{
get => colorBleedMode;
set
{
if (modifiedFromInspector || colorBleedMode != value)
{
modifiedFromInspector = false;
colorBleedMode = value;
SetTextureDirty();
}
}
}
/// <summary>
/// Improve shadow fit on some sprites
/// </summary>
public bool DisableFitCompensation
{
get => disableFitCompensation;
set
{
if (modifiedFromInspector || disableFitCompensation != value)
{
modifiedFromInspector = false;
disableFitCompensation = value;
SetLayoutDirty();
}
}
}
/// <summary>
/// The area where the alpha channel = 0 can be either 0, or the color of the edge of the texture, depend on how the texture was authored.
/// Normally this is not visible, but when blurred, the alpha in these area will become greater than 0
/// Depend on the blendmode, different color for this clear area may be desired.
///
/// You can provide custom clear color by implementing <see cref="PluginInterfaces.ITrueShadowCasterClearColorProvider"/>, and set this to Plugin
/// </summary>
/// <exception cref="ArgumentOutOfRangeException"></exception>
public Color ClearColor
{
get
{
switch (colorBleedMode)
{
case ColorBleedMode.ImageColor:
return Graphic.color.WithA(0);
case ColorBleedMode.ShadowColor:
return Color.WithA(0);
case ColorBleedMode.Black:
return Color.clear;
case ColorBleedMode.White:
return new Color(1, 1, 1, 0);
case ColorBleedMode.Plugin:
return casterClearColorProvider?.GetTrueShadowCasterClearColor() ?? Color.clear;
default:
throw new ArgumentOutOfRangeException();
}
}
}
/// <summary>
/// Can't be implemented due to <see href="https://issuetracker.unity3d.com/issues/prefab-instances-sibling-index-is-not-updated-when-a-lower-index-sibling-is-deleted">Unity's bug 1280465</see>. Do not use!
/// </summary>
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public bool ShadowAsSibling
{
get => shadowAsSibling;
set
{
shadowAsSibling = value;
ShadowRenderer.ClearMaskMaterialCache();
if (shadowAsSibling)
{
ShadowSorter.Instance.Register(this);
}
else
{
ShadowSorter.Instance.UnRegister(this);
if (shadowRenderer) // defensive. undo & prefab make state weird sometime
{
var rendererTransform = shadowRenderer.transform;
rendererTransform.SetParent(transform, true);
rendererTransform.SetSiblingIndex(0);
}
}
}
}
/// <summary>
/// When using a Material that can modify the shadow shape,
/// use this to prevent caching caster that differ only in material property.
/// <a href="https://leloctai.com/trueshadow/docs/articles/integration.html#make-sure-shadow-update">More info</a>
/// </summary>
public int CustomHash
{
get => customHash;
set
{
if (customHash != value)
SetTextureDirty();
customHash = value;
}
}
public Vector2 Offset => offset;
#if LETAI_TRUESHADOW_DEBUG
public bool alwaysRender;
#endif
/// <summary>
/// Always true due to <see cref="ShadowAsSibling"/>. Do not use!
/// </summary>
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public bool Cutout
{
get => !shadowAsSibling || cutout;
set => cutout = value;
}
[SerializeField] List<Sprite> bakedShadows;
internal ShadowRenderer shadowRenderer;
internal Mesh SpriteMesh { get; set; }
internal Graphic Graphic { get; set; }
internal CanvasRenderer CanvasRenderer { get; set; }
internal RectTransform RectTransform { get; private set; }
internal Texture Content
{
get
{
switch (Graphic)
{
case Image image:
var sprite = image.overrideSprite;
return sprite ? sprite.texture : null;
case RawImage rawImage: return rawImage.texture;
#if TMP_PRESENT
case TMPro.TextMeshProUGUI tmp: return tmp.materialForRendering.mainTexture;
#endif
default: return Graphic.mainTexture;
}
}
}
ShadowContainer shadowContainer;
internal ShadowContainer ShadowContainer => shadowContainer;
int customHash = 0;
bool textureDirty;
bool layoutDirty;
internal bool HierachyDirty { get; private set; }
internal int TextureRevision { get; private set; }
void OnGlobalAngleChanged(float angle)
{
offset = Math.AngleDistanceVector(angle, offset.magnitude, Vector2.right);
SetLayoutDirty();
if (Cutout)
SetTextureDirty();
}
protected override void Awake()
{
ShadowRenderer.QueueRedraw();
if (ShadowAsSibling)
ShadowSorter.Instance.Register(this);
}
protected override void OnEnable()
{
base.OnEnable();
RectTransform = GetComponent<RectTransform>();
Graphic = GetComponent<Graphic>();
CanvasRenderer = GetComponent<CanvasRenderer>();
if (!SpriteMesh) SpriteMesh = new Mesh();
InitializePlugins();
if (bakedShadows == null)
bakedShadows = new List<Sprite>(4);
InitInvalidator();
ShadowRenderer.Initialize(this, ref shadowRenderer);
Canvas.willRenderCanvases += OnWillRenderCanvas;
if (UseGlobalAngle)
{
ProjectSettings.Instance.globalAngleChanged -= OnGlobalAngleChanged;
ProjectSettings.Instance.globalAngleChanged += OnGlobalAngleChanged;
}
// Ensure sprite mesh is acquired.
if(Graphic)
Graphic.SetVerticesDirty();
#if UNITY_EDITOR
UnityEditor.Undo.undoRedoPerformed += ApplySerializedData;
#endif
#if UNITY_EDITOR
if (!UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode)
UnityEditor.EditorApplication.QueuePlayerLoopUpdate();
#endif
}
public void ApplySerializedData()
{
// Changes from prefab apply does not seem to call certain setters. Call manually
Size = size;
Spread = spread;
OffsetAngle = offsetAngle;
OffsetDistance = offsetDistance;
BlendMode = blendMode;
ShadowAsSibling = shadowAsSibling;
SetHierachyDirty();
SetLayoutDirty();
SetTextureDirty();
if (shadowRenderer) shadowRenderer.SetMaterialDirty();
}
protected override void OnDisable()
{
ProjectSettings.Instance.globalAngleChanged -= OnGlobalAngleChanged;
Canvas.willRenderCanvases -= OnWillRenderCanvas;
TerminateInvalidator();
TerminatePlugins();
if (shadowRenderer) shadowRenderer.gameObject.SetActive(false);
#if UNITY_EDITOR
UnityEditor.Undo.undoRedoPerformed -= ApplySerializedData;
#endif
}
protected override void OnDestroy()
{
ShadowSorter.Instance.UnRegister(this);
if (shadowRenderer) shadowRenderer.Dispose();
ShadowFactory.Instance.ReleaseContainer(ref shadowContainer);
}
bool ShouldPerformWorks()
{
bool areCanvasRenderersCulled = CanvasRenderer && CanvasRenderer.cull &&
shadowRenderer.CanvasRenderer && shadowRenderer.CanvasRenderer.cull;
return isActiveAndEnabled && !areCanvasRenderersCulled;
}
void LateUpdate()
{
if (!ShouldPerformWorks())
return;
CheckTransformDirtied();
}
public void Rebuild(CanvasUpdate executing)
{
// Debug.Assert(true, "This should not be called in child mode");
if (!ShouldPerformWorks()) return;
if (executing == CanvasUpdate.PostLayout)
{
if (layoutDirty)
{
shadowRenderer.ReLayout();
layoutDirty = false;
}
}
}
void OnWillRenderCanvas()
{
if (!isActiveAndEnabled) return;
#if LETAI_TRUESHADOW_DEBUG
if (alwaysRender) textureDirty = true;
#endif
if (!ShouldPerformWorks()) return;
if (textureDirty && Graphic && Graphic.canvas)
{
ShadowFactory.Instance.Get(new ShadowSettingSnapshot(this), ref shadowContainer);
shadowRenderer.SetTexture(shadowContainer?.Texture);
textureDirty = false;
}
if (!shadowAsSibling)
{
if (shadowRenderer.transform.parent != RectTransform)
shadowRenderer.transform.SetParent(RectTransform, true);
if (shadowRenderer.transform.GetSiblingIndex() != 0)
shadowRenderer.transform.SetSiblingIndex(0);
UnSetHierachyDirty();
if (layoutDirty)
{
shadowRenderer.ReLayout();
layoutDirty = false;
}
}
}
public void LayoutComplete() { }
public void GraphicUpdateComplete() { }
public void SetTextureDirty()
{
textureDirty = true;
}
public void SetLayoutDirty()
{
layoutDirty = true;
}
public void SetHierachyDirty()
{
HierachyDirty = true;
}
internal void UnSetHierachyDirty()
{
HierachyDirty = false;
}
}
}
fileFormatVersion: 2
guid: 52c162dc854d2f24fa639ba0623de5ef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {fileID: 2800000, guid: 098c7906709c37c4bba842c34581765c, type: 3}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: cfd517cb9e8990741a180b6341cd8766
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
namespace LeTai
{
public static class ExtensionMethods
{
public static Vector4 ToMinMaxVector(this Rect self)
{
return new Vector4(
self.xMin,
self.yMin,
self.xMax,
self.yMax
);
}
static Mesh fullscreenTriangle;
/// <summary>
/// A fullscreen triangle mesh.
/// </summary>
static Mesh FullscreenTriangle
{
get
{
if (fullscreenTriangle != null)
return fullscreenTriangle;
fullscreenTriangle = new Mesh {name = "Fullscreen Triangle"};
fullscreenTriangle.SetVertices(
new List<Vector3> {
new Vector3(-1f, -1f, 0f),
new Vector3(-1f, 3f, 0f),
new Vector3(3f, -1f, 0f)
}
);
fullscreenTriangle.SetIndices(new[] {0, 1, 2}, MeshTopology.Triangles, 0, false);
fullscreenTriangle.UploadMeshData(false);
return fullscreenTriangle;
}
}
public static void BlitFullscreenTriangle(this CommandBuffer cmd,
RenderTargetIdentifier source,
RenderTargetIdentifier destination,
Material material,
int pass = 0)
{
cmd.SetGlobalTexture("_MainTex", source);
#if UNITY_2018_2_OR_NEWER
cmd.SetRenderTarget(destination, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store);
#else
cmd.SetRenderTarget(destination);
#endif
cmd.DrawMesh(FullscreenTriangle, Matrix4x4.identity, material, 0, pass);
}
internal static bool Approximately(this Rect self, Rect other)
{
return QuickApproximate(self.x, other.x)
&& QuickApproximate(self.y, other.y)
&& QuickApproximate(self.width, other.width)
&& QuickApproximate(self.height, other.height);
}
//A simpler Mathf.Approximately for our purpose
private static bool QuickApproximate(float a, float b)
{
return Mathf.Abs(b - a) < 1.175494E-38f;
}
public static Vector3 WithZ(this Vector2 self, float z)
{
return new Vector3(self.x, self.y, z);
}
public static Color WithA(this Color self, float a)
{
return new Color(self.r, self.g, self.b, a);
}
public static void NextFrames(this MonoBehaviour behaviour, Action action, int nFrames = 1)
{
behaviour.StartCoroutine(NextFrame(action, nFrames));
}
static IEnumerator NextFrame(Action action, int nFrames)
{
for (var i = 0; i < nFrames; i++)
yield return null;
action();
}
public static void SetKeyword(this Material material, string keyword, bool enabled)
{
if (enabled)
material.EnableKeyword(keyword);
else
material.DisableKeyword(keyword);
}
public static Vector2 Frac(this Vector2 vec)
{
return new Vector2(
vec.x - Mathf.Floor(vec.x),
vec.y - Mathf.Floor(vec.y)
);
}
public static Vector2 LocalToScreenPoint(this RectTransform rt,
Vector3 localPoint,
Camera referenceCamera = null)
{
return RectTransformUtility.WorldToScreenPoint(referenceCamera, rt.TransformPoint(localPoint));
}
public static Vector2 ScreenToCanvasSize(this RectTransform rt,
Vector2 size,
Camera referenceCamera = null)
{
RectTransformUtility.ScreenPointToLocalPointInRectangle(rt, Vector2.zero, referenceCamera, out var start);
RectTransformUtility.ScreenPointToLocalPointInRectangle(rt, size, referenceCamera, out var end);
return end - start;
}
}
}
fileFormatVersion: 2
guid: d7aeb90a879f07043a321b93dcd7310f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
namespace LeTai
{
// Extended from https://referencesource.microsoft.com/#mscorlib/system/tuple.cs,52
public static class HashUtils
{
public static int CombineHashCodes(int h1, int h2)
{
return ((h1 << 5) + h1) ^ h2;
}
public static int CombineHashCodes(int h1, int h2, int h3)
{
return CombineHashCodes(CombineHashCodes(h1, h2), h3);
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4)
{
return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8), h9);
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8), CombineHashCodes(h9, h10));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10, int h11)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8), CombineHashCodes(h9, h10, h11));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10, int h11, int h12)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8), CombineHashCodes(h9, h10, h11, h12));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10, int h11, int h12, int h13)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8),
CombineHashCodes(h9, h10, h11, h12, h13));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10, int h11, int h12, int h13, int h14)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8),
CombineHashCodes(h9, h10, h11, h12, h13, h14));
}
public static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8, int h9,
int h10, int h11, int h12, int h13, int h14, int h15)
{
return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4, h5, h6, h7, h8),
CombineHashCodes(h9, h10, h11, h12, h13, h14, h15));
}
}
}
fileFormatVersion: 2
guid: aaf5875ff23b4286b3ab38783b8da255
timeCreated: 1595834828
\ No newline at end of file
using System;
using System.Collections;
using System.Collections.Generic;
namespace LeTai.TrueShadow
{
class IndexedSet<T> : IList<T>
{
readonly List<T> list = new List<T>();
readonly Dictionary<T, int> dict = new Dictionary<T, int>();
public void Add(T item)
{
dict.Add(item, list.Count);
list.Add(item);
}
public bool AddUnique(T item)
{
if (dict.ContainsKey(item))
return false;
dict.Add(item, list.Count);
list.Add(item);
return true;
}
public bool Remove(T item)
{
if (!dict.TryGetValue(item, out var index))
return false;
RemoveAt(index);
return true;
}
public void Remove(Predicate<T> match)
{
int i = 0;
while (i < list.Count)
{
T item = list[i];
if (match(item))
Remove(item);
else
i++;
}
}
public void Clear()
{
list.Clear();
dict.Clear();
}
public bool Contains(T item)
{
return dict.ContainsKey(item);
}
public void CopyTo(T[] array, int arrayIndex)
{
list.CopyTo(array, arrayIndex);
}
public int Count => list.Count;
public bool IsReadOnly => false;
public int IndexOf(T item)
{
if (dict.TryGetValue(item, out var index))
return index;
return -1;
}
public void Insert(int index, T item)
{
//We could support this, but the semantics would be weird. Order is not guaranteed..
throw new NotSupportedException(
"Random Insertion is semantically invalid, since this structure does not guarantee ordering.");
}
public void RemoveAt(int index)
{
T item = list[index];
dict.Remove(item);
if (index == list.Count - 1)
list.RemoveAt(index);
else
{
int replaceItemIndex = list.Count - 1;
T replaceItem = list[replaceItemIndex];
list[index] = replaceItem;
dict[replaceItem] = index;
list.RemoveAt(replaceItemIndex);
}
}
public T this[int index]
{
get => list[index];
set
{
T item = list[index];
dict.Remove(item);
list[index] = value;
dict.Add(item, index);
}
}
//Sorts the internal list, this makes the exposed index accessor sorted as well.
//But note that any insertion or deletion, can unorder the collection again.
public void Sort(Comparison<T> sortLayoutFunction)
{
//There might be better ways to sort and keep the dictionary index up to date.
list.Sort(sortLayoutFunction);
//Rebuild the dictionary index.
for (int i = 0; i < list.Count; ++i)
{
T item = list[i];
dict[item] = i;
}
}
public IEnumerator<T> GetEnumerator()
{
return list.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
fileFormatVersion: 2
guid: 57517cc9ab1945abb176a2d7f6545890
timeCreated: 1593673391
\ No newline at end of file
using UnityEngine;
using static UnityEngine.Mathf;
namespace LeTai.TrueShadow
{
public static class Math
{
public static float Angle360(Vector2 from, Vector2 to)
{
float angle = Vector2.SignedAngle(from, to);
return angle < 0 ? 360 + angle : angle;
}
public static Vector2 AngleDistanceVector(float angle, float distance, Vector2 zeroVector)
{
return Quaternion.Euler(0, 0, -angle) * zeroVector * distance;
}
public static Vector2 Rotate(this Vector2 v, float angle)
{
var rad = angle * Deg2Rad;
var s = Sin(rad);
var c = Cos(rad);
return new Vector2(c * v.x - s * v.y,
s * v.x + c * v.y);
}
}
}
fileFormatVersion: 2
guid: 61b5b7160b6742c4bb4d5883d08e64e6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
namespace LeTai.TrueShadow
{
public class KnobAttribute : PropertyAttribute { }
public class ToggleButtonsAttribute : PropertyAttribute { }
public class InsetToggleAttribute : ToggleButtonsAttribute { }
}
fileFormatVersion: 2
guid: 60900a16da6d4f44b89f9272039ea4f1
timeCreated: 1594637349
\ No newline at end of file
using UnityEngine;
namespace LeTai
{
public static class ShaderId
{
public static readonly int MAIN_TEX = Shader.PropertyToID("_MainTex");
public static readonly int SHADOW_TEX = Shader.PropertyToID("_ShadowTex");
public static readonly int CLIP_RECT = Shader.PropertyToID("_ClipRect");
public static readonly int TEXTURE_SAMPLE_ADD = Shader.PropertyToID("_TextureSampleAdd");
public static readonly int COLOR_MASK = Shader.PropertyToID("_ColorMask");
public static readonly int STENCIL_OP = Shader.PropertyToID("_StencilOp");
public static readonly int STENCIL_ID = Shader.PropertyToID("_Stencil");
public static readonly int STENCIL_READ_MASK = Shader.PropertyToID("_StencilReadMask");
public static readonly int OFFSET = Shader.PropertyToID("_Offset");
public static readonly int OVERFLOW_ALPHA = Shader.PropertyToID("_OverflowAlpha");
public static readonly int ALPHA_MULTIPLIER = Shader.PropertyToID("_AlphaMultiplier");
public static readonly int SCREEN_PARAMS = Shader.PropertyToID("_ScreenParams");
public static readonly int SCALE_X = Shader.PropertyToID("_ScaleX");
public static readonly int SCALE_Y = Shader.PropertyToID("_ScaleY");
}
}
fileFormatVersion: 2
guid: b73a242c1b944cac9af5b62106473319
timeCreated: 1592809972
\ No newline at end of file
using UnityEngine;
namespace LeTai.TrueShadow
{
public class SpreadSliderAttribute : PropertyAttribute
{
public SpreadSliderAttribute() { }
}
}
fileFormatVersion: 2
guid: 97cb59689d014af2a249b20864599719
timeCreated: 1615190395
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using Object = UnityEngine.Object;
namespace LeTai
{
public static class Utility
{
public static void LogList<T>(IEnumerable<T> list, Func<T, object> getData)
{
StringBuilder sb = new StringBuilder();
int i = 0;
foreach (T el in list)
{
sb.Append(i + ": ");
sb.Append(getData(el).ToString());
sb.Append("\n");
i++;
}
Debug.Log(sb.ToString());
}
public static int SimplePingPong(int t, int max)
{
if (t > max)
return 2 * max - t;
return t;
}
public static void SafeDestroy(Object obj)
{
if (obj != null)
{
if (Application.isPlaying)
{
if (obj is GameObject go)
{
go.transform.parent = null;
}
Object.Destroy(obj);
}
else Object.DestroyImmediate(obj);
}
}
}
}
fileFormatVersion: 2
guid: e8dc67630fb04cc4dbd94a8ccc8fe620
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 40b61315b87c4bd46a253b98b269f700
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ddd9d826705ec4f44bdf6dfac37afa61
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0e141ed6262efd84abfb49bcc52e6bce
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 570009e5afc9b60468f2db3b75d7ef45
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: b2190b8f6874d4b478c1b152dd9a4a0f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0376804a13ef37d40a9856882349c887
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 782f14a07eea4274db80fbdadbed8ab4
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: d8db5345716686540b071ef721e88786
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 5611774239a3f5e4d80310280705cd5e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ccde80985f45d7d409aa70a21573d879
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 89f73000a075b994fa7256c4b463b908
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 346848f0285bc9e48b43d5442f611668
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: dfe15249e292b4b448477112e556ec9e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: cee0aeaee6864894e8810a245d97a061
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0df6e1fb1fbcfd54db02a12899caad66
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8d045b0e0b0686f48abbdfcb363b467e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 95826707959c46b47a37039b1249c5db
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 17259543443afa54e86001607f614958
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 57b1d6765c2640047ae39c2969531d39
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 09f6b8a6b3e40254fa2f34bcac8d12d9
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f279b5cc7c5d836479386fc3efad1ebe
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3ffa0cf6b9eea9b4eafa6eda214b8612
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 781b140980bbb9d4db6421b74e4d2d03
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f756cc726613bca4e94bda64b840e72a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: ae3ab90eda46dc042a824a85c4c3523e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 30a9295f9ba07d94d9cde4ed8520efd0
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 17f5339be683bf341b0cc78cbd29b9f8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8a01e0da0ca97c643af55d995f585799
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 4aa8d6a6763996d4888b241f7b0327b0
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e11f45f861339264cb58323db10234fd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &100709957896119282
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 244389987622057283}
m_Layer: 5
m_Name: Body
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &244389987622057283
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 100709957896119282}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3742763109469940199}
- {fileID: 8518463688388427686}
- {fileID: 735913080942025198}
- {fileID: 6585367138583333563}
- {fileID: 327959267168809180}
m_Father: {fileID: 9070486871702954148}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1920, y: 540}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &203958926995152682
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6585367138583333563}
- component: {fileID: 3775225306047802176}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6585367138583333563
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 203958926995152682}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6971184131154032948}
- {fileID: 6366713349923574683}
m_Father: {fileID: 244389987622057283}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 170, y: -20}
m_SizeDelta: {x: 500, y: 475}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &3775225306047802176
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 203958926995152682}
m_CullTransparentMesh: 1
--- !u!1 &344712826097995315
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5584720774391259796}
- component: {fileID: 5048301269101859749}
- component: {fileID: 2125083193271181214}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5584720774391259796
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 344712826097995315}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7818062306713308160}
m_Father: {fileID: 2330636928802715085}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -19.999939, y: -20}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 1, y: 1}
--- !u!222 &5048301269101859749
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 344712826097995315}
m_CullTransparentMesh: 1
--- !u!114 &2125083193271181214
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 344712826097995315}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.73333335, g: 0.8705883, b: 0.94117653, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 2550c34bcb002466682343c8e43106c7, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &452874653287735713
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9070486871702954148}
- component: {fileID: 6252092960306324860}
- component: {fileID: 6549052252845610091}
m_Layer: 5
m_Name: BG
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9070486871702954148
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 452874653287735713}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4931239609094859366}
- {fileID: 244389987622057283}
- {fileID: 8282187365826540146}
m_Father: {fileID: 2050325475219577018}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6252092960306324860
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 452874653287735713}
m_CullTransparentMesh: 1
--- !u!114 &6549052252845610091
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 452874653287735713}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.078431375}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: e11f45f861339264cb58323db10234fd, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &484484756125025704
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2702040691676737826}
- component: {fileID: 2566510030570390360}
- component: {fileID: 404182015158747926}
m_Layer: 5
m_Name: GameName
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2702040691676737826
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 484484756125025704}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4931239609094859366}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -118.7}
m_SizeDelta: {x: 500, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2566510030570390360
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 484484756125025704}
m_CullTransparentMesh: 1
--- !u!114 &404182015158747926
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 484484756125025704}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFEDF\uFEE4\uFEAE\uFEDB\uFE92\uFEEA \u0627\uFEDF\uFED4\uFEC0\uFE8E\uFE8B\uFEF4\uFEEA "
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293975739
m_fontColor: {r: 0.73333335, g: 0.87058824, b: 0.9411765, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 53.35
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0644\u0645\u0631\u0643\u0628\u0647 \u0627\u0644\u0641\u0636\u0627\u0626\u064A\u0647 "
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &756252200561193167
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7818062306713308160}
- component: {fileID: 35845047213426921}
- component: {fileID: 8990712295449037350}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7818062306713308160
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756252200561193167}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5584720774391259796}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &35845047213426921
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756252200561193167}
m_CullTransparentMesh: 1
--- !u!114 &8990712295449037350
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756252200561193167}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.15294118, g: 0.20784315, b: 0.24313727, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: bffdf8cbd8232a14c9e2eb0ebe93c6c4, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1402012327133481311
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4931239609094859366}
m_Layer: 5
m_Name: Header
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4931239609094859366
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1402012327133481311}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2702040691676737826}
- {fileID: 7770978849227081033}
- {fileID: 9098525159578215560}
- {fileID: 3206361169883877662}
m_Father: {fileID: 9070486871702954148}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 272.3361}
m_Pivot: {x: 0.5, y: 1}
--- !u!1 &1587054539763937933
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 789054567810610909}
- component: {fileID: 4769075054792274476}
- component: {fileID: 3762065366828983297}
m_Layer: 5
m_Name: Image (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &789054567810610909
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1587054539763937933}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9098525159578215560}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 67, y: -135}
m_SizeDelta: {x: 55, y: 55}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &4769075054792274476
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1587054539763937933}
m_CullTransparentMesh: 1
--- !u!114 &3762065366828983297
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1587054539763937933}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0.78431374, b: 0.34117648, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b,
type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1945258585879517895
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7609247209467396887}
- component: {fileID: 7885605621536556352}
- component: {fileID: 6082551956832814630}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7609247209467396887
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1945258585879517895}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5170662394426199397}
m_Father: {fileID: 986125637762939786}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -19.999939, y: -20}
m_SizeDelta: {x: 40, y: 40}
m_Pivot: {x: 1, y: 1}
--- !u!222 &7885605621536556352
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1945258585879517895}
m_CullTransparentMesh: 1
--- !u!114 &6082551956832814630
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1945258585879517895}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.73333335, g: 0.8705883, b: 0.94117653, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 2550c34bcb002466682343c8e43106c7, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2692777586229299355
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7560674477309008922}
- component: {fileID: 5946070483637941570}
- component: {fileID: 7315234029410128753}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7560674477309008922
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2692777586229299355}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4348327364332661608}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -96.1, y: 184.7}
m_SizeDelta: {x: 55, y: 55}
m_Pivot: {x: 1, y: 0}
--- !u!222 &5946070483637941570
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2692777586229299355}
m_CullTransparentMesh: 1
--- !u!114 &7315234029410128753
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2692777586229299355}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.9411765, g: 0.5294118, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b,
type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2816380704833586807
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7140583191591185471}
- component: {fileID: 444970146930379313}
m_Layer: 5
m_Name: VideoPlayer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7140583191591185471
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2816380704833586807}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8036979873594361692}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!328 &444970146930379313
VideoPlayer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2816380704833586807}
m_Enabled: 1
m_VideoClip: {fileID: 32900000, guid: a37195cfa714e09408a63f1bc125257d, type: 3}
m_TargetCameraAlpha: 1
m_TargetCamera3DLayout: 0
m_TargetCamera: {fileID: 0}
m_TargetTexture: {fileID: 8400000, guid: 8d962e808e2f60f4883d459d8e054d86, type: 2}
m_TimeReference: 0
m_TargetMaterialRenderer: {fileID: 0}
m_TargetMaterialProperty: <noninit>
m_RenderMode: 2
m_AspectRatio: 2
m_DataSource: 0
m_TimeUpdateMode: 2
m_PlaybackSpeed: 1
m_AudioOutputMode: 2
m_TargetAudioSources:
- {fileID: 0}
m_DirectAudioVolumes:
- 1
m_Url:
m_EnabledAudioTracks: 01
m_DirectAudioMutes: 00
m_ControlledAudioTrackCount: 1
m_PlayOnAwake: 1
m_SkipOnDrop: 1
m_Looping: 1
m_WaitForFirstFrame: 1
m_FrameReadyEventEnabled: 0
m_VideoShaders: []
--- !u!1 &3089255878605912005
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8518463688388427686}
- component: {fileID: 5842984971599536039}
- component: {fileID: 509659535212591726}
m_Layer: 5
m_Name: Instructions
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8518463688388427686
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3089255878605912005}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 244389987622057283}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -199.49329, y: -192.76}
m_SizeDelta: {x: 509.1603, y: 142.6}
m_Pivot: {x: 1, y: 0.5}
--- !u!222 &5842984971599536039
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3089255878605912005}
m_CullTransparentMesh: 1
--- !u!114 &509659535212591726
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3089255878605912005}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uFECB\uFEB8\uFE8E\u0646 \uFE97\uFEE0\uFECC\uFE90 \u0627\uFEDF\uFEE0\uFECC\uFE92\uFEEA
\u062F\u064A \uFEE3\uFEA4\uFE98\uFE8E\u062C \uFEB7\uFEEE\uFEF3\uFEEA \uFEA3\uFE8E\uFE9F\uFE8E\u062A
\u0627\uFEB3\uFE8E\uFEB3\uFEF4\uFEEA \n1- \uFEE3\uFEEE\u062A \uFEE7\uFED4\uFEB4\uFEDA\n2-
\uFEB7\uFEEE\u0641 \uFEA3\uFEAA \uFE97\uFED8\uFE98\uFEE0\uFEEA \uFED7\uFE92\uFEDE
\uFEE3\uFE98\uFEE4\uFEEE\u062A \uFEE7\uFED4\uFEB4\uFEDA\n3- \uFEE3\uFEEE\u062A
\uFEE7\uFED4\uFEB4\uFEDA \uFE97\uFE8E\uFEE7\uFEF2"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293975739
m_fontColor: {r: 0.73333335, g: 0.8705883, b: 0.94117653, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 19
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0639\u0634\u0627\u0646 \u062A\u0644\u0639\u0628 \u0627\u0644\u0644\u0639\u0628\u0647
\u062F\u064A \u0645\u062D\u062A\u0627\u062C \u0634\u0648\u064A\u0647 \u062D\u0627\u062C\u0627\u062A
\u0627\u0633\u0627\u0633\u064A\u0647 \n1- \u0645\u0648\u062A \u0646\u0641\u0633\u0643\n2-
\u0634\u0648\u0641 \u062D\u062F \u062A\u0642\u062A\u0644\u0647 \u0642\u0628\u0644
\u0645\u062A\u0645\u0648\u062A \u0646\u0641\u0633\u0643\n3- \u0645\u0648\u062A
\u0646\u0641\u0633\u0643 \u062A\u0627\u0646\u064A"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &3271970093100527967
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4118201540844638193}
- component: {fileID: 2053286393007851585}
- component: {fileID: 8257948620578522209}
- component: {fileID: 9114579639092645930}
- component: {fileID: 2494306494695024436}
m_Layer: 5
m_Name: StartBTN
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4118201540844638193
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3271970093100527967}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8916892656649483364}
m_Father: {fileID: 8282187365826540146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 97.1}
m_SizeDelta: {x: 380, y: 64}
m_Pivot: {x: 0.5, y: 0}
--- !u!222 &2053286393007851585
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3271970093100527967}
m_CullTransparentMesh: 1
--- !u!114 &8257948620578522209
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3271970093100527967}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0.7843138, b: 0.34509805, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: fce383f822fcf464ca2ef6718bcf46f5, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &9114579639092645930
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3271970093100527967}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 8257948620578522209}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &2494306494695024436
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3271970093100527967}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 52c162dc854d2f24fa639ba0623de5ef, type: 3}
m_Name:
m_EditorClassIdentifier:
size: 10
spread: 0.113
useGlobalAngle: 0
offsetAngle: 110
offsetDistance: 7
offset: {x: -2.3941412, y: -6.5778484}
color: {r: 0.9811321, g: 0.7170286, b: 0.18882161, a: 1}
inset: 0
blendMode: 0
useCasterAlpha: 1
ignoreCasterColor: 0
colorBleedMode: 2
disableFitCompensation: 0
shadowAsSibling: 0
cutout: 0
baked: 0
modifiedFromInspector: 0
bakedShadows: []
--- !u!1 &3552320992150644087
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3742763109469940199}
- component: {fileID: 68308454723163545}
- component: {fileID: 5625871954365480904}
m_Layer: 5
m_Name: InstructionsTitle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3742763109469940199
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3552320992150644087}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 244389987622057283}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -164.08, y: -71.46}
m_SizeDelta: {x: 400, y: 100}
m_Pivot: {x: 1, y: 0.5}
--- !u!222 &68308454723163545
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3552320992150644087}
m_CullTransparentMesh: 1
--- !u!114 &5625871954365480904
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3552320992150644087}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFEDF\uFE98\uFECC\uFEE0\uFEF4\uFEE4\uFE8E\u062A"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293975739
m_fontColor: {r: 0.73333335, g: 0.8705883, b: 0.94117653, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 53.35
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0644\u062A\u0639\u0644\u064A\u0645\u0627\u062A"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &3763035296641850183
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8916892656649483364}
- component: {fileID: 5823102772768717411}
- component: {fileID: 2850899811211455556}
m_Layer: 5
m_Name: Arabic Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8916892656649483364
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3763035296641850183}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4118201540844638193}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5823102772768717411
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3763035296641850183}
m_CullTransparentMesh: 1
--- !u!114 &2850899811211455556
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3763035296641850183}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFEDF\uFECC\uFE90 \u0627\uFEFB\u0646!"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4284566536
m_fontColor: {r: 0.03137255, g: 0.29803923, b: 0.38039216, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 34.15
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0644\u0639\u0628 \u0627\u0644\u0627\u0646!"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &3849760189615812068
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3614545952560039698}
m_Layer: 5
m_Name: ArrowsImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3614545952560039698
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3849760189615812068}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3691232241924122376}
m_Father: {fileID: 735913080942025198}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &3947605463521541552
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6971184131154032948}
- component: {fileID: 4201714323728251950}
- component: {fileID: 7290390832851399006}
m_Layer: 5
m_Name: Video
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6971184131154032948
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3947605463521541552}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6585367138583333563}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 500, y: 225}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &4201714323728251950
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3947605463521541552}
m_CullTransparentMesh: 1
--- !u!114 &7290390832851399006
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3947605463521541552}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 8400000, guid: 8d962e808e2f60f4883d459d8e054d86, type: 2}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &4430562363635580564
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5170662394426199397}
- component: {fileID: 3475846287462823237}
- component: {fileID: 1336906635976988433}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5170662394426199397
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4430562363635580564}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7609247209467396887}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3475846287462823237
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4430562363635580564}
m_CullTransparentMesh: 1
--- !u!114 &1336906635976988433
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4430562363635580564}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.16862746, g: 0.21568629, b: 0.24705884, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 143efcb8b14d41343990b168db6db89d, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4780198463693622567
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 735913080942025198}
- component: {fileID: 4058916330373030525}
- component: {fileID: 400106722266909703}
m_Layer: 5
m_Name: Controles Title
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &735913080942025198
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4780198463693622567}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3614545952560039698}
m_Father: {fileID: 244389987622057283}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -164.08, y: -46.1}
m_SizeDelta: {x: 400, y: 100}
m_Pivot: {x: 1, y: 0.5}
--- !u!222 &4058916330373030525
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4780198463693622567}
m_CullTransparentMesh: 1
--- !u!114 &400106722266909703
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4780198463693622567}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\u062F\u0648\u0627\u062A \u0627\uFEDF\uFE98\uFEA4\uFEDC\uFEE2\n"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293975739
m_fontColor: {r: 0.73333335, g: 0.87058824, b: 0.9411765, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 53.35
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u062F\u0648\u0627\u062A \u0627\u0644\u062A\u062D\u0643\u0645\n"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &5059509349012902635
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8036979873594361692}
- component: {fileID: 8191760559745406919}
- component: {fileID: 8049284596752368572}
- component: {fileID: 1985184339929134650}
m_Layer: 5
m_Name: FirstCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8036979873594361692
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5059509349012902635}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2050325475219577018}
- {fileID: 7140583191591185471}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &8191760559745406919
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5059509349012902635}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &8049284596752368572
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5059509349012902635}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0.5
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &1985184339929134650
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5059509349012902635}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &5341354078768904187
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9098525159578215560}
m_Layer: 5
m_Name: Decorations
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9098525159578215560
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5341354078768904187}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5796811486539464375}
- {fileID: 789054567810610909}
- {fileID: 6566624522304742783}
m_Father: {fileID: 4931239609094859366}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 100}
m_Pivot: {x: 0.5, y: 1}
--- !u!1 &5784475149499122845
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8923652374474030240}
- component: {fileID: 8292817168040034069}
- component: {fileID: 3614311104819338069}
m_Layer: 5
m_Name: Atom2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8923652374474030240
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5784475149499122845}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 4348327364332661608}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 193.4, y: 8.82}
m_SizeDelta: {x: 232, y: 232}
m_Pivot: {x: 0, y: 0}
--- !u!222 &8292817168040034069
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5784475149499122845}
m_CullTransparentMesh: 1
--- !u!114 &3614311104819338069
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5784475149499122845}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 8d045b0e0b0686f48abbdfcb363b467e, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6239701458581150935
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4348327364332661608}
m_Layer: 5
m_Name: Decorations
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4348327364332661608
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6239701458581150935}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7875401258934443666}
- {fileID: 8923652374474030240}
- {fileID: 7560674477309008922}
- {fileID: 3594867708884961524}
m_Father: {fileID: 8282187365826540146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 100}
m_Pivot: {x: 0.5, y: 0}
--- !u!1 &6356468738902552263
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6366713349923574683}
- component: {fileID: 6161128298073860778}
- component: {fileID: 5113693375396662278}
m_Layer: 5
m_Name: Screen
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6366713349923574683
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6356468738902552263}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6585367138583333563}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 500, y: 225}
m_Pivot: {x: 0.5, y: 0}
--- !u!222 &6161128298073860778
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6356468738902552263}
m_CullTransparentMesh: 1
--- !u!114 &5113693375396662278
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6356468738902552263}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 2800000, guid: f64493dee1bdf4880ae2faf45e652b3a, type: 3}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &6509355358856615983
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 327959267168809180}
- component: {fileID: 3550494766135913546}
m_Layer: 5
m_Name: Controles
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &327959267168809180
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6509355358856615983}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2330636928802715085}
- {fileID: 986125637762939786}
m_Father: {fileID: 244389987622057283}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -191, y: 26.8836}
m_SizeDelta: {x: 400, y: 147.2664}
m_Pivot: {x: 1, y: 0}
--- !u!114 &3550494766135913546
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6509355358856615983}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &6544552550049350428
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6363467300684147212}
- component: {fileID: 3483026799577058846}
- component: {fileID: 4576157915794525526}
m_Layer: 5
m_Name: Arabic Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6363467300684147212
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6544552550049350428}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 986125637762939786}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -41.561867, y: -39.70953}
m_SizeDelta: {x: 312.1631, y: 39.4191}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3483026799577058846
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6544552550049350428}
m_CullTransparentMesh: 1
--- !u!114 &4576157915794525526
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6544552550049350428}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFED7\uFE98\uFEDE \uFEE7\uFED4\uFEB4\uFEDA"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 21
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0642\u062A\u0644 \u0646\u0641\u0633\u0643"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &6717389772368705382
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 584251159402200394}
- component: {fileID: 7302040803387744103}
- component: {fileID: 7562085411315167652}
m_Layer: 5
m_Name: Arabic Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &584251159402200394
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6717389772368705382}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2330636928802715085}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -41.561867, y: -39.70953}
m_SizeDelta: {x: 312.1631, y: 39.4191}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7302040803387744103
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6717389772368705382}
m_CullTransparentMesh: 1
--- !u!114 &7562085411315167652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6717389772368705382}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFED7\uFE98\uFEDE \uFEE7\uFED4\uFEB4\uFEDA"
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 21
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 4
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0642\u062A\u0644 \u0646\u0641\u0633\u0643"
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &6747240986363226773
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2330636928802715085}
m_Layer: 5
m_Name: Controle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2330636928802715085
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6747240986363226773}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5584720774391259796}
- {fileID: 584251159402200394}
m_Father: {fileID: 327959267168809180}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 395.28677, y: 59.419052}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &7362340064758100158
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7875401258934443666}
- component: {fileID: 2455012778714102881}
- component: {fileID: 5147525708734672426}
m_Layer: 5
m_Name: Atom
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7875401258934443666
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7362340064758100158}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 4348327364332661608}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 304, y: 304}
m_Pivot: {x: 0, y: 0}
--- !u!222 &2455012778714102881
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7362340064758100158}
m_CullTransparentMesh: 1
--- !u!114 &5147525708734672426
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7362340064758100158}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 0e141ed6262efd84abfb49bcc52e6bce, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7526512042247230819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6566624522304742783}
- component: {fileID: 6739310924579091146}
- component: {fileID: 807075980926074704}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6566624522304742783
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7526512042247230819}
m_LocalRotation: {x: 0, y: 0, z: -0.30070576, w: 0.953717}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9098525159578215560}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -35}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -70, y: -80}
m_SizeDelta: {x: 144, y: 144}
m_Pivot: {x: 1, y: 1}
--- !u!222 &6739310924579091146
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7526512042247230819}
m_CullTransparentMesh: 1
--- !u!114 &807075980926074704
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7526512042247230819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: f279b5cc7c5d836479386fc3efad1ebe, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7688909736226336611
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2050325475219577018}
- component: {fileID: 5867614385952154187}
- component: {fileID: 877824997664112728}
m_Layer: 5
m_Name: Color
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2050325475219577018
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7688909736226336611}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9070486871702954148}
m_Father: {fileID: 8036979873594361692}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5867614385952154187
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7688909736226336611}
m_CullTransparentMesh: 1
--- !u!114 &877824997664112728
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7688909736226336611}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.078431375, g: 0.13725491, b: 0.15686275, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7887126448972158850
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7770978849227081033}
- component: {fileID: 135370622429104036}
- component: {fileID: 980363901922235505}
m_Layer: 5
m_Name: GameInfo
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7770978849227081033
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7887126448972158850}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4931239609094859366}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -201}
m_SizeDelta: {x: 950.5, y: 62.3}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &135370622429104036
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7887126448972158850}
m_CullTransparentMesh: 1
--- !u!114 &980363901922235505
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7887126448972158850}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0627\uFEDF\uFEE0\uFECC\uFE92\uFEEA \u062F\u064A \uFE91\uFE98\uFE98\uFEDC\uFEE0\uFEE2
\uFECB\uFEE6 \u0648\u0627\uFEA3\uFEAA \uFECB\uFE8E\u0648\u0632 \uFEF3\uFEE4\uFEEE\u062A
\uFEE7\uFED4\uFEB4\uFEEA \u0648 \uFE91\uFEF4\uFEAA\u0648\u0631 \uFEDF\uFEB4\uFEEA
\uFEF3\uFECC\uFEE4\uFEE0\uFEEC\uFE8E \u0627\u0632\u0627\u064A "
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 66667e28087a64839a2747ce47035171, type: 2}
m_sharedMaterial: {fileID: 7170194958679140877, guid: 66667e28087a64839a2747ce47035171,
type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4293975739
m_fontColor: {r: 0.73333335, g: 0.87058824, b: 0.9411765, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 30.2
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 1
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0627\u0644\u0644\u0639\u0628\u0647 \u062F\u064A \u0628\u062A\u062A\u0643\u0644\u0645
\u0639\u0646 \u0648\u0627\u062D\u062F \u0639\u0627\u0648\u0632 \u064A\u0645\u0648\u062A
\u0646\u0641\u0633\u0647 \u0648 \u0628\u064A\u062F\u0648\u0631 \u0644\u0633\u0647
\u064A\u0639\u0645\u0644\u0647\u0627 \u0627\u0632\u0627\u064A "
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &8505172176488884577
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3206361169883877662}
- component: {fileID: 5601773382763019009}
- component: {fileID: 1817613929648964645}
m_Layer: 5
m_Name: Line
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3206361169883877662
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8505172176488884577}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4931239609094859366}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -124.3}
m_SizeDelta: {x: 900, y: 10}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5601773382763019009
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8505172176488884577}
m_CullTransparentMesh: 1
--- !u!114 &1817613929648964645
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8505172176488884577}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.73333335, g: 0.8705883, b: 0.94117653, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 0a9d11f27a22e4652b713dfcb3c1f0e9, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8888299518114272595
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3691232241924122376}
- component: {fileID: 8403665433488888418}
- component: {fileID: 1346896478543029519}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3691232241924122376
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8888299518114272595}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3614545952560039698}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: -162.9, y: -40.05}
m_SizeDelta: {x: 160, y: 160}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8403665433488888418
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8888299518114272595}
m_CullTransparentMesh: 1
--- !u!114 &1346896478543029519
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8888299518114272595}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.9803922, g: 0.7686275, b: 0.34509805, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 9a48552680495754082bc69605e2adc3, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8890922004205396184
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 986125637762939786}
m_Layer: 5
m_Name: Controle (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &986125637762939786
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8890922004205396184}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7609247209467396887}
- {fileID: 6363467300684147212}
m_Father: {fileID: 327959267168809180}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 395.28677, y: 59.419052}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &8979270055448052621
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5796811486539464375}
- component: {fileID: 1667617233611336843}
- component: {fileID: 2108474934582388945}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5796811486539464375
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979270055448052621}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9098525159578215560}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: -78, y: -200}
m_SizeDelta: {x: 192, y: 192}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &1667617233611336843
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979270055448052621}
m_CullTransparentMesh: 1
--- !u!114 &2108474934582388945
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8979270055448052621}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.3529412, g: 0.43529412, b: 0.45882353, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b,
type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &8996113935347298697
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3594867708884961524}
- component: {fileID: 4184787878271056341}
- component: {fileID: 7904875593983388882}
m_Layer: 5
m_Name: Image (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3594867708884961524
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8996113935347298697}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4348327364332661608}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -413.8, y: 184.7}
m_SizeDelta: {x: 62, y: 62}
m_Pivot: {x: 1, y: 0}
--- !u!222 &4184787878271056341
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8996113935347298697}
m_CullTransparentMesh: 1
--- !u!114 &7904875593983388882
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8996113935347298697}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 09f6b8a6b3e40254fa2f34bcac8d12d9, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &9134141959961270351
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8282187365826540146}
m_Layer: 5
m_Name: Footer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8282187365826540146
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9134141959961270351}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4348327364332661608}
- {fileID: 4118201540844638193}
m_Father: {fileID: 9070486871702954148}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 1080}
m_Pivot: {x: 0.5, y: 0}
fileFormatVersion: 2
guid: 8c33e9fb62a386e47b4f95267ed5798b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!84 &8400000
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: New Render Texture
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 500
m_Height: 250
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 94
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 0
m_MipBias: 0
m_WrapU: 1
m_WrapV: 1
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2
fileFormatVersion: 2
guid: 8d962e808e2f60f4883d459d8e054d86
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 8400000
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a37195cfa714e09408a63f1bc125257d
VideoClipImporter:
externalObjects: {}
serializedVersion: 2
frameRange: 0
startFrame: -1
endFrame: -1
colorSpace: 0
deinterlace: 0
encodeAlpha: 0
flipVertical: 0
flipHorizontal: 0
importAudio: 1
targetSettings: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -1764,6 +1764,107 @@ BoxCollider2D:
serializedVersion: 2
m_Size: {x: 1, y: 1}
m_EdgeRadius: 0
--- !u!1001 &772654146
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 5059509349012902635, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_Name
value: FirstCanvas
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8036979873594361692, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8191760559745406919, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
propertyPath: m_SortingOrder
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8c33e9fb62a386e47b4f95267ed5798b, type: 3}
--- !u!1 &850172314
GameObject:
m_ObjectHideFlags: 0
......@@ -7592,3 +7693,4 @@ SceneRoots:
- {fileID: 1394706199}
- {fileID: 1587073736}
- {fileID: 433333069}
- {fileID: 772654146}
......@@ -3,7 +3,7 @@ guid: fce383f822fcf464ca2ef6718bcf46f5
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
......@@ -20,9 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
......@@ -31,9 +34,9 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
......@@ -46,7 +49,7 @@ TextureImporter:
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteBorder: {x: 20, y: 20, z: 20, w: 20}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
......@@ -54,10 +57,15 @@ TextureImporter:
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
......@@ -69,6 +77,46 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 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
ignorePlatformSupport: 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
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
......@@ -78,15 +126,15 @@ TextureImporter:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
internalID: 1537655665
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
......@@ -706,7 +706,7 @@ PlayerSettings:
PS5: DOTWEEN
QNX: DOTWEEN
Stadia: DOTWEEN
Standalone: DOTWEEN
Standalone: DOTWEEN;LETAI_TRUESHADOW
VisionOS: DOTWEEN
WebGL: DOTWEEN
Windows Store Apps: DOTWEEN
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment