Merge branch 'feature/全屏梦境图片' into 'develop'
feat(scene-mgmt): 添加全屏图片展示功能 See merge request aibis-dream/aibis-dream!634
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 65cb908453570044abbc145dac80f6de
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
@@ -31,7 +31,6 @@ namespace AibisDream.EditorTools
|
||||
public string lastFullScanTime;
|
||||
public List<TimelineNameCacheEntry> entries = new List<TimelineNameCacheEntry>();
|
||||
|
||||
private static readonly string CacheFolderRelativePath = "Assets/Editor/TimelineNameCollector/Cache";
|
||||
private static readonly string CacheFileName = "timeline_name_cache.json";
|
||||
|
||||
public static string CacheFolderFullPath =>
|
||||
|
||||
@@ -482,6 +482,90 @@ MonoBehaviour:
|
||||
mipBias: 0
|
||||
varianceClampScale: 0.9
|
||||
contrastAdaptiveSharpening: 0
|
||||
--- !u!1 &762853992
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 762853993}
|
||||
- component: {fileID: 762853994}
|
||||
m_Layer: 0
|
||||
m_Name: "\u68A6\u5883\u5168\u5C4F\u56FE\u7247"
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &762853993
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 762853992}
|
||||
serializedVersion: 2
|
||||
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: 861686055}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &762853994
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 762853992}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 844151739
|
||||
m_SortingLayer: 1
|
||||
m_SortingOrder: 4
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 8.930233, y: 5.023256}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 0
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &861686054
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -516,6 +600,7 @@ Transform:
|
||||
- {fileID: 1424643109}
|
||||
- {fileID: 969796817}
|
||||
- {fileID: 218986883}
|
||||
- {fileID: 762853993}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &861686057
|
||||
@@ -532,6 +617,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
_spriteRenderer: {fileID: 218986884}
|
||||
_backgroundSpriteRenderer: {fileID: 969796818}
|
||||
_largeSpriteRenderer: {fileID: 762853994}
|
||||
--- !u!1 &969796816
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -122,6 +122,24 @@ namespace AibisDream
|
||||
SpriteShowcase.Instance.FadeOutSync(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("show_large_sprite")]
|
||||
public static IEnumerator ShowLargeSprite(string picName, float duration = 1)
|
||||
{
|
||||
yield return SpriteShowcase.Instance.ShowLargeObj(picName, duration);
|
||||
}
|
||||
|
||||
[YarnCommand("hide_large_sprite")]
|
||||
public static IEnumerator HideLargeSprite(float duration = 1)
|
||||
{
|
||||
yield return SpriteShowcase.Instance.HideLargeObj(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("hide_all_sprites")]
|
||||
public static IEnumerator HideAllSprites(float duration = 1)
|
||||
{
|
||||
yield return SpriteShowcase.Instance.HideAll(duration);
|
||||
}
|
||||
|
||||
[YarnCommand("show_full_screen")]
|
||||
public static IEnumerator ShowFullScreen(string picName)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Collections;
|
||||
using System.Collections;
|
||||
using AibisDream.Kit;
|
||||
using AibisDream.Utility;
|
||||
using DG.Tweening;
|
||||
@@ -10,21 +10,40 @@ namespace AibisDream
|
||||
{
|
||||
[SerializeField] private SpriteRenderer _spriteRenderer;
|
||||
[SerializeField] private SpriteRenderer _backgroundSpriteRenderer;
|
||||
[SerializeField] private SpriteRenderer _largeSpriteRenderer;
|
||||
|
||||
// 通过 activeSelf 判断当前状态
|
||||
private bool IsSmallShowing => _spriteRenderer.gameObject.activeSelf;
|
||||
private bool IsLargeShowing => _largeSpriteRenderer != null && _largeSpriteRenderer.gameObject.activeSelf;
|
||||
|
||||
public override void OnSingletonInit()
|
||||
{
|
||||
{
|
||||
// 初始状态:隐藏
|
||||
_spriteRenderer.gameObject.SetActive(false);
|
||||
_spriteRenderer.SetAlpha(0);
|
||||
|
||||
// 大图初始状态:隐藏
|
||||
if (_largeSpriteRenderer != null)
|
||||
{
|
||||
_largeSpriteRenderer.gameObject.SetActive(false);
|
||||
_largeSpriteRenderer.SetAlpha(0);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显示物体
|
||||
/// 显示物体(小图)
|
||||
/// </summary>
|
||||
/// <param name="picName">图片名称(相对于 Resources/Art/Obj/ 的路径)</param>
|
||||
/// <param name="duration">淡入时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator ShowObj(string picName, float duration = 1)
|
||||
{
|
||||
// 互斥:如果大图正在显示,先隐藏
|
||||
if (IsLargeShowing)
|
||||
{
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
_spriteRenderer.gameObject.SetActive(true);
|
||||
|
||||
// 切换图片
|
||||
@@ -36,14 +55,83 @@ namespace AibisDream
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏物体
|
||||
/// 显示大图
|
||||
/// </summary>
|
||||
/// <param name="picName">图片名称(相对于 Resources/Art/Obj/ 的路径)</param>
|
||||
/// <param name="duration">淡入时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator ShowLargeObj(string picName, float duration = 1)
|
||||
{
|
||||
// 互斥:如果小图正在显示,先隐藏
|
||||
if (IsSmallShowing)
|
||||
{
|
||||
yield return HideObj(duration);
|
||||
}
|
||||
|
||||
if (_largeSpriteRenderer == null) yield break;
|
||||
|
||||
_largeSpriteRenderer.gameObject.SetActive(true);
|
||||
|
||||
// 切换图片
|
||||
var newSprite = Resources.Load<Sprite>($"Art/Obj/{picName}");
|
||||
_largeSpriteRenderer.sprite = newSprite;
|
||||
|
||||
// 然后淡入
|
||||
yield return _largeSpriteRenderer.DOFade(1, duration).WaitForCompletion();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏物体(小图)
|
||||
/// </summary>
|
||||
/// <param name="duration">淡出时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideObj(float duration = 1)
|
||||
{
|
||||
yield return HideObj(force: false, duration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏物体(小图)
|
||||
/// </summary>
|
||||
/// <param name="force">是否强制隐藏</param>
|
||||
/// <param name="duration">淡出时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideObj(bool force, float duration = 1)
|
||||
{
|
||||
// force=false 时检查状态,未显示则直接返回
|
||||
if (!force && !IsSmallShowing) yield break;
|
||||
|
||||
yield return _spriteRenderer.DOFade(0, duration).WaitForCompletion();
|
||||
_spriteRenderer.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏大图
|
||||
/// </summary>
|
||||
/// <param name="force">是否强制隐藏</param>
|
||||
/// <param name="duration">淡出时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideLargeObj(float duration = 1)
|
||||
{
|
||||
if (_largeSpriteRenderer == null) yield break;
|
||||
|
||||
yield return _largeSpriteRenderer.DOFade(0, duration).WaitForCompletion();
|
||||
_largeSpriteRenderer.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 隐藏所有(小图和大图)
|
||||
/// </summary>
|
||||
/// <param name="duration">淡出时长</param>
|
||||
/// <returns>协程</returns>
|
||||
public IEnumerator HideAll(float duration = 1)
|
||||
{
|
||||
if (IsSmallShowing)
|
||||
yield return HideObj(duration);
|
||||
|
||||
if (IsLargeShowing)
|
||||
yield return HideLargeObj(duration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 淡入(异步协程版本)
|
||||
|
||||
Reference in New Issue
Block a user