1
This commit is contained in:
@@ -59,6 +59,13 @@ MonoBehaviour:
|
|||||||
- PTCBZS
|
- PTCBZS
|
||||||
- ZSYX
|
- ZSYX
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
|
- m_GUID: 55ff41d3491d69048aed1f871fee2253
|
||||||
|
m_Address: Assets/MyGame/aa/Game/XJMH/Sound/PW_Button.ogg
|
||||||
|
m_ReadOnly: 0
|
||||||
|
m_SerializedLabels:
|
||||||
|
- Audio
|
||||||
|
- Default
|
||||||
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: 623f39d408d373f498bfa9c7ef4f4dd1
|
- m_GUID: 623f39d408d373f498bfa9c7ef4f4dd1
|
||||||
m_Address: Assets/MyGame/aa/Game/ZhanShen/Game/display_14080_0_DaTing.prefab
|
m_Address: Assets/MyGame/aa/Game/ZhanShen/Game/display_14080_0_DaTing.prefab
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
|
|||||||
@@ -673,13 +673,6 @@ MonoBehaviour:
|
|||||||
- Audio
|
- Audio
|
||||||
- XJMH
|
- XJMH
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
FlaggedDuringContentUpdateRestriction: 0
|
||||||
- m_GUID: 55ff41d3491d69048aed1f871fee2253
|
|
||||||
m_Address: Assets/MyGame/aa/Game/XJMH/Sound/PW_Button.ogg
|
|
||||||
m_ReadOnly: 0
|
|
||||||
m_SerializedLabels:
|
|
||||||
- Audio
|
|
||||||
- XJMH
|
|
||||||
FlaggedDuringContentUpdateRestriction: 0
|
|
||||||
- m_GUID: 571b94c02f405bf44846bb65a9063c17
|
- m_GUID: 571b94c02f405bf44846bb65a9063c17
|
||||||
m_Address: Assets/MyGame/aa/Game/XJMH/Sound/PW_Settle_Hole.ogg
|
m_Address: Assets/MyGame/aa/Game/XJMH/Sound/PW_Settle_Hole.ogg
|
||||||
m_ReadOnly: 0
|
m_ReadOnly: 0
|
||||||
|
|||||||
@@ -2318,7 +2318,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 7597091867940339197}
|
- component: {fileID: 7597091867940339197}
|
||||||
- component: {fileID: 4536030933686261914}
|
- component: {fileID: 4536030933686261914}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_5
|
m_Name: 6002_5
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -20518,7 +20518,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 5098281124427048100}
|
- component: {fileID: 5098281124427048100}
|
||||||
- component: {fileID: 6279646298209540641}
|
- component: {fileID: 6279646298209540641}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_3
|
m_Name: 6002_3
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -20738,7 +20738,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 7945055334132002757}
|
- component: {fileID: 7945055334132002757}
|
||||||
- component: {fileID: 2353989672940325644}
|
- component: {fileID: 2353989672940325644}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_1
|
m_Name: 6002_1
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -45945,7 +45945,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 4926610848449747640}
|
- component: {fileID: 4926610848449747640}
|
||||||
- component: {fileID: 9188114047427420724}
|
- component: {fileID: 9188114047427420724}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002
|
m_Name: 6002
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -71375,7 +71375,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 7662152191139975403}
|
- component: {fileID: 7662152191139975403}
|
||||||
- component: {fileID: 6830302151371473141}
|
- component: {fileID: 6830302151371473141}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_4
|
m_Name: 6002_4
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -83492,7 +83492,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 7809844692213518709}
|
- component: {fileID: 7809844692213518709}
|
||||||
- component: {fileID: 4505455546857565809}
|
- component: {fileID: 4505455546857565809}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_2
|
m_Name: 6002_2
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -111886,7 +111886,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 8754853922715629038}
|
- component: {fileID: 8754853922715629038}
|
||||||
- component: {fileID: 2561839350788404781}
|
- component: {fileID: 2561839350788404781}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_7
|
m_Name: 6002_7
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -126916,7 +126916,7 @@ Camera:
|
|||||||
m_Depth: 0
|
m_Depth: 0
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 16777280
|
m_Bits: 16778240
|
||||||
m_RenderingPath: -1
|
m_RenderingPath: -1
|
||||||
m_TargetTexture: {fileID: 0}
|
m_TargetTexture: {fileID: 0}
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
@@ -127006,6 +127006,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
subCamera: {fileID: 0}
|
subCamera: {fileID: 0}
|
||||||
|
isFishCamera: 0
|
||||||
--- !u!1 &8350492631816748217
|
--- !u!1 &8350492631816748217
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -134175,7 +134176,7 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 8033707387404974704}
|
- component: {fileID: 8033707387404974704}
|
||||||
- component: {fileID: 7811082189917875340}
|
- component: {fileID: 7811082189917875340}
|
||||||
m_Layer: 6
|
m_Layer: 10
|
||||||
m_Name: 6002_6
|
m_Name: 6002_6
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// UI 基类:统一生命周期、显示/隐藏、入场出场动画钩子
|
/// UI 基类:统一生命周期、显示/隐藏、入场出场动画钩子、按钮点击音效
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class UIBase : MonoBehaviour
|
public abstract class UIBase : MonoBehaviour
|
||||||
{
|
{
|
||||||
public UIPanel PanelType { get; private set; }
|
public UIPanel PanelType { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>面板内按钮点击音效 ID(tbaudio 表;60009=PW_Button)。0=不播</summary>
|
||||||
|
public int buttonClickAudioID = 60009;
|
||||||
|
|
||||||
|
/// <summary>面板显示期间的点击音效兜底扫描协程</summary>
|
||||||
|
private Coroutine _clickSoundWatch;
|
||||||
|
|
||||||
// 初始化,由 UIManager 赋值
|
// 初始化,由 UIManager 赋值
|
||||||
public void Init(UIPanel type)
|
public void Init(UIPanel type)
|
||||||
{
|
{
|
||||||
@@ -24,7 +30,10 @@ public abstract class UIBase : MonoBehaviour
|
|||||||
{
|
{
|
||||||
gameObject.SetActive(true);
|
gameObject.SetActive(true);
|
||||||
transform.SetAsLastSibling(); // 每次激活都放到最上层
|
transform.SetAsLastSibling(); // 每次激活都放到最上层
|
||||||
|
RefreshButtonClickSounds(); // ⭐ 先给面板内已有的按钮补齐点击音效
|
||||||
OnShow(args);
|
OnShow(args);
|
||||||
|
RefreshButtonClickSounds(); // ⭐ OnShow 中同步创建的按钮(如列表项)再补一遍
|
||||||
|
StartClickSoundWatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Hide()
|
public virtual void Hide()
|
||||||
@@ -32,4 +41,32 @@ public abstract class UIBase : MonoBehaviour
|
|||||||
OnHide();
|
OnHide();
|
||||||
gameObject.SetActive(false);
|
gameObject.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>给面板下所有 Button/Toggle 补齐点击音效(可重复调用,已挂 UIClickSound 的会跳过)</summary>
|
||||||
|
public void RefreshButtonClickSounds()
|
||||||
|
{
|
||||||
|
UIClickSound.AttachToAll(gameObject, buttonClickAudioID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 面板显示期间每 0.3 秒兜底扫描一次:列表项等运行时动态创建的按钮也能自动带上点击音效
|
||||||
|
/// (已挂 UIClickSound 的会跳过,扫描开销很小)。面板隐藏后循环自动退出。
|
||||||
|
/// </summary>
|
||||||
|
private void StartClickSoundWatch()
|
||||||
|
{
|
||||||
|
if (_clickSoundWatch != null)
|
||||||
|
StopCoroutine(_clickSoundWatch);
|
||||||
|
_clickSoundWatch = StartCoroutine(ClickSoundWatchRoutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ClickSoundWatchRoutine()
|
||||||
|
{
|
||||||
|
var wait = new WaitForSecondsRealtime(0.3f);
|
||||||
|
while (gameObject.activeInHierarchy)
|
||||||
|
{
|
||||||
|
yield return wait;
|
||||||
|
RefreshButtonClickSounds();
|
||||||
|
}
|
||||||
|
_clickSoundWatch = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 点击音效组件:挂在 Button/Toggle 上,玩家点击时播放 tbaudio 表中的按钮音效(默认 60009 = PW_Button)。
|
||||||
|
/// ⭐ 由 UIBase 在面板显示时自动为所有子按钮补齐,无需手动挂载;列表项等运行时动态创建的按钮由面板兜底扫描补上。
|
||||||
|
/// 监听指针点击而不是 onClick/onValueChanged:代码里 isOn = true / SetIsOnWithoutNotify 等程序化改动不会误发音效,
|
||||||
|
/// 只在玩家真的点按时播放,同时与 Button/Toggle 自身的可交互规则保持一致。
|
||||||
|
/// </summary>
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
public class UIClickSound : MonoBehaviour, IPointerClickHandler
|
||||||
|
{
|
||||||
|
/// <summary>点击音效 ID(tbaudio 表;60009=PW_Button)。0=不播</summary>
|
||||||
|
public int clickAudioID = 60009;
|
||||||
|
|
||||||
|
public void OnPointerClick(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
Play();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>播放点击音效</summary>
|
||||||
|
public void Play()
|
||||||
|
{
|
||||||
|
if (clickAudioID <= 0) return;
|
||||||
|
|
||||||
|
// 与 Button/Toggle 自身规则一致:不可交互的不发声
|
||||||
|
var selectable = GetComponent<Selectable>();
|
||||||
|
if (selectable != null && !selectable.interactable) return;
|
||||||
|
|
||||||
|
if (AudioManager.Instance == null) return;
|
||||||
|
|
||||||
|
// 音效尚未加载(如启动早期默认音频未就绪)时静默跳过,避免连点刷错误日志
|
||||||
|
if (AudioResourcesData.audioClipDic == null || !AudioResourcesData.audioClipDic.ContainsKey(clickAudioID))
|
||||||
|
return;
|
||||||
|
|
||||||
|
AudioManager.Instance.PlayerFX(clickAudioID);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>为 root 下所有 Button/Toggle 补齐点击音效(已有 UIClickSound 的跳过,可重复调用)</summary>
|
||||||
|
public static void AttachToAll(GameObject root, int audioID = 60009)
|
||||||
|
{
|
||||||
|
if (root == null || audioID <= 0) return;
|
||||||
|
foreach (var button in root.GetComponentsInChildren<Button>(true))
|
||||||
|
Attach(button, audioID);
|
||||||
|
foreach (var toggle in root.GetComponentsInChildren<Toggle>(true))
|
||||||
|
Attach(toggle, audioID);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Attach(Selectable selectable, int audioID)
|
||||||
|
{
|
||||||
|
if (selectable.GetComponent<UIClickSound>() != null) return;
|
||||||
|
var sound = selectable.gameObject.AddComponent<UIClickSound>();
|
||||||
|
sound.clickAudioID = audioID;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4d55f27bcf5d4cea806bacd5c41a217c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -99,7 +99,7 @@ public class UIManager : MonoSingleton<UIManager>
|
|||||||
|
|
||||||
// 父节点(可指定到 Canvas 下某个容器)
|
// 父节点(可指定到 Canvas 下某个容器)
|
||||||
[SerializeField] public Transform uiRoot;
|
[SerializeField] public Transform uiRoot;
|
||||||
|
public GameObject obj_JiaZaiZhong; //加载中界面
|
||||||
private Dictionary<UIPanel, string> addressMap = new Dictionary<UIPanel, string>(); //第二种加载
|
private Dictionary<UIPanel, string> addressMap = new Dictionary<UIPanel, string>(); //第二种加载
|
||||||
|
|
||||||
// ⭐ prefab 缓存:避免重复 LoadAssetAsync,第二次打开同一面板秒开
|
// ⭐ prefab 缓存:避免重复 LoadAssetAsync,第二次打开同一面板秒开
|
||||||
|
|||||||
@@ -14,8 +14,9 @@ using UnityEngine;
|
|||||||
/// 起飞入口:TakeoffToScreenPos(当前轻点路径,受 allowTapTakeoff 控制);
|
/// 起飞入口:TakeoffToScreenPos(当前轻点路径,受 allowTapTakeoff 控制);
|
||||||
/// 将来"起飞按钮"接入后走同一入口即可(或在面板上打开 allowTapTakeoff 恢复轻点起飞)。
|
/// 将来"起飞按钮"接入后走同一入口即可(或在面板上打开 allowTapTakeoff 恢复轻点起飞)。
|
||||||
/// 交互判定在 GameMainPanel_FishBase.HandleInput(轻点=按下短+几乎没移动;按住扫射不触发起飞)。
|
/// 交互判定在 GameMainPanel_FishBase.HandleInput(轻点=按下短+几乎没移动;按住扫射不触发起飞)。
|
||||||
/// 挂载:XJMH 座位炮台(xjmhTurretList 中的子对象);飞机骨架挂在座位的变体容器节点里
|
/// 挂载:XJMH 座位炮台(xjmhTurretList 中的子对象);入场飞机优先用座位下的完整飞机预制体实例
|
||||||
/// (lvptfeiji/lanptfeiji/huangjinfeiji/vipfeiji01,与炮台平级,默认隐藏)——入场时临时挂到炮台下显示、结束还原。
|
/// (PW_Plane_等级,含 Body 骨架/尾迹/护盾/免费特效——特效由本类按原版控制),找不到才退回飞机骨架节点
|
||||||
|
/// (lvptfeiji/lanptfeiji/huangjinfeiji/vipfeiji01)。飞行期间飞机临时挂到炮台下显示、结束还原。
|
||||||
/// 注意:不要在本类定义 Awake/OnEnable,会隐藏基类的同名私有初始化逻辑。
|
/// 注意:不要在本类定义 Awake/OnEnable,会隐藏基类的同名私有初始化逻辑。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FlyTurretData : TurretData
|
public class FlyTurretData : TurretData
|
||||||
@@ -305,7 +306,7 @@ public class FlyTurretData : TurretData
|
|||||||
public float enterBackHoldTime = 1f;
|
public float enterBackHoldTime = 1f;
|
||||||
|
|
||||||
private Coroutine _enterRoutine;
|
private Coroutine _enterRoutine;
|
||||||
private RectTransform _enterPlane; // 入场中的飞机节点(离场清理复位用)
|
private Transform _enterPlaneRoot; // 入场中的飞机节点(PW_Plane_x 完整预制体实例;找不到时=骨架节点兜底)
|
||||||
private SkeletonGraphic _enterPlaneSg; // 飞机骨架(临时挂载后播 "stand01"/"back")
|
private SkeletonGraphic _enterPlaneSg; // 飞机骨架(临时挂载后播 "stand01"/"back")
|
||||||
private bool _enterBoardHidden; // 入场期间 Board 被暂时隐藏(清理时只恢复自己隐藏的)
|
private bool _enterBoardHidden; // 入场期间 Board 被暂时隐藏(清理时只恢复自己隐藏的)
|
||||||
|
|
||||||
@@ -338,22 +339,29 @@ public class FlyTurretData : TurretData
|
|||||||
if (enterAudioID > 0 && AudioManager.Instance != null)
|
if (enterAudioID > 0 && AudioManager.Instance != null)
|
||||||
AudioManager.Instance.PlayerFX(enterAudioID);
|
AudioManager.Instance.PlayerFX(enterAudioID);
|
||||||
|
|
||||||
_enterPlane = FindPlaneSkeletonRect();
|
// ⭐ 飞机:优先完整飞机预制体实例 PW_Plane_等级(含 Body 骨架/尾迹/护盾/免费特效——由本类控制);
|
||||||
if (_enterPlane == null)
|
// 找不到才退回"骨架节点"(只有骨架、没有特效)
|
||||||
|
_enterPlaneRoot = FindPlaneRoot();
|
||||||
|
if (_enterPlaneRoot == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"[XJMH入场] {name} 未找到飞机节点(炮台/座位子树内名字含 feiji),只播炮台出现动画");
|
Debug.LogWarning($"[XJMH入场] {name} 未找到飞机节点(PW_Plane_x 或名字含 feiji),只播炮台出现动画");
|
||||||
PlayTurretOutAnim();
|
PlayTurretOutAnim();
|
||||||
_enterRoutine = null;
|
_enterRoutine = null;
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
_enterPlaneSg = _enterPlane.GetComponent<SkeletonGraphic>();
|
bool isFullPlane = _enterPlaneRoot.name.StartsWith("PW_Plane");
|
||||||
|
_enterPlaneSg = isFullPlane
|
||||||
|
? _enterPlaneRoot.GetComponentInChildren<SkeletonGraphic>(true)
|
||||||
|
: _enterPlaneRoot.GetComponent<SkeletonGraphic>();
|
||||||
|
Debug.Log($"[XJMH入场] {name} 飞机={_enterPlaneRoot.name}(完整飞机={isFullPlane} 骨架={(_enterPlaneSg != null ? _enterPlaneSg.name : "无")})");
|
||||||
|
|
||||||
// ⭐ 飞机临时挂到炮台下并保持停靠位(原挂载点=座位下的变体容器节点,默认未激活,不挂过来显示不了)
|
// ⭐ 飞机临时挂到炮台下并保持停靠位(原挂载点=座位下的变体容器节点,默认未激活,不挂过来显示不了);
|
||||||
|
// 完整飞机:停靠位=炮台的 Aprk 节点(原版 self.aprkPos)
|
||||||
AttachPlaneForEnter();
|
AttachPlaneForEnter();
|
||||||
Vector2 home = _enterPlane.anchoredPosition;
|
Vector3 home = _enterPlaneRoot.localPosition;
|
||||||
Vector2 start = home + new Vector2(0f, enterStartOffsetY);
|
Vector3 start = home + new Vector3(0f, enterStartOffsetY, 0f);
|
||||||
Vector2 mid = home + new Vector2(0f, enterStartOffsetY * 0.5f);
|
Vector3 mid = home + new Vector3(0f, enterStartOffsetY * 0.5f, 0f);
|
||||||
|
|
||||||
// ⭐ 原版 EnterAction 第 6 步:底部(容器/底座外壳)Spine 播 "out" 出场
|
// ⭐ 原版 EnterAction 第 6 步:底部(容器/底座外壳)Spine 播 "out" 出场
|
||||||
// (PW_Battery.txt:EnterAction → bottomSkeleton.AnimationState:SetAnimation(0,"out",false))
|
// (PW_Battery.txt:EnterAction → bottomSkeleton.AnimationState:SetAnimation(0,"out",false))
|
||||||
@@ -364,8 +372,17 @@ public class FlyTurretData : TurretData
|
|||||||
skeletonAnimation.gameObject.SetActive(false);
|
skeletonAnimation.gameObject.SetActive(false);
|
||||||
Transform board = transform.Find("Board");
|
Transform board = transform.Find("Board");
|
||||||
if (board != null) { board.gameObject.SetActive(false); _enterBoardHidden = true; }
|
if (board != null) { board.gameObject.SetActive(false); _enterBoardHidden = true; }
|
||||||
_enterPlane.gameObject.SetActive(true);
|
|
||||||
_enterPlane.anchoredPosition = start;
|
// ⭐ 飞机特效控制(原版 EnterAction):开 Body(骨架+尾迹)与护盾;
|
||||||
|
// 免费/暴击/加速三类特效一律关(原版只在免费模式玩法里开,prefab 默认全开会一起炸出来)
|
||||||
|
SetPlaneChildActive("Body", true);
|
||||||
|
SetPlaneChildActive("PW_Effect_Defend", true);
|
||||||
|
SetPlaneChildActive("FreeEffect", false);
|
||||||
|
SetPlaneChildActive("FreeEffect_Crit", false);
|
||||||
|
SetPlaneChildActive("FreeEffect_Speedup", false);
|
||||||
|
|
||||||
|
_enterPlaneRoot.gameObject.SetActive(true);
|
||||||
|
_enterPlaneRoot.localPosition = start;
|
||||||
if (_enterPlaneSg != null && _enterPlaneSg.AnimationState != null)
|
if (_enterPlaneSg != null && _enterPlaneSg.AnimationState != null)
|
||||||
{
|
{
|
||||||
// 原版飞机常驻飞行循环(PlaneFlyAnim:"stand01" 循环);清残留(对象池/重复入场)后先播它
|
// 原版飞机常驻飞行循环(PlaneFlyAnim:"stand01" 循环);清残留(对象池/重复入场)后先播它
|
||||||
@@ -375,22 +392,24 @@ public class FlyTurretData : TurretData
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 第一段:升到中途位(原版 EInQuart)
|
// 第一段:升到中途位(原版 EInQuart)
|
||||||
yield return RiseTo(_enterPlane, start, mid, enterRiseTime, true);
|
yield return RiseTo(_enterPlaneRoot, start, mid, enterRiseTime, true);
|
||||||
// 停顿(原版 delay 0.3)
|
// 停顿(原版 delay 0.3)
|
||||||
if (enterHoldTime > 0f) yield return new WaitForSeconds(enterHoldTime);
|
if (enterHoldTime > 0f) yield return new WaitForSeconds(enterHoldTime);
|
||||||
// 第二段:升到停靠位(原版 EOutQuart)
|
// 第二段:升到停靠位(原版 EOutQuart)
|
||||||
yield return RiseTo(_enterPlane, mid, home, enterBackRiseTime, false);
|
yield return RiseTo(_enterPlaneRoot, mid, home, enterBackRiseTime, false);
|
||||||
|
|
||||||
// PlaneBack 音效 + 飞机回位动画(原版 PlaneBack → PlaneBackAnim:"back")
|
// 原版 PlaneBack:护盾先收;PlaneBack 音效 + 飞机回位动画(PlaneBackAnim:"back")
|
||||||
|
SetPlaneChildActive("PW_Effect_Defend", false);
|
||||||
if (enterBackAudioID > 0 && AudioManager.Instance != null)
|
if (enterBackAudioID > 0 && AudioManager.Instance != null)
|
||||||
AudioManager.Instance.PlayerFX(enterBackAudioID);
|
AudioManager.Instance.PlayerFX(enterBackAudioID);
|
||||||
if (_enterPlaneSg != null && _enterPlaneSg.AnimationState != null && HasSpineAnim(_enterPlaneSg, "back"))
|
if (_enterPlaneSg != null && _enterPlaneSg.AnimationState != null && HasSpineAnim(_enterPlaneSg, "back"))
|
||||||
_enterPlaneSg.AnimationState.SetAnimation(0, "back", false);
|
_enterPlaneSg.AnimationState.SetAnimation(0, "back", false);
|
||||||
|
|
||||||
// 原版:back 动画约 1 秒后飞机隐藏、炮台出现(ShowGun → ShowBoard)
|
// 原版:back 动画约 1 秒后飞机本体(Body)隐藏、炮台出现(ShowGun → ShowBoard)
|
||||||
if (enterBackHoldTime > 0f) yield return new WaitForSeconds(enterBackHoldTime);
|
if (enterBackHoldTime > 0f) yield return new WaitForSeconds(enterBackHoldTime);
|
||||||
|
SetPlaneChildActive("Body", false);
|
||||||
DetachPlaneAfterEnter(); // 飞机隐藏 + 还原父节点/本地变换
|
DetachPlaneAfterEnter(); // 飞机隐藏 + 还原父节点/本地变换
|
||||||
_enterPlane = null;
|
_enterPlaneRoot = null;
|
||||||
_enterPlaneSg = null;
|
_enterPlaneSg = null;
|
||||||
PlayTurretOutAnim();
|
PlayTurretOutAnim();
|
||||||
if (board != null) board.gameObject.SetActive(true);
|
if (board != null) board.gameObject.SetActive(true);
|
||||||
@@ -399,11 +418,11 @@ public class FlyTurretData : TurretData
|
|||||||
_enterRoutine = null;
|
_enterRoutine = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>协程位移:EInQuart / EOutQuart 缓动(与原版 GC.Action 一致)</summary>
|
/// <summary>协程位移:EInQuart / EOutQuart 缓动(与原版 GC.Action 一致;用 localPosition 兼容完整飞机/骨架节点)</summary>
|
||||||
private static IEnumerator RiseTo(RectTransform rt, Vector2 from, Vector2 to, float time, bool easeIn)
|
private static IEnumerator RiseTo(Transform tr, Vector3 from, Vector3 to, float time, bool easeIn)
|
||||||
{
|
{
|
||||||
if (rt == null) yield break;
|
if (tr == null) yield break;
|
||||||
if (time <= 0f) { rt.anchoredPosition = to; yield break; }
|
if (time <= 0f) { tr.localPosition = to; yield break; }
|
||||||
|
|
||||||
float t = 0f;
|
float t = 0f;
|
||||||
while (t < time)
|
while (t < time)
|
||||||
@@ -411,10 +430,10 @@ public class FlyTurretData : TurretData
|
|||||||
t += Time.deltaTime;
|
t += Time.deltaTime;
|
||||||
float p = Mathf.Clamp01(t / time);
|
float p = Mathf.Clamp01(t / time);
|
||||||
float e = easeIn ? p * p * p * p : 1f - Mathf.Pow(1f - p, 4f);
|
float e = easeIn ? p * p * p * p : 1f - Mathf.Pow(1f - p, 4f);
|
||||||
rt.anchoredPosition = Vector2.LerpUnclamped(from, to, e);
|
tr.localPosition = Vector3.LerpUnclamped(from, to, e);
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
rt.anchoredPosition = to;
|
tr.localPosition = to;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>炮台本体出现:恢复显示并播 startingAnimation(预制体配的 "out";为空时兜底 "out")</summary>
|
/// <summary>炮台本体出现:恢复显示并播 startingAnimation(预制体配的 "out";为空时兜底 "out")</summary>
|
||||||
@@ -475,6 +494,148 @@ public class FlyTurretData : TurretData
|
|||||||
return data != null && data.FindAnimation(animName) != null;
|
return data != null && data.FindAnimation(animName) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 找入场飞机:① 完整飞机预制体实例(座位下名字以 "PW_Plane_等级" 开头,如 PW_Plane_1——含特效);
|
||||||
|
/// ② 骨架节点兜底(炮台/座位子树内名字含 "feiji" 的 SkeletonGraphic,如 lvptfeiji——只有骨架)。
|
||||||
|
/// </summary>
|
||||||
|
private Transform FindPlaneRoot()
|
||||||
|
{
|
||||||
|
var full = FindFullPlaneRoot();
|
||||||
|
if (full != null) return full;
|
||||||
|
return FindPlaneSkeletonRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>找完整飞机预制体实例:先炮台子树、再座位子树;按当前炮台等级精确匹配,匹配不到用任意一架</summary>
|
||||||
|
private Transform FindFullPlaneRoot()
|
||||||
|
{
|
||||||
|
var t = FindFullPlaneUnder(transform);
|
||||||
|
if (t != null) return t;
|
||||||
|
|
||||||
|
var sit = GetComponentInParent<SitPosData>();
|
||||||
|
return sit != null ? FindFullPlaneUnder(sit.transform) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Transform FindFullPlaneUnder(Transform root)
|
||||||
|
{
|
||||||
|
int lv = ParseTurretLevel();
|
||||||
|
Transform any = null;
|
||||||
|
foreach (var t in root.GetComponentsInChildren<Transform>(true))
|
||||||
|
{
|
||||||
|
if (t == null || !t.name.StartsWith("PW_Plane")) continue;
|
||||||
|
if (lv > 0 && t.name.StartsWith("PW_Plane_" + lv)) return t;
|
||||||
|
if (any == null) any = t;
|
||||||
|
}
|
||||||
|
return any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>炮台的飞机停靠位节点(原版 self.aprk = battery:FindChild("Aprk"))</summary>
|
||||||
|
private Transform FindAprkNode()
|
||||||
|
{
|
||||||
|
Transform t = transform.Find("Aprk");
|
||||||
|
if (t != null) return t;
|
||||||
|
foreach (var c in GetComponentsInChildren<Transform>(true))
|
||||||
|
if (c.name.ToLowerInvariant().Contains("aprk")) return c;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 飞机子节点显隐(只对完整飞机 PW_Plane 生效;骨架兜底路径没有这些特效节点,自动跳过):
|
||||||
|
/// Body=飞机本体(骨架+尾迹)、PW_Effect_Defend=护盾、FreeEffect/FreeEffect_Crit/FreeEffect_Speedup=免费模式三类特效。
|
||||||
|
/// </summary>
|
||||||
|
private void SetPlaneChildActive(string childName, bool active)
|
||||||
|
{
|
||||||
|
SetPlaneChildActive(_enterPlaneRoot, childName, active);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void SetPlaneChildActive(Transform planeRoot, string childName, bool active)
|
||||||
|
{
|
||||||
|
if (planeRoot == null || !planeRoot.name.StartsWith("PW_Plane")) return;
|
||||||
|
Transform t = planeRoot.Find(childName);
|
||||||
|
if (t != null) t.gameObject.SetActive(active);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 入场飞机预热(进房加载收尾时由面板调用,卡顿被进度条遮住) ====================
|
||||||
|
// XJMH 进入房间时"命中"的那架完整飞机(骨架 + 尾迹/护盾十多个粒子系统 + 贴图首次上传)首帧初始化很重;
|
||||||
|
// 全部堆在"加载到100%、进度条已隐藏"那一帧做,玩家会看到明显卡顿(其他玩法没有这套 XJMH 独有资产)。
|
||||||
|
// 预热 = 在进度条还在走时把飞机临时挂到激活的父节点下、缩到 0 隐藏,激活一两帧完成初始化,再原样还原。
|
||||||
|
|
||||||
|
private Coroutine _prewarmRoutine;
|
||||||
|
private Transform _prewarmPlane; // 预热中的飞机(被打断时还原用)
|
||||||
|
private Transform _prewarmOrigParent;
|
||||||
|
private int _prewarmOrigSibling;
|
||||||
|
private Vector3 _prewarmOrigPos;
|
||||||
|
private Quaternion _prewarmOrigRot;
|
||||||
|
private Vector3 _prewarmOrigScale;
|
||||||
|
private bool _prewarmOrigActive;
|
||||||
|
|
||||||
|
/// <summary>入场飞机预热(面板在加载收尾阶段调用;座位/炮台需已激活)。幂等:重复调用只跑一次。</summary>
|
||||||
|
public void PrewarmEnterPlane()
|
||||||
|
{
|
||||||
|
if (!isActiveAndEnabled) return;
|
||||||
|
if (_prewarmRoutine != null) return;
|
||||||
|
_prewarmRoutine = StartCoroutine(PrewarmPlaneRoutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PrewarmPlaneRoutine()
|
||||||
|
{
|
||||||
|
Transform plane = FindPlaneRoot();
|
||||||
|
if (plane == null) { _prewarmRoutine = null; yield break; }
|
||||||
|
|
||||||
|
_prewarmPlane = plane;
|
||||||
|
_prewarmOrigParent = plane.parent;
|
||||||
|
_prewarmOrigSibling = plane.GetSiblingIndex();
|
||||||
|
_prewarmOrigPos = plane.localPosition;
|
||||||
|
_prewarmOrigRot = plane.localRotation;
|
||||||
|
_prewarmOrigScale = plane.localScale;
|
||||||
|
_prewarmOrigActive = plane.gameObject.activeSelf;
|
||||||
|
|
||||||
|
// 只开入场要用的 Body+护盾、关掉免费三类——避免把五十来个粒子系统全部初始化(反而更重)
|
||||||
|
SetPlaneChildActive(plane, "Body", true);
|
||||||
|
SetPlaneChildActive(plane, "PW_Effect_Defend", true);
|
||||||
|
SetPlaneChildActive(plane, "FreeEffect", false);
|
||||||
|
SetPlaneChildActive(plane, "FreeEffect_Crit", false);
|
||||||
|
SetPlaneChildActive(plane, "FreeEffect_Speedup", false);
|
||||||
|
|
||||||
|
// 临时挂到根节点(激活中)并缩到 0:既能触发初始化,又完全不可见
|
||||||
|
Transform holder = transform.root;
|
||||||
|
if (holder != null && holder != _prewarmOrigParent)
|
||||||
|
plane.SetParent(holder, true);
|
||||||
|
plane.localScale = Vector3.zero;
|
||||||
|
plane.gameObject.SetActive(true);
|
||||||
|
yield return null;
|
||||||
|
yield return null; // 让骨架首帧网格、粒子首帧模拟都跑到
|
||||||
|
|
||||||
|
FinishPrewarmRestore();
|
||||||
|
Debug.Log($"[XJMH入场] 飞机预热完成({plane.name})");
|
||||||
|
_prewarmRoutine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>预热还原:飞机隐藏并恢复到预热前的挂载/变换/激活状态(协程正常收尾或中途被打断都用它)</summary>
|
||||||
|
private void FinishPrewarmRestore()
|
||||||
|
{
|
||||||
|
if (_prewarmPlane == null) return;
|
||||||
|
Transform plane = _prewarmPlane;
|
||||||
|
_prewarmPlane = null;
|
||||||
|
|
||||||
|
plane.gameObject.SetActive(false);
|
||||||
|
if (_prewarmOrigParent != null && plane.parent != _prewarmOrigParent)
|
||||||
|
{
|
||||||
|
plane.SetParent(_prewarmOrigParent, false);
|
||||||
|
plane.SetSiblingIndex(_prewarmOrigSibling);
|
||||||
|
}
|
||||||
|
plane.localPosition = _prewarmOrigPos;
|
||||||
|
plane.localRotation = _prewarmOrigRot;
|
||||||
|
plane.localScale = _prewarmOrigScale;
|
||||||
|
plane.gameObject.SetActive(_prewarmOrigActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>预热中途被打断(座位/炮台被禁用):停协程并把飞机还原回原挂载点,避免残留</summary>
|
||||||
|
private void CleanupPrewarm()
|
||||||
|
{
|
||||||
|
if (_prewarmRoutine != null) { StopCoroutine(_prewarmRoutine); _prewarmRoutine = null; }
|
||||||
|
FinishPrewarmRestore();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 找飞机骨架:① 炮台子树(飞机挂在炮台下的布局);
|
/// 找飞机骨架:① 炮台子树(飞机挂在炮台下的布局);
|
||||||
/// ② 座位子树(当前 XJMH 布局:飞机与炮台平级、挂在座位的变体容器节点里,
|
/// ② 座位子树(当前 XJMH 布局:飞机与炮台平级、挂在座位的变体容器节点里,
|
||||||
@@ -528,43 +689,50 @@ public class FlyTurretData : TurretData
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>入场开始:飞机临时挂到炮台下(保留世界位置/旋转/缩放)——原挂载点(座位下的变体容器节点)默认未激活,直接显隐看不到</summary>
|
/// <summary>入场开始:飞机临时挂到炮台下(保留世界位置/旋转/缩放)——原挂载点(座位下的变体容器节点)默认未激活,直接显隐看不到;
|
||||||
|
/// 完整飞机额外摆到炮台 Aprk 停靠位(原版 aprkPos)</summary>
|
||||||
private void AttachPlaneForEnter()
|
private void AttachPlaneForEnter()
|
||||||
{
|
{
|
||||||
_enterPlaneOrigParent = _enterPlane.parent;
|
_enterPlaneOrigParent = _enterPlaneRoot.parent;
|
||||||
_enterPlaneOrigSibling = _enterPlane.GetSiblingIndex();
|
_enterPlaneOrigSibling = _enterPlaneRoot.GetSiblingIndex();
|
||||||
_enterPlaneOrigLocalPos = _enterPlane.localPosition;
|
_enterPlaneOrigLocalPos = _enterPlaneRoot.localPosition;
|
||||||
_enterPlaneOrigLocalRot = _enterPlane.localRotation;
|
_enterPlaneOrigLocalRot = _enterPlaneRoot.localRotation;
|
||||||
_enterPlaneOrigLocalScale = _enterPlane.localScale;
|
_enterPlaneOrigLocalScale = _enterPlaneRoot.localScale;
|
||||||
|
|
||||||
if (_enterPlane.parent != transform)
|
if (_enterPlaneRoot.parent != transform)
|
||||||
_enterPlane.SetParent(transform, true); // true=保留世界变换,停靠位不跳
|
_enterPlaneRoot.SetParent(transform, true); // true=保留世界变换,停靠位不跳
|
||||||
|
|
||||||
|
if (_enterPlaneRoot.name.StartsWith("PW_Plane"))
|
||||||
|
{
|
||||||
|
Transform aprk = FindAprkNode();
|
||||||
|
if (aprk != null) _enterPlaneRoot.position = aprk.position; // 停靠位=炮台 Aprk(原版)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>入场结束/清理:飞机隐藏并还原父节点与本地变换,不残留运行时改动</summary>
|
/// <summary>入场结束/清理:飞机隐藏并还原父节点与本地变换,不残留运行时改动</summary>
|
||||||
private void DetachPlaneAfterEnter()
|
private void DetachPlaneAfterEnter()
|
||||||
{
|
{
|
||||||
if (_enterPlane == null) return;
|
if (_enterPlaneRoot == null) return;
|
||||||
|
|
||||||
_enterPlane.gameObject.SetActive(false);
|
_enterPlaneRoot.gameObject.SetActive(false);
|
||||||
if (_enterPlaneOrigParent != null && _enterPlane.parent != _enterPlaneOrigParent)
|
if (_enterPlaneOrigParent != null && _enterPlaneRoot.parent != _enterPlaneOrigParent)
|
||||||
{
|
{
|
||||||
_enterPlane.SetParent(_enterPlaneOrigParent, false);
|
_enterPlaneRoot.SetParent(_enterPlaneOrigParent, false);
|
||||||
_enterPlane.SetSiblingIndex(_enterPlaneOrigSibling);
|
_enterPlaneRoot.SetSiblingIndex(_enterPlaneOrigSibling);
|
||||||
}
|
}
|
||||||
_enterPlane.localPosition = _enterPlaneOrigLocalPos;
|
_enterPlaneRoot.localPosition = _enterPlaneOrigLocalPos;
|
||||||
_enterPlane.localRotation = _enterPlaneOrigLocalRot;
|
_enterPlaneRoot.localRotation = _enterPlaneOrigLocalRot;
|
||||||
_enterPlane.localScale = _enterPlaneOrigLocalScale;
|
_enterPlaneRoot.localScale = _enterPlaneOrigLocalScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>入场动画清理:停协程 + 飞机隐藏并还原挂载 + Board/炮台本体恢复显示,禁用/回收不残留</summary>
|
/// <summary>入场动画清理:停协程 + 飞机隐藏并还原挂载 + Board/炮台本体恢复显示,禁用/回收不残留</summary>
|
||||||
private void CleanupEnterAction()
|
private void CleanupEnterAction()
|
||||||
{
|
{
|
||||||
if (_enterRoutine != null) { StopCoroutine(_enterRoutine); _enterRoutine = null; }
|
if (_enterRoutine != null) { StopCoroutine(_enterRoutine); _enterRoutine = null; }
|
||||||
if (_enterPlane != null)
|
if (_enterPlaneRoot != null)
|
||||||
{
|
{
|
||||||
DetachPlaneAfterEnter();
|
DetachPlaneAfterEnter();
|
||||||
_enterPlane = null;
|
_enterPlaneRoot = null;
|
||||||
_enterPlaneSg = null;
|
_enterPlaneSg = null;
|
||||||
}
|
}
|
||||||
// 入场中途被打断:恢复被本类暂时隐藏的 Board(只恢复自己隐藏的,不动其他逻辑的显隐)
|
// 入场中途被打断:恢复被本类暂时隐藏的 Board(只恢复自己隐藏的,不动其他逻辑的显隐)
|
||||||
@@ -582,6 +750,8 @@ public class FlyTurretData : TurretData
|
|||||||
{
|
{
|
||||||
// ⭐ 入场动画清理(停协程、飞机复位隐藏、炮台本体恢复显示):必须在提前 return 之前调用
|
// ⭐ 入场动画清理(停协程、飞机复位隐藏、炮台本体恢复显示):必须在提前 return 之前调用
|
||||||
CleanupEnterAction();
|
CleanupEnterAction();
|
||||||
|
// ⭐ 预热中途被打断:还原临时挂载的飞机,避免残留
|
||||||
|
CleanupPrewarm();
|
||||||
|
|
||||||
// 切炮台/座位被禁用时兜底复位
|
// 切炮台/座位被禁用时兜底复位
|
||||||
if (!IsFlying) return;
|
if (!IsFlying) return;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class AudioResourcesData
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
//这里要添加默认的音效 背景 按钮点击
|
//默认音效(背景音乐、按钮点击 PW_Button 等)放在 Audio+Default 标签集合里,随启动常驻加载
|
||||||
LoadDefaultAudioGame();
|
LoadDefaultAudioGame();
|
||||||
}
|
}
|
||||||
static async void LoadDefaultAudioGame()
|
static async void LoadDefaultAudioGame()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2773a9b37833a5846ac71179ba21d3fe
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -260,7 +260,9 @@
|
|||||||
"fishNumber": 11024,
|
"fishNumber": 11024,
|
||||||
"prefabFishResourcesPath": "171",
|
"prefabFishResourcesPath": "171",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30110,
|
"layer": 30110,
|
||||||
@@ -271,7 +273,9 @@
|
|||||||
"fishNumber": 11025,
|
"fishNumber": 11025,
|
||||||
"prefabFishResourcesPath": "192",
|
"prefabFishResourcesPath": "192",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30120,
|
"layer": 30120,
|
||||||
@@ -282,7 +286,9 @@
|
|||||||
"fishNumber": 11026,
|
"fishNumber": 11026,
|
||||||
"prefabFishResourcesPath": "176",
|
"prefabFishResourcesPath": "176",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30130,
|
"layer": 30130,
|
||||||
@@ -293,7 +299,9 @@
|
|||||||
"fishNumber": 11027,
|
"fishNumber": 11027,
|
||||||
"prefabFishResourcesPath": "fish_136",
|
"prefabFishResourcesPath": "fish_136",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30140,
|
"layer": 30140,
|
||||||
@@ -307,7 +315,7 @@
|
|||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30140,
|
"layer": 30150,
|
||||||
"boardText": "",
|
"boardText": "",
|
||||||
"dieEffectAssets": ""
|
"dieEffectAssets": ""
|
||||||
},
|
},
|
||||||
@@ -315,7 +323,9 @@
|
|||||||
"fishNumber": 11029,
|
"fishNumber": 11029,
|
||||||
"prefabFishResourcesPath": "1595",
|
"prefabFishResourcesPath": "1595",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
0
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30160,
|
"layer": 30160,
|
||||||
@@ -326,7 +336,9 @@
|
|||||||
"fishNumber": 11030,
|
"fishNumber": 11030,
|
||||||
"prefabFishResourcesPath": "fish_144",
|
"prefabFishResourcesPath": "fish_144",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30170,
|
"layer": 30170,
|
||||||
@@ -337,7 +349,9 @@
|
|||||||
"fishNumber": 11031,
|
"fishNumber": 11031,
|
||||||
"prefabFishResourcesPath": "182",
|
"prefabFishResourcesPath": "182",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30180,
|
"layer": 30180,
|
||||||
@@ -370,7 +384,9 @@
|
|||||||
"fishNumber": 11034,
|
"fishNumber": 11034,
|
||||||
"prefabFishResourcesPath": "1613",
|
"prefabFishResourcesPath": "1613",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30210,
|
"layer": 30210,
|
||||||
@@ -381,7 +397,9 @@
|
|||||||
"fishNumber": 11035,
|
"fishNumber": 11035,
|
||||||
"prefabFishResourcesPath": "6005",
|
"prefabFishResourcesPath": "6005",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30220,
|
"layer": 30220,
|
||||||
@@ -392,7 +410,9 @@
|
|||||||
"fishNumber": 11036,
|
"fishNumber": 11036,
|
||||||
"prefabFishResourcesPath": "6012",
|
"prefabFishResourcesPath": "6012",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
0
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30230,
|
"layer": 30230,
|
||||||
@@ -403,7 +423,9 @@
|
|||||||
"fishNumber": 11037,
|
"fishNumber": 11037,
|
||||||
"prefabFishResourcesPath": "1615",
|
"prefabFishResourcesPath": "1615",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
0
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30240,
|
"layer": 30240,
|
||||||
@@ -414,7 +436,9 @@
|
|||||||
"fishNumber": 11038,
|
"fishNumber": 11038,
|
||||||
"prefabFishResourcesPath": "5010",
|
"prefabFishResourcesPath": "5010",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30250,
|
"layer": 30250,
|
||||||
@@ -425,7 +449,9 @@
|
|||||||
"fishNumber": 11039,
|
"fishNumber": 11039,
|
||||||
"prefabFishResourcesPath": "7005",
|
"prefabFishResourcesPath": "7005",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30260,
|
"layer": 30260,
|
||||||
@@ -447,7 +473,9 @@
|
|||||||
"fishNumber": 11041,
|
"fishNumber": 11041,
|
||||||
"prefabFishResourcesPath": "6004",
|
"prefabFishResourcesPath": "6004",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30270,
|
"layer": 30270,
|
||||||
@@ -458,7 +486,9 @@
|
|||||||
"fishNumber": 11042,
|
"fishNumber": 11042,
|
||||||
"prefabFishResourcesPath": "1614",
|
"prefabFishResourcesPath": "1614",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 0,
|
"layer": 0,
|
||||||
@@ -469,7 +499,9 @@
|
|||||||
"fishNumber": 11043,
|
"fishNumber": 11043,
|
||||||
"prefabFishResourcesPath": "4022",
|
"prefabFishResourcesPath": "4022",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
2
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 0,
|
"layer": 0,
|
||||||
@@ -747,7 +779,9 @@
|
|||||||
"fishNumber": 12022,
|
"fishNumber": 12022,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_114",
|
"prefabFishResourcesPath": "PW_Enemy_114",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30100,
|
"layer": 30100,
|
||||||
@@ -758,7 +792,9 @@
|
|||||||
"fishNumber": 12023,
|
"fishNumber": 12023,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_113",
|
"prefabFishResourcesPath": "PW_Enemy_113",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30110,
|
"layer": 30110,
|
||||||
@@ -769,7 +805,9 @@
|
|||||||
"fishNumber": 12024,
|
"fishNumber": 12024,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_112",
|
"prefabFishResourcesPath": "PW_Enemy_112",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30120,
|
"layer": 30120,
|
||||||
@@ -779,7 +817,9 @@
|
|||||||
{
|
{
|
||||||
"fishNumber": 12025,
|
"fishNumber": 12025,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_102",
|
"prefabFishResourcesPath": "PW_Enemy_102",
|
||||||
"showAudio": [],
|
"showAudio": [
|
||||||
|
102
|
||||||
|
],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
@@ -791,7 +831,9 @@
|
|||||||
"fishNumber": 12026,
|
"fishNumber": 12026,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_1000",
|
"prefabFishResourcesPath": "PW_Enemy_1000",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30140,
|
"layer": 30140,
|
||||||
@@ -813,7 +855,9 @@
|
|||||||
"fishNumber": 12028,
|
"fishNumber": 12028,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_3000",
|
"prefabFishResourcesPath": "PW_Enemy_3000",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30160,
|
"layer": 30160,
|
||||||
@@ -835,7 +879,9 @@
|
|||||||
"fishNumber": 12030,
|
"fishNumber": 12030,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_5000",
|
"prefabFishResourcesPath": "PW_Enemy_5000",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30180,
|
"layer": 30180,
|
||||||
@@ -846,7 +892,9 @@
|
|||||||
"fishNumber": 12031,
|
"fishNumber": 12031,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_6000",
|
"prefabFishResourcesPath": "PW_Enemy_6000",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30190,
|
"layer": 30190,
|
||||||
@@ -857,7 +905,9 @@
|
|||||||
"fishNumber": 12032,
|
"fishNumber": 12032,
|
||||||
"prefabFishResourcesPath": "7001",
|
"prefabFishResourcesPath": "7001",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30200,
|
"layer": 30200,
|
||||||
@@ -868,7 +918,9 @@
|
|||||||
"fishNumber": 12033,
|
"fishNumber": 12033,
|
||||||
"prefabFishResourcesPath": "Z_4030",
|
"prefabFishResourcesPath": "Z_4030",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30210,
|
"layer": 30210,
|
||||||
@@ -879,7 +931,9 @@
|
|||||||
"fishNumber": 12034,
|
"fishNumber": 12034,
|
||||||
"prefabFishResourcesPath": "PW_Enemy_115",
|
"prefabFishResourcesPath": "PW_Enemy_115",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"dieAudio": [],
|
"dieAudio": [],
|
||||||
"dieGlodAduio": {},
|
"dieGlodAduio": {},
|
||||||
"layer": 30220,
|
"layer": 30220,
|
||||||
@@ -888,7 +942,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13001,
|
"fishNumber": 13001,
|
||||||
"prefabFishResourcesPath": "fish_1017 Variant",
|
"prefabFishResourcesPath": "fish_1018 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -903,7 +957,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13002,
|
"fishNumber": 13002,
|
||||||
"prefabFishResourcesPath": "fish_1018 Variant",
|
"prefabFishResourcesPath": "fish_1017 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -993,7 +1047,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13008,
|
"fishNumber": 13008,
|
||||||
"prefabFishResourcesPath": "fish_1024 Variant",
|
"prefabFishResourcesPath": "fish_1028 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -1008,7 +1062,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13009,
|
"fishNumber": 13009,
|
||||||
"prefabFishResourcesPath": "fish_1025 Variant",
|
"prefabFishResourcesPath": "fish_1024 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -1023,7 +1077,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13010,
|
"fishNumber": 13010,
|
||||||
"prefabFishResourcesPath": "fish_1026 Variant",
|
"prefabFishResourcesPath": "fish_1027 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -1038,7 +1092,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13011,
|
"fishNumber": 13011,
|
||||||
"prefabFishResourcesPath": "fish_1027 Variant",
|
"prefabFishResourcesPath": "fish_1025 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -1058,7 +1112,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13012,
|
"fishNumber": 13012,
|
||||||
"prefabFishResourcesPath": "fish_1028 Variant",
|
"prefabFishResourcesPath": "fish_1026 Variant",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
"moveAudio": [],
|
"moveAudio": [],
|
||||||
"dieAudio": [
|
"dieAudio": [
|
||||||
@@ -1582,7 +1636,7 @@
|
|||||||
"boardText": "",
|
"boardText": "",
|
||||||
"dieEffectAssets": ""
|
"dieEffectAssets": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fishNumber": 13040,
|
"fishNumber": 13040,
|
||||||
"prefabFishResourcesPath": "6002",
|
"prefabFishResourcesPath": "6002",
|
||||||
"showAudio": [],
|
"showAudio": [],
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 47ad122f0a168f74d820cf628df9d8fc
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -36,6 +36,7 @@ public class HuoDe : MonoBehaviour
|
|||||||
{
|
{
|
||||||
if (skeletonGraphic == null)
|
if (skeletonGraphic == null)
|
||||||
skeletonGraphic = GetComponent<SkeletonGraphic>();
|
skeletonGraphic = GetComponent<SkeletonGraphic>();
|
||||||
|
UIClickSound.AttachToAll(gameObject); // ⭐ 弹窗是独立预制体(非 UIBase 面板),这里手动补按钮点击音效
|
||||||
if (btn_Close != null)
|
if (btn_Close != null)
|
||||||
btn_Close.onClick.AddListener(Close);
|
btn_Close.onClick.AddListener(Close);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,175 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &2498735191370420737
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8936735123803640290}
|
||||||
|
- component: {fileID: 4802091541961723999}
|
||||||
|
- component: {fileID: 5229908422829759345}
|
||||||
|
- component: {fileID: 4032031768493949582}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Image
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8936735123803640290
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2498735191370420737}
|
||||||
|
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: 439111589277315844}
|
||||||
|
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!222 &4802091541961723999
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2498735191370420737}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5229908422829759345
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2498735191370420737}
|
||||||
|
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: 0}
|
||||||
|
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!95 &4032031768493949582
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2498735191370420737}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 0}
|
||||||
|
m_Controller: {fileID: 9100000, guid: a5d7833a4b87655418d3ab65ec5bf9ea, type: 2}
|
||||||
|
m_CullingMode: 0
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_StabilizeFeet: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorStateOnDisable: 0
|
||||||
|
m_WriteDefaultValuesOnDisable: 0
|
||||||
|
--- !u!1 &4264627302849353753
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 439111589277315844}
|
||||||
|
- component: {fileID: 4304591977372035238}
|
||||||
|
- component: {fileID: 347520471200239115}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: JiaZaiZhong
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &439111589277315844
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4264627302849353753}
|
||||||
|
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: 8936735123803640290}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
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 &4304591977372035238
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4264627302849353753}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &347520471200239115
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4264627302849353753}
|
||||||
|
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, g: 0, b: 0, a: 0.4627451}
|
||||||
|
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: 0}
|
||||||
|
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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 021ede141bc7c4e47bcf4fabed7681d6
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -21,6 +21,7 @@ public class TiShi : MonoBehaviour
|
|||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
_standardSize = transform.GetChild(0).localScale;
|
_standardSize = transform.GetChild(0).localScale;
|
||||||
|
UIClickSound.AttachToAll(gameObject); // ⭐ 弹窗是独立预制体(非 UIBase 面板),这里手动补按钮点击音效
|
||||||
if (btn_Close != null)
|
if (btn_Close != null)
|
||||||
btn_Close.onClick.AddListener(Close);
|
btn_Close.onClick.AddListener(Close);
|
||||||
if (btn_QueRen != null)
|
if (btn_QueRen != null)
|
||||||
|
|||||||
@@ -476,6 +476,37 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// XJMH 进房首帧预热(加载 90%→100% 收尾窗口调用,进度条还显示着玩家看不到):
|
||||||
|
/// 把本地座位(座位自带炮台随 Awake 一起初始化)与"入场要用的那架完整飞机"提前点亮——
|
||||||
|
/// 这些 XJMH 独有资产首次初始化(骨架/粒子/贴图首上传)很重,全堆在 100% 那一帧玩家会看到明显卡顿。
|
||||||
|
/// 入场动画有加载完成门卫(IsGameLoadCompleted),预热不会导致动画提前播放。
|
||||||
|
/// </summary>
|
||||||
|
private void PrewarmXJMHForLocalSeat()
|
||||||
|
{
|
||||||
|
if (!_pendingFirstShowInit || _pendingRoomJoinNotice == null) return;
|
||||||
|
if (list_Sits == null || list_Sits.Count == 0) return;
|
||||||
|
|
||||||
|
var sit = list_Sits.Find(s => s != null && s.posID == SeatMirror.ToDisplay(_pendingRoomJoinNotice.Position));
|
||||||
|
if (sit == null || sit.turretControlMode != TurretControlMode.XJMH) return;
|
||||||
|
|
||||||
|
StartCoroutine(PrewarmXJMHCoroutine(sit));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PrewarmXJMHCoroutine(SitPosData sit)
|
||||||
|
{
|
||||||
|
// ① 提前激活本地座位:Awake → InitXJMHTurret → 激活默认炮台(PW_Battery_x 首次初始化在这里完成,
|
||||||
|
// 被加载界面遮住)。100% 时 JoinGame 再 SetActive(true) 是幂等的,不影响正常入座流程
|
||||||
|
if (sit != null && !sit.gameObject.activeSelf)
|
||||||
|
sit.gameObject.SetActive(true);
|
||||||
|
yield return null; // 让座位/炮台这帧的重活落在加载画面里
|
||||||
|
|
||||||
|
// ② 飞机隐藏预热(座位激活后 currentTurret 已就绪 = 入场会用的那把)
|
||||||
|
var turret = sit != null ? sit.currentTurret as FlyTurretData : null;
|
||||||
|
if (turret != null)
|
||||||
|
turret.PrewarmEnterPlane();
|
||||||
|
}
|
||||||
|
|
||||||
private void RefreshGGKCount()
|
private void RefreshGGKCount()
|
||||||
{
|
{
|
||||||
var user = GameManager.Instance.user;
|
var user = GameManager.Instance.user;
|
||||||
@@ -1408,6 +1439,10 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
|
|||||||
// ⭐ 90% 确认点:走到这里所有资源加载都已完成(上面全是 await 顺序执行)
|
// ⭐ 90% 确认点:走到这里所有资源加载都已完成(上面全是 await 顺序执行)
|
||||||
SetLoadProgress(0.9f);
|
SetLoadProgress(0.9f);
|
||||||
|
|
||||||
|
// ⭐ XJMH 预热:借 90→100 的收尾窗口(进度条还在走)提前把本地座位/炮台 + 入场飞机点亮。
|
||||||
|
// 这些 XJMH 独有资产首次初始化(骨架/粒子/贴图)很重,堆到 100% 那帧玩家会看到卡一下
|
||||||
|
PrewarmXJMHForLocalSeat();
|
||||||
|
|
||||||
// ⭐ 90→100 平滑收尾:约 1 秒走完,进度条持续在动(替代原 2 秒死等;
|
// ⭐ 90→100 平滑收尾:约 1 秒走完,进度条持续在动(替代原 2 秒死等;
|
||||||
// 保留这段缓冲是等出鱼首帧/场景渲染稳定,比原来快 1 秒+)
|
// 保留这段缓冲是等出鱼首帧/场景渲染稳定,比原来快 1 秒+)
|
||||||
for (int i = 1; i <= 20; i++)
|
for (int i = 1; i <= 20; i++)
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!91 &9100000
|
||||||
|
AnimatorController:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Image
|
||||||
|
serializedVersion: 5
|
||||||
|
m_AnimatorParameters: []
|
||||||
|
m_AnimatorLayers: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a5d7833a4b87655418d3ab65ec5bf9ea
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 9100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!74 &7400000
|
||||||
|
AnimationClip:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: New Animation
|
||||||
|
serializedVersion: 7
|
||||||
|
m_Legacy: 0
|
||||||
|
m_Compressed: 0
|
||||||
|
m_UseHighQualityCurve: 1
|
||||||
|
m_RotationCurves: []
|
||||||
|
m_CompressedRotationCurves: []
|
||||||
|
m_EulerCurves: []
|
||||||
|
m_PositionCurves: []
|
||||||
|
m_ScaleCurves: []
|
||||||
|
m_FloatCurves: []
|
||||||
|
m_PPtrCurves: []
|
||||||
|
m_SampleRate: 60
|
||||||
|
m_WrapMode: 0
|
||||||
|
m_Bounds:
|
||||||
|
m_Center: {x: 0, y: 0, z: 0}
|
||||||
|
m_Extent: {x: 0, y: 0, z: 0}
|
||||||
|
m_ClipBindingConstant:
|
||||||
|
genericBindings: []
|
||||||
|
pptrCurveMapping: []
|
||||||
|
m_AnimationClipSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_AdditiveReferencePoseClip: {fileID: 0}
|
||||||
|
m_AdditiveReferencePoseTime: 0
|
||||||
|
m_StartTime: 0
|
||||||
|
m_StopTime: 1
|
||||||
|
m_OrientationOffsetY: 0
|
||||||
|
m_Level: 0
|
||||||
|
m_CycleOffset: 0
|
||||||
|
m_HasAdditiveReferencePose: 0
|
||||||
|
m_LoopTime: 1
|
||||||
|
m_LoopBlend: 0
|
||||||
|
m_LoopBlendOrientation: 0
|
||||||
|
m_LoopBlendPositionY: 0
|
||||||
|
m_LoopBlendPositionXZ: 0
|
||||||
|
m_KeepOriginalOrientation: 0
|
||||||
|
m_KeepOriginalPositionY: 1
|
||||||
|
m_KeepOriginalPositionXZ: 0
|
||||||
|
m_HeightFromFeet: 0
|
||||||
|
m_Mirror: 0
|
||||||
|
m_EditorCurves: []
|
||||||
|
m_EulerEditorCurves: []
|
||||||
|
m_HasGenericRootTransform: 0
|
||||||
|
m_HasMotionFloatCurves: 0
|
||||||
|
m_Events: []
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3a164bdf076d93747a91d014fe5731c7
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 7400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
@@ -0,0 +1,417 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6fa3b0ef5bf546b4ea9786858bbde44c
|
||||||
|
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
|
||||||
|
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: 2
|
||||||
|
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: 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: iPhone
|
||||||
|
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: 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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 3a1b33406db69a24193fbb6582e3e53a
|
||||||
|
internalID: -431589004
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_1
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 128
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 59733beaf7ae07c47a98e6f70690cde1
|
||||||
|
internalID: 1332540317
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_2
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 256
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: e8d6e9aa0a08d1c408f88b0f1f14be7d
|
||||||
|
internalID: -1057538697
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_3
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 384
|
||||||
|
y: 256
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: a8a50540d47ba7549b7b9302ce6f9e81
|
||||||
|
internalID: -1066861282
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_4
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: ca0f711641dc6e8488225bfc8cb29d97
|
||||||
|
internalID: -1457659192
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_5
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 128
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 16d7e843e68a7b3468331d4195118e4d
|
||||||
|
internalID: -909050252
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_6
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 256
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: db808d1e8bd509144809cd2b60b562d5
|
||||||
|
internalID: 1999200147
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_7
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 384
|
||||||
|
y: 128
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: d4f537f981fbb2f47aabf664195fdeed
|
||||||
|
internalID: -1366936253
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_8
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 784ca035b9d8b0646901e27a353ae19b
|
||||||
|
internalID: -134975219
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_9
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 128
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 0eb4ff6c4ce2d1d4eb3420e66b8df205
|
||||||
|
internalID: 724369236
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_10
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 256
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 00e0773ac828d574a89d91cb0b344bc5
|
||||||
|
internalID: 505577262
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: jiazai_11
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 384
|
||||||
|
y: 0
|
||||||
|
width: 128
|
||||||
|
height: 128
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 407257b49874a2043adf9d112ed520d6
|
||||||
|
internalID: 480037776
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable:
|
||||||
|
jiazai_0: -431589004
|
||||||
|
jiazai_1: 1332540317
|
||||||
|
jiazai_10: 505577262
|
||||||
|
jiazai_11: 480037776
|
||||||
|
jiazai_2: -1057538697
|
||||||
|
jiazai_3: -1066861282
|
||||||
|
jiazai_4: -1457659192
|
||||||
|
jiazai_5: -909050252
|
||||||
|
jiazai_6: 1999200147
|
||||||
|
jiazai_7: -1366936253
|
||||||
|
jiazai_8: -134975219
|
||||||
|
jiazai_9: 724369236
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Reference in New Issue
Block a user