This commit is contained in:
wuyanchen 2025-12-05 14:57:07 +08:00
parent c139da3f2e
commit 201d711d24
26 changed files with 1349 additions and 18 deletions

Binary file not shown.

View File

@ -0,0 +1,209 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
/// <summary>
/// 终极等比例版Image严格按原始比例填满父容器尺寸正常、无留白、不变形、无报错
/// </summary>
[RequireComponent(typeof(Image))]
[ExecuteInEditMode]
public class ImageAspectFill : MonoBehaviour
{
[Header("基础配置")]
[Tooltip("Canvas的参考分辨率必须和CanvasScaler一致如1920x1080")]
public Vector2 canvasReferenceSize = new Vector2(1920, 1080);
[Tooltip("最大缩放倍数(防止过度放大模糊)")]
public float maxScale = 10f;
[Header("调试开关")]
public bool showLog = false;
private Image targetImage;
private RectTransform imageRect;
private RectTransform parentRect;
private CanvasScaler canvasScaler;
private float originalAspectRatio; // Sprite原始宽高比全程锁定
private float canvasScaleFactor; // 统一的Canvas缩放因子宽高共用
private float baseUIWidth; // 基准UI宽度按比例推导高度
private float lastScreenSizeW = 0;
private float lastScreenSizeH = 0;
void Start()
{
lastScreenSizeW = Screen.width;
lastScreenSizeH = Screen.height;
StartCoroutine(DelayedInit());
}
void OnEnable()
{
if (targetImage != null)
{
FitToParentProportionally();
}
else
{
StartCoroutine(DelayedInit());
}
}
void OnRectTransformDimensionsChange()
{
if (targetImage != null)
{
FitToParentProportionally();
}
}
private void Update()
{
// 检测Game视图窗口尺寸变化编辑器下
if (lastScreenSizeW != Screen.width || lastScreenSizeH != Screen.height)
{
lastScreenSizeW = Screen.width;
lastScreenSizeH = Screen.height;
if (showLog)
{
Debug.Log($"[编辑器窗口变化] 尺寸变为 {lastScreenSizeW}x{lastScreenSizeH}重新适配Image", this);
}
FitToParentProportionally();
}
}
/// <summary>
/// 延迟初始化:锁定原始比例+统一缩放因子
/// </summary>
private IEnumerator DelayedInit()
{
yield return null; // 等待Canvas布局完成
// 初始化组件
targetImage = GetComponent<Image>();
imageRect = GetComponent<RectTransform>();
parentRect = transform.parent.GetComponent<RectTransform>();
canvasScaler = GetComponentInParent<CanvasScaler>();
// 强制锚点居中(等比例缩放的前提)
imageRect.anchorMin = imageRect.anchorMax = imageRect.pivot = new Vector2(0.5f, 0.5f);
//imageRect.anchoredPosition = Vector2.zero;
// 1. 锁定Sprite原始宽高比核心全程不变
if (targetImage.sprite != null && targetImage.sprite.texture != null)
{
float spriteW = targetImage.sprite.texture.width;
float spriteH = targetImage.sprite.texture.height;
originalAspectRatio = spriteW / spriteH;
// 基准UI宽度取Sprite像素转换为UI单位的宽度统一缩放因子
baseUIWidth = spriteW / GetUnifiedCanvasScaleFactor();
}
else
{
// 无Sprite时用16:9默认比例基准宽度设为参考分辨率的1/2
originalAspectRatio = 16f / 9f;
baseUIWidth = canvasReferenceSize.x / 2f;
}
// 兜底:防止比例异常(避免变成正方形)
originalAspectRatio = Mathf.Clamp(originalAspectRatio, 0.1f, 10f); // 限制比例在0.1~10之间
baseUIWidth = Mathf.Max(baseUIWidth, 50f); // 基准宽度最小50UI单位
// 2. 初始化Image尺寸严格按比例
float initHeight = baseUIWidth / originalAspectRatio;
imageRect.sizeDelta = new Vector2(baseUIWidth, initHeight);
if (showLog)
{
Debug.Log($"[初始化] 原始比例:{originalAspectRatio:0.00} | 初始UI尺寸{baseUIWidth}x{initHeight}", this);
}
// 执行适配
FitToParentProportionally();
}
/// <summary>
/// 核心逻辑:严格按原始比例缩放,填满父容器
/// </summary>
private void FitToParentProportionally()
{
if (parentRect == null || targetImage == null) return;
// 1. 获取父容器的UI尺寸纯UI单位无缩放
Vector2 parentUISize = parentRect.rect.size;
float parentW = Mathf.Max(parentUISize.x, 50f);
float parentH = Mathf.Max(parentUISize.y, 50f);
// 2. 计算两个方向的缩放系数(严格按原始比例)
// 按宽度填满需要的缩放:父宽 / 基准UI宽
float scaleForWidth = parentW / baseUIWidth;
// 按高度填满需要的缩放:父高 / (基准UI宽 / 原始比例) → 等价于 父高×原始比例 / 基准UI宽
float scaleForHeight = (parentH * originalAspectRatio) / baseUIWidth;
// 3. 取最大值(填满父容器)+ 限制最大缩放
float finalScale = Mathf.Min(Mathf.Max(scaleForWidth, scaleForHeight), maxScale);
// 安全校验
if (float.IsInfinity(finalScale) || float.IsNaN(finalScale))
{
finalScale = 1f;
Debug.LogWarning($"缩放系数异常兜底为1倍", this);
}
// 4. 应用缩放(仅改缩放,尺寸不变,比例绝对锁定)
imageRect.localScale = new Vector3(finalScale, finalScale, 1f);
// 调试:验证最终比例
float finalW = baseUIWidth * finalScale;
float finalH = finalW / originalAspectRatio;
if (showLog)
{
Debug.Log($"[适配] 缩放系数:{finalScale:0.00} | 最终尺寸:{finalW:0.00}x{finalH:0.00} | 最终比例:{finalW / finalH:0.00}(原始:{originalAspectRatio:0.00}", this);
}
}
/// <summary>
/// 获取统一的Canvas缩放因子宽高共用不破坏比例
/// </summary>
private float GetUnifiedCanvasScaleFactor()
{
if (canvasScaler == null) return 1f;
// 适配CanvasScaler的三种模式全程返回单一缩放因子
switch (canvasScaler.uiScaleMode)
{
case CanvasScaler.ScaleMode.ConstantPixelSize:
return canvasScaler.scaleFactor;
case CanvasScaler.ScaleMode.ScaleWithScreenSize:
// 统一缩放因子:按最短边匹配参考分辨率
float scaleX = (float)Screen.width / canvasReferenceSize.x;
float scaleY = (float)Screen.height / canvasReferenceSize.y;
return canvasScaler.screenMatchMode == CanvasScaler.ScreenMatchMode.MatchWidthOrHeight
? Mathf.Lerp(scaleX, scaleY, canvasScaler.matchWidthOrHeight)
: Mathf.Min(scaleX, scaleY); // 按最短边缩放,统一因子
case CanvasScaler.ScaleMode.ConstantPhysicalSize:
return canvasScaler.scaleFactor;
default:
return 1f;
}
}
/// <summary>
/// 手动刷新更换Sprite后调用
/// </summary>
public void RefreshFit()
{
StartCoroutine(DelayedInit());
}
/// <summary>
/// 编辑器预览在Scene视图中也能看到效果
/// </summary>
private void OnDrawGizmos()
{
if (imageRect != null && showLog)
{
Gizmos.color = Color.green;
Gizmos.DrawWireCube(imageRect.position, imageRect.sizeDelta * imageRect.localScale);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: BnoctCL5BnhzwTJrajxTXb/s64gmzvg+NceSJeK1ILauActDGcWxIdA=
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,134 @@
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 挂载在Canvas上控制两个背景Image从上往下无限滚动适配实际屏幕高度间隔
/// </summary>
[RequireComponent(typeof(Canvas))]
//[ExecuteInEditMode]
public class BackgroundScroll : MonoBehaviour
{
[Header("滚动速度(像素/秒)")]
public float scrollSpeed = 50f;
[Header("是否自动获取子物体的两个Image取消则手动指定")]
public bool autoGetImages = true;
[Header("手动指定的两个背景ImageautoGetImages为false时生效")]
public Image bgImage1;
public Image bgImage2;
// Image的RectTransform组件
private RectTransform rt1;
private RectTransform rt2;
// Image在屏幕上的实际显示高度关键适配Aspect缩放
private float actualImageHeight;
private float rt1ScaleY = 1;
void Start()
{
}
private void OnEnable()
{
// 初始化Image和RectTransform
InitImages();
// 计算Image的实际屏幕高度适配Aspect模式
if (rt1 != null)
{
actualImageHeight = GetImageActualHeight(rt1);
rt1ScaleY = rt1.localScale.y;
// 初始化第二个Image的位置在第一个Image顶部上方间隔实际屏幕高度
rt2.anchoredPosition = new Vector2(0, rt1.anchoredPosition.y + actualImageHeight);
//Debug.Log($"图片实际屏幕高度:{actualImageHeight},已初始化第二张图位置");
}
else
{
Debug.LogError("未找到有效的背景Image请检查Canvas下的子物体或手动指定Image");
}
}
void Update()
{
if (rt1 == null || rt2 == null) return;
if (rt1ScaleY != rt1.localScale.y)
{
actualImageHeight = GetImageActualHeight(rt1);
rt2.anchoredPosition = new Vector2(0, rt1.anchoredPosition.y + actualImageHeight);
rt1ScaleY = rt1.localScale.y;
}
// 让两个Image向下滚动anchoredPosition的y轴减小
rt1.anchoredPosition -= new Vector2(0, scrollSpeed * Time.deltaTime);
rt2.anchoredPosition -= new Vector2(0, scrollSpeed * Time.deltaTime);
// 检测第一个Image是否完全滚出屏幕下方重置位置用实际高度判断
if (rt1.anchoredPosition.y <= -actualImageHeight)
{
rt1.anchoredPosition = new Vector2(0, rt2.anchoredPosition.y + actualImageHeight);
}
// 检测第二个Image是否完全滚出屏幕下方重置位置用实际高度判断
if (rt2.anchoredPosition.y <= -actualImageHeight)
{
rt2.anchoredPosition = new Vector2(0, rt1.anchoredPosition.y + actualImageHeight);
}
}
/// <summary>
/// 初始化Image组件和RectTransform
/// </summary>
private void InitImages()
{
if (autoGetImages)
{
Image[] images = GetComponentsInChildren<Image>();
if (images.Length >= 2)
{
bgImage1 = images[0];
bgImage2 = images[1];
}
else
{
Debug.LogError("Canvas下的Image数量不足2个请检查");
return;
}
}
if (bgImage1 != null) rt1 = bgImage1.GetComponent<RectTransform>();
if (bgImage2 != null) rt2 = bgImage2.GetComponent<RectTransform>();
}
/// <summary>
/// 计算RectTransform在屏幕上的实际显示高度适配Aspect缩放
/// </summary>
/// <param name="rt">目标RectTransform</param>
/// <returns>实际屏幕高度(像素)</returns>
private float GetImageActualHeight(RectTransform rt)
{
// 获取RectTransform的世界空间包围盒
//Bounds bounds = RectTransformUtility.CalculateRelativeRectTransformBounds(transform, rt);
// 转换为屏幕空间的高度考虑Canvas的缩放
//float canvasScale = GetComponent<Canvas>().scaleFactor;
return rt.sizeDelta.y * rt.localScale.y;
}
/// <summary>
/// 编辑器下实时预览(可选)
/// </summary>
private void OnDrawGizmos()
{
if (Application.isPlaying) return;
InitImages();
if (rt1 != null)
{
actualImageHeight = GetImageActualHeight(rt1);
if (rt2 != null)
{
rt2.anchoredPosition = new Vector2(0, actualImageHeight);
}
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: Cn4YvXuvUC0lggnwvPSgMBbnnrdl1uiQg+P6jAB3gHrx/MI+ojFRwU8=
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: DnxLsi+sAn5PhX9FveYS4RgVWUgBKtlsBQSIeyHi0nFwiKZoqgJlHWc=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
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
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
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:

View File

@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@ -40,13 +40,13 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
@ -55,9 +55,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@ -146,7 +146,7 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
spriteID:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:

View File

@ -6,7 +6,7 @@ TextureImporter:
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@ -40,13 +40,13 @@ TextureImporter:
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
@ -55,9 +55,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
@ -146,7 +146,7 @@ TextureImporter:
outline: []
physicsShape: []
bones: []
spriteID:
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: B3kcs3mtWn9MNZneuT30OnqOtg1eJ+e9Pw9NpVwggqSoynW5kKxu4yk=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
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
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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: 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
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
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: XnMe5n+pAn2CsvMVqcHyzJ8z29LRWQVW/BYrhdgtQGrVQHg2xi6tQCQ=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
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
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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: 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
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
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: WXpLvSypUnjANlh3k9jubiqwlWeo9U30mo0M25rpYfM6XUrRGi6eZgc=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
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
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: 50
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 1
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: WXobsyqpW3qtq6Q1QsAi4t6gfT2H82hBRWHBoK3WyIVp4uhojXSAsLE=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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: 0
wrapV: 0
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: 0
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
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 1
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:

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -0,0 +1,161 @@
fileFormatVersion: 2
guid: WywctyyvB3vHCTqNhFqL3LzKNGh4c3JWz7v3ndHrukEtz8f8zmq9SAM=
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
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
webStreaming: 0
priorityLevel: 0
uploadedMode: 2
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: 1024
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 1
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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
maxPlaceholderSize: 32
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: WeixinMiniGame
maxTextureSize: 2048
maxPlaceholderSize: 32
resizeAlgorithm: 0
textureFormat: 50
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:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e4eb745979e77684d8e107358cae0a7b
guid: DylOtCv/VC/mEQByFg53TAmQvF8OhYk0YRMPVBsm77G74tKOdDj4krU=
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: WXMftCquAHi/y/a2f9WvLiLiwZUSZs0t1O9VVEZJAc2l0nFZN6gJEo8=
guid: WS5N4X//UCi7QF0myqeJoTBSFDCcI3xDesgln3gMZLYmjHJ3rvfbYEk=
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 23800000

Binary file not shown.