1
This commit is contained in:
Binary file not shown.
+41
@@ -474,6 +474,30 @@ MonoBehaviour:
|
||||
m_Loop: 0
|
||||
m_Version: 1
|
||||
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
--- !u!114 &-2074673312225965017
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b46e36075dd1c124a8422c228e75e1fb, type: 3}
|
||||
m_Name: Signal Track
|
||||
m_EditorClassIdentifier:
|
||||
m_Version: 3
|
||||
m_AnimClip: {fileID: 0}
|
||||
m_Locked: 0
|
||||
m_Muted: 0
|
||||
m_CustomPlayableFullTypename:
|
||||
m_Curves: {fileID: 0}
|
||||
m_Parent: {fileID: 11400000}
|
||||
m_Children: []
|
||||
m_Clips: []
|
||||
m_Markers:
|
||||
m_Objects:
|
||||
- {fileID: 1200190213602440138}
|
||||
--- !u!114 &-1989552137614748288
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
@@ -582,12 +606,29 @@ MonoBehaviour:
|
||||
- {fileID: -7296840662289381488}
|
||||
- {fileID: 5186033657131011299}
|
||||
- {fileID: 3987209035011995369}
|
||||
- {fileID: -2074673312225965017}
|
||||
m_FixedDuration: 0
|
||||
m_EditorSettings:
|
||||
m_Framerate: 60
|
||||
m_ScenePreview: 1
|
||||
m_DurationMode: 0
|
||||
m_MarkerTrack: {fileID: 0}
|
||||
--- !u!114 &1200190213602440138
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 15c38f6fa1940124db1ab7f6fe7268d1, type: 3}
|
||||
m_Name: Signal Emitter
|
||||
m_EditorClassIdentifier:
|
||||
m_Time: 60.48362811791383
|
||||
m_Retroactive: 0
|
||||
m_EmitOnce: 0
|
||||
m_Asset: {fileID: 11400000, guid: aca498d52b11314418047bc8d6c097ae, type: 2}
|
||||
--- !u!114 &2042751740905295680
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 1
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEngine.Networking;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Networking;
|
||||
|
||||
/// <summary>
|
||||
/// 北京时间管理器 - 同步时记录服务器时间与本地系统时间的差值,获取时返回本地时间+差值
|
||||
@@ -13,6 +14,14 @@ public class BeijingTimeManager : MonoSingleton<BeijingTimeManager>
|
||||
[SerializeField] private bool _isTimeSynced = false;
|
||||
[SerializeField] private TimeSpan _serverTimeOffset; // 服务器时间 - 本地系统时间
|
||||
|
||||
[Header("定时同步")]
|
||||
[Tooltip("定时同步间隔(秒),本地系统时钟会漂移,需要定期校正")]
|
||||
[SerializeField] private float _syncInterval = 30f;
|
||||
[Tooltip("offset 平滑系数(0~1),越大越偏向新测量值,抗 RTT 抖动")]
|
||||
[SerializeField] private float _smoothFactor = 0.3f;
|
||||
|
||||
private Coroutine _autoSyncCoroutine;
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前北京时间
|
||||
/// </summary>
|
||||
@@ -60,17 +69,38 @@ public class BeijingTimeManager : MonoSingleton<BeijingTimeManager>
|
||||
private void Start()
|
||||
{
|
||||
SyncBeijingTime();
|
||||
// 启动定时同步,修正本地系统时钟漂移
|
||||
if (_autoSyncCoroutine == null)
|
||||
_autoSyncCoroutine = StartCoroutine(AutoSyncLoop());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 定时同步循环
|
||||
/// </summary>
|
||||
private IEnumerator AutoSyncLoop()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
yield return new WaitForSeconds(_syncInterval);
|
||||
SyncBeijingTime();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_autoSyncCoroutine != null)
|
||||
StopCoroutine(_autoSyncCoroutine);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 同步北京时间
|
||||
/// </summary>
|
||||
public void SyncBeijingTime()
|
||||
public void SyncBeijingTime(Action action=null)
|
||||
{
|
||||
StartCoroutine(FetchBeijingTime());
|
||||
StartCoroutine(FetchBeijingTime(action));
|
||||
}
|
||||
|
||||
private IEnumerator FetchBeijingTime()
|
||||
private IEnumerator FetchBeijingTime(Action action = null)
|
||||
{
|
||||
string[] timeServers = new string[]
|
||||
{
|
||||
@@ -115,10 +145,20 @@ public class BeijingTimeManager : MonoSingleton<BeijingTimeManager>
|
||||
int ms = json["data"]?["milliSeconds"]?.Value<int>() ?? 0;
|
||||
Debug.Log($"47.109.132.12 提取到的时间字符串:{timeStr} 毫秒:{ms}");
|
||||
|
||||
// 把服务器时间变成毫秒级时间戳打印
|
||||
if (!string.IsNullOrEmpty(timeStr) &&
|
||||
DateTime.TryParseExact(timeStr, "yyyy-MM-dd HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out DateTime t))
|
||||
{
|
||||
serverTime = t.AddMilliseconds(ms);
|
||||
DateTime serverTimeWithMs = t.AddMilliseconds(ms);
|
||||
DateTime epoch = new DateTime(1970, 1, 1, 8, 0, 0);
|
||||
long timestampMs = (long)(serverTimeWithMs - epoch).TotalMilliseconds;
|
||||
Debug.Log($"47.109.132.12 服务器时间毫秒级时间戳:{timestampMs}");
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(timeStr) &&
|
||||
DateTime.TryParseExact(timeStr, "yyyy-MM-dd HH:mm:ss", null, System.Globalization.DateTimeStyles.None, out DateTime t2))
|
||||
{
|
||||
serverTime = t2.AddMilliseconds(ms);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -161,10 +201,26 @@ public class BeijingTimeManager : MonoSingleton<BeijingTimeManager>
|
||||
// 补偿后服务器时间 = 服务器响应时间 + RTT/2
|
||||
TimeSpan rtt = requestEndTime - requestStartTime;
|
||||
DateTime compensatedServerTime = serverTime.Value + TimeSpan.FromTicks(rtt.Ticks / 2);
|
||||
_serverTimeOffset = compensatedServerTime - requestEndTime;
|
||||
TimeSpan measuredOffset = compensatedServerTime - requestEndTime;
|
||||
|
||||
// offset 平滑(低通滤波):抗 RTT 抖动,同时跟随系统时钟漂移
|
||||
// 首次同步直接采用,后续按平滑系数加权
|
||||
if (_isTimeSynced)
|
||||
{
|
||||
double smoothed = _serverTimeOffset.TotalMilliseconds * (1 - _smoothFactor)
|
||||
+ measuredOffset.TotalMilliseconds * _smoothFactor;
|
||||
_serverTimeOffset = TimeSpan.FromMilliseconds(smoothed);
|
||||
}
|
||||
else
|
||||
{
|
||||
_serverTimeOffset = measuredOffset;
|
||||
_isTimeSynced = true;
|
||||
Debug.Log($"北京时间同步成功:{CurrentBeijingTime:yyyy-MM-dd HH:mm:ss.fff},偏移量:{_serverTimeOffset.TotalSeconds:F3}s,RTT:{rtt.TotalSeconds:F3}s");
|
||||
}
|
||||
|
||||
Debug.Log($"北京时间同步成功:{CurrentBeijingTime:yyyy-MM-dd HH:mm:ss.fff},偏移量:{_serverTimeOffset.TotalSeconds:F3}s,本次测量:{measuredOffset.TotalSeconds:F3}s,RTT:{rtt.TotalSeconds:F3}s");
|
||||
OnTimeSynced?.Invoke(CurrentBeijingTime);
|
||||
action?.Invoke();
|
||||
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -908,7 +908,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 22400762, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -0.000011444092
|
||||
value: -0.000019073486
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
@@ -6287,7 +6287,7 @@ MonoBehaviour:
|
||||
spawnList: []
|
||||
isCreateFish: 0
|
||||
isFrozen: 0
|
||||
debugSpawnFishNumber:
|
||||
debugSpawnFishNumber: 11043
|
||||
isResources: 0
|
||||
--- !u!114 &2075409202
|
||||
MonoBehaviour:
|
||||
@@ -6302,6 +6302,8 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_isTimeSynced: 0
|
||||
_syncInterval: 30
|
||||
_smoothFactor: 0.3
|
||||
--- !u!114 &2075409203
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -130,6 +130,15 @@ public class MonsterContral : MonoBehaviour
|
||||
/// <summary>冰冻特效(预制体内子物体,null 则跳过)</summary>
|
||||
public GameObject bingDongEffect;
|
||||
|
||||
[Header("创建视频(可选)")]
|
||||
[Tooltip("鱼创建时播放的入场视频片段,播放结束后才开始移动。为空则无入场视频。播放控件由 GameMainPanel_FishBase 提供")]
|
||||
public UnityEngine.Video.VideoClip createVideoClip;
|
||||
/// <summary>createVideoClip 实际播放时长(秒),用于计算 moveTime 偏移。<=0 表示未播放/无视频</summary>
|
||||
protected float _createVideoDuration = 0f;
|
||||
|
||||
/// <summary>当前是否正在播放创建视频(由外部播放器 isPlaying 判断)</summary>
|
||||
protected bool _isPlayingCreateVideo = false;
|
||||
|
||||
/// <summary>是否存活(活跃且未被回收)</summary>
|
||||
public bool IsAlive => gameObject.activeInHierarchy;
|
||||
|
||||
@@ -170,6 +179,10 @@ public class MonsterContral : MonoBehaviour
|
||||
uirootRect = UIManager.Instance.uiRoot.GetComponent<RectTransform>();
|
||||
mainCamera = Camera.main;
|
||||
moveTime = 0f;
|
||||
// ⭐ 重置创建视频状态:池回收的鱼 _isPlayingCreateVideo 可能残留 true,
|
||||
// 重新生成时重置,由 Init 决定是否重新播放
|
||||
_createVideoDuration = 0f;
|
||||
_isPlayingCreateVideo = false;
|
||||
InitAnimList();
|
||||
ChangeState(CharacterStateType.move);
|
||||
|
||||
@@ -254,6 +267,11 @@ public class MonsterContral : MonoBehaviour
|
||||
if (!isMove)
|
||||
transform.position = Vector3.zero;
|
||||
|
||||
// ⭐ 创建视频启动逻辑由子类负责:
|
||||
// - MonsterControl_BossBase 在自己 Init 里启动 createVideo
|
||||
// - 普通鱼走父类 Init,但普通鱼一般不配 createVideo
|
||||
// OnMoveUpdata 会检测 createVideo.isPlaying,视频播放期间不移动
|
||||
|
||||
// 路径结束后自动销毁
|
||||
//StartCoroutine(yanchi(gameObject, time, isyuzhen));
|
||||
}
|
||||
@@ -319,6 +337,16 @@ public class MonsterContral : MonoBehaviour
|
||||
public virtual void OnMoveUpdata()
|
||||
{
|
||||
if (!isMove) return; // 冰冻中不计时
|
||||
|
||||
// ⭐ 创建视频播放期间不移动、不累计 moveTime
|
||||
// 视频结束后才开始走路线;视频时长不计入 moveTime(单独累计到 _createVideoDuration)
|
||||
// 隐藏控件由 loopPointReached 回调负责(OnCreateVideoFinished)
|
||||
if (_isPlayingCreateVideo)
|
||||
{
|
||||
_createVideoDuration += Time.deltaTime;
|
||||
return;
|
||||
}
|
||||
|
||||
moveTime += Time.deltaTime;
|
||||
|
||||
if (isyz)
|
||||
|
||||
@@ -115,6 +115,24 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
isyz = isyuzhen;
|
||||
this.yzID = yzID;
|
||||
|
||||
// ⭐ 创建视频处理:配置了 createVideoClip 时通过 GameMainPanel 的播放器播放
|
||||
// 播放期间 OnMoveUpdata 会跳过移动,视频结束后才开始走路线
|
||||
_createVideoDuration = 0f;
|
||||
_isPlayingCreateVideo = false;
|
||||
var videoPlayer = CreateFishManager.Instance?.currGameType?.createVideoPlayer;
|
||||
if (createVideoClip != null && videoPlayer != null)
|
||||
{
|
||||
// 显示视频控件
|
||||
videoPlayer.gameObject.SetActive(true);
|
||||
videoPlayer.Stop();
|
||||
videoPlayer.clip = createVideoClip;
|
||||
// ⭐ 注册播放结束回调:视频播完自动隐藏控件 + 重置状态
|
||||
videoPlayer.loopPointReached -= OnCreateVideoFinished;
|
||||
videoPlayer.loopPointReached += OnCreateVideoFinished;
|
||||
videoPlayer.Play();
|
||||
_isPlayingCreateVideo = true;
|
||||
}
|
||||
|
||||
// Boss 进场播报
|
||||
if (GameManager.Instance.gameData.currGameType == GameType.XJMH)
|
||||
{
|
||||
@@ -137,6 +155,21 @@ public class MonsterControl_BossBase : MonsterContral
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建视频播放结束回调:隐藏视频控件 + 重置播放状态
|
||||
/// (用 loopPointReached 事件,比 OnMoveUpdata 检测更可靠,
|
||||
/// 因为 isMove=false 的 Boss 不会进入 OnMoveUpdata 的视频检测分支)
|
||||
/// </summary>
|
||||
private void OnCreateVideoFinished(UnityEngine.Video.VideoPlayer player)
|
||||
{
|
||||
_isPlayingCreateVideo = false;
|
||||
if (player != null)
|
||||
{
|
||||
player.Stop();
|
||||
player.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 爆奖(公共) ====================
|
||||
|
||||
/// <summary>确保分数显示文本存在(自动创建)</summary>
|
||||
|
||||
@@ -629,6 +629,12 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
foreach (var item in data.fish)
|
||||
{
|
||||
if (item == null) continue;
|
||||
//BeijingTimeManager.Instance.SyncBeijingTime(() =>
|
||||
//{
|
||||
// Debug.Log("差值:" + (BeijingTimeManager.Instance.CurrentTimestampMs - item.createdAt) / 1000);
|
||||
// Debug.Log("差值:" + (BeijingTimeManager.Instance.CurrentTimestampMs - item.createdAt));
|
||||
// Debug.Log("差值:" + BeijingTimeManager.Instance.CurrentTimestampMs + "创建\n" + item.createdAt);
|
||||
//});
|
||||
Debug.Log("差值:" + (BeijingTimeManager.Instance.CurrentTimestampMs - item.createdAt) / 1000);
|
||||
Debug.Log("差值:" + (BeijingTimeManager.Instance.CurrentTimestampMs - item.createdAt));
|
||||
Debug.Log("差值:" + BeijingTimeManager.Instance.CurrentTimestampMs + "创建\n" + item.createdAt);
|
||||
@@ -806,7 +812,35 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
|
||||
var mc = fish.GetComponent<MonsterContral>() ?? fish.AddComponent<MonsterContral>();
|
||||
mc.monsterData.fishTypeConfig = FishDatas[createFishData.fishNumber];
|
||||
mc.guid = createFishData.guid;
|
||||
mc.moveTime = (BeijingTimeManager.Instance.CurrentTimestampMs - time) / 1000f;
|
||||
|
||||
// ⭐ moveTime 计算:当前时间 - 创建时间(秒)
|
||||
float elapsedSec = (BeijingTimeManager.Instance.CurrentTimestampMs - time) / 1000f;
|
||||
|
||||
// ⭐ 创建视频时长抵扣:
|
||||
// - 配置了 createVideoClip 且 elapsedSec < 视频时长:视频还没播完
|
||||
// → moveTime=0(视频继续播),OnMoveUpdata 会跳过移动直到视频结束
|
||||
// - 配置了 createVideoClip 且 elapsedSec >= 视频时长:视频已播完
|
||||
// → moveTime = elapsedSec - 视频时长(视频结束后才开始累计路线时间)
|
||||
// - 未配置 createVideoClip:moveTime = elapsedSec(原逻辑)
|
||||
if (mc.createVideoClip != null)
|
||||
{
|
||||
float videoDuration = (float)mc.createVideoClip.length;
|
||||
if (elapsedSec < videoDuration)
|
||||
{
|
||||
// 视频还没播完,继续播放(Init 里会启动 createVideoPlayer)
|
||||
mc.moveTime = 0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 视频已播完,扣除视频时长,moveTime 为视频结束后已走的路线时间
|
||||
mc.moveTime = elapsedSec - videoDuration;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mc.moveTime = elapsedSec;
|
||||
}
|
||||
|
||||
mc.fishenum = (FishTypeEnum)fishType.fishType;
|
||||
// 按鱼类型放入对应字典
|
||||
RegisterFishInstance(mc, fishType.fishType);
|
||||
|
||||
@@ -249,6 +249,7 @@ namespace Assets.MyGame.Scripts.Net
|
||||
Debug.Log("url----" + url+"--"+ "Json-"+json+"res--"+JsonConvert.SerializeObject(res));
|
||||
|
||||
#endif
|
||||
Debug.Log("url----" + url + "--" + "Json-" + json + "res--" + JsonConvert.SerializeObject(res));
|
||||
// 自动保存 token
|
||||
if (typeof(T) == typeof(UserToken))
|
||||
{
|
||||
@@ -311,6 +312,8 @@ namespace Assets.MyGame.Scripts.Net
|
||||
Debug.Log("url----" + url + "--" + "Json-" + json + "res--" + JsonConvert.SerializeObject(res));
|
||||
|
||||
#endif
|
||||
Debug.Log("url----" + url + "--" + "Json-" + json + "res--" + JsonConvert.SerializeObject(res));
|
||||
|
||||
// 自动保存 token
|
||||
if (typeof(T) == typeof(UserToken))
|
||||
{
|
||||
|
||||
@@ -403,6 +403,12 @@ namespace Assets.MyGame.Scripts.Net
|
||||
case "AccountKicked":
|
||||
WebSocketReponseList.AccountKicked(msg);
|
||||
break;
|
||||
case "ChangeConfig":
|
||||
WebSocketReponseList.ChangeConfig(msg);
|
||||
break;
|
||||
case "KickToMainPage":
|
||||
WebSocketReponseList.KickToMainPage(msg);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using Assets.MyGame.Scripts.Net.API;
|
||||
using Assets.MyGame.Scripts.Net.WebResponses;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
@@ -715,6 +716,85 @@ namespace Assets.MyGame.Scripts.Net
|
||||
public string userId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub ChangeConfig — 后台活动配置或游戏配置保存发布后广播
|
||||
/// changeType: 1=活动配置更新 2=游戏配置更新
|
||||
/// 前端按 changeType 重新请求对应配置
|
||||
/// </summary>
|
||||
public static void ChangeConfig(string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
var changeType = JsonConvert.DeserializeObject<WebSocketResponseBase<int>>(msg).arguments[0];
|
||||
switch (changeType)
|
||||
{
|
||||
case 1:
|
||||
// 活动配置更新
|
||||
APIRequestList.GetActivityConfig(res =>
|
||||
{
|
||||
if (res != null) GameManager.Instance.activityConfig = res;
|
||||
});
|
||||
break;
|
||||
case 2:
|
||||
// 游戏配置更新
|
||||
APIManager.Response<GameConfig>(APIType.GameConfig_Get, res =>
|
||||
{
|
||||
if (res != null)
|
||||
{
|
||||
GameManager.Instance.gameConfig = res;
|
||||
var v = GameManager.Instance.dic_fishTypeConfigs;
|
||||
if (v != null)
|
||||
{
|
||||
v.Clear();
|
||||
foreach (var item in res.fishTypeConfigs)
|
||||
v[item.fishNumber] = item;
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogWarning("[ChangeConfig] 解析失败: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub KickToMainPage — 强制退出到主页面
|
||||
/// 当前账号连接已失效(被顶号/用户不匹配),前端应立即清除所有游戏 UI 并导航到主页面/登录页
|
||||
/// </summary>
|
||||
public static void KickToMainPage(string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = JsonConvert.DeserializeObject<WebSocketResponseBase<KickToMainPageData>>(msg).arguments[0];
|
||||
var userId = GameManager.Instance?.user?.id;
|
||||
// 只处理当前登录用户被踢的情况
|
||||
if (data != null && !string.IsNullOrEmpty(data.userId)
|
||||
&& !string.IsNullOrEmpty(userId) && data.userId != userId)
|
||||
return;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogWarning("[KickToMainPage] 解析失败: " + e.Message);
|
||||
}
|
||||
|
||||
UIManager.Instance.ShowTiShi("连接已失效,请重新登录", () =>
|
||||
{
|
||||
GameManager.Instance.Logout();
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// LoginHub KickToMainPage 数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class KickToMainPageData
|
||||
{
|
||||
public string userId;
|
||||
}
|
||||
|
||||
// ---------------- FishGameHub 补充 ----------------
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -554,6 +554,22 @@ PrefabInstance:
|
||||
propertyPath: m_Layer
|
||||
value: 6
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8182214488578581510, guid: 15b70d8841f762f4fb07e654be129063,
|
||||
type: 3}
|
||||
propertyPath: m_SceneBindings.Array.size
|
||||
value: 5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8182214488578581510, guid: 15b70d8841f762f4fb07e654be129063,
|
||||
type: 3}
|
||||
propertyPath: m_SceneBindings.Array.data[4].key
|
||||
value:
|
||||
objectReference: {fileID: -2074673312225965017, guid: d0f559cb303d104469ccbd419ecccd48,
|
||||
type: 2}
|
||||
- target: {fileID: 8182214488578581510, guid: 15b70d8841f762f4fb07e654be129063,
|
||||
type: 3}
|
||||
propertyPath: m_SceneBindings.Array.data[4].value
|
||||
value:
|
||||
objectReference: {fileID: 4859943697593027000}
|
||||
- target: {fileID: 9187076187950948643, guid: 15b70d8841f762f4fb07e654be129063,
|
||||
type: 3}
|
||||
propertyPath: m_Layer
|
||||
@@ -823,6 +839,7 @@ MonoBehaviour:
|
||||
colliderList: []
|
||||
lockPoint: {fileID: 0}
|
||||
bingDongEffect: {fileID: 0}
|
||||
createVideoClip: {fileID: 0}
|
||||
rotationPY: 60
|
||||
baseMmove: 0
|
||||
isRotate: 0
|
||||
@@ -1279,7 +1296,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1603488181505735, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1606385455509795, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
propertyPath: m_Layer
|
||||
@@ -1571,6 +1588,8 @@ PrefabInstance:
|
||||
m_RemovedComponents:
|
||||
- {fileID: 4162429033700303552, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
- {fileID: 936225116743439401, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
- {fileID: 8182214488578581510, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
- {fileID: 7915879069767352754, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
m_RemovedGameObjects:
|
||||
- {fileID: 1413607515472349, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
- {fileID: 1993980853867310, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
@@ -1586,6 +1605,10 @@ PrefabInstance:
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -1880464707272893123}
|
||||
- targetCorrespondingSourceObject: {fileID: 1603488181505735, guid: 15b70d8841f762f4fb07e654be129063,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4859943697593027000}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 15b70d8841f762f4fb07e654be129063, type: 3}
|
||||
--- !u!4 &1012758315240952399 stripped
|
||||
Transform:
|
||||
@@ -1654,6 +1677,7 @@ MonoBehaviour:
|
||||
colliderList: []
|
||||
lockPoint: {fileID: 866509008212961257}
|
||||
bingDongEffect: {fileID: 0}
|
||||
createVideoClip: {fileID: 32900000, guid: 778b32acf031828469a070ce40ce353a, type: 3}
|
||||
rotationPY: 60
|
||||
baseMmove: 0
|
||||
isRotate: 0
|
||||
@@ -1673,3 +1697,33 @@ MonoBehaviour:
|
||||
v3: {x: 0, y: 0, z: 0}
|
||||
isLocalCoin: 0
|
||||
killerSitPos: -1
|
||||
--- !u!114 &4859943697593027000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1016419954560332621}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e52de21a22b6dd44c9cc19f810c65059, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Events:
|
||||
m_Signals:
|
||||
- {fileID: 11400000, guid: aca498d52b11314418047bc8d6c097ae, type: 2}
|
||||
m_Events:
|
||||
- m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: -1880464707272893123}
|
||||
m_TargetAssemblyTypeName: FLZY_GSL_BOSS, Assembly-CSharp
|
||||
m_MethodName: PlayEnd
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
|
||||
@@ -60,6 +60,10 @@ PrefabInstance:
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: -1609388577177501106}
|
||||
- targetCorrespondingSourceObject: {fileID: 1659718182590338, guid: 6d1f14f0c958e7d4ab5d5e9dd5f2270a,
|
||||
type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5258840552772428816}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 6d1f14f0c958e7d4ab5d5e9dd5f2270a, type: 3}
|
||||
--- !u!1 &3009743284111662272 stripped
|
||||
GameObject:
|
||||
@@ -74,7 +78,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3009743284111662272}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 49c3b7de3613fdf4c9fa7dfd034da0b4, type: 3}
|
||||
m_Name:
|
||||
@@ -82,7 +86,7 @@ MonoBehaviour:
|
||||
bjEndUI: {fileID: 4300126860111980404, guid: a2f1c48b767782b4f95661feaa3e415f, type: 3}
|
||||
useScorePanel: 1
|
||||
tMP_Score: {fileID: 0}
|
||||
scorePanelPrefab: {fileID: 6116211215255876179, guid: f6281e652a404ab4ab51e60834e756ce,
|
||||
scorePanelPrefab: {fileID: 8000219247718126128, guid: bdca90f053c317548973f68e45647dae,
|
||||
type: 3}
|
||||
currScore: 0
|
||||
maxScore: 0
|
||||
@@ -119,3 +123,42 @@ MonoBehaviour:
|
||||
count4: 0
|
||||
count5: 0
|
||||
count6: 0
|
||||
--- !u!114 &5258840552772428816
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3009743284111662272}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0755fb2d9204b8c44a2bc00b9e541ead, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
bjEndUI: {fileID: 4300126860111980404, guid: a2f1c48b767782b4f95661feaa3e415f, type: 3}
|
||||
useScorePanel: 1
|
||||
tMP_Score: {fileID: 0}
|
||||
scorePanelPrefab: {fileID: 8000219247718126128, guid: bdca90f053c317548973f68e45647dae,
|
||||
type: 3}
|
||||
currScore: 0
|
||||
maxScore: 0
|
||||
scoreCount: 0
|
||||
posID: 0
|
||||
paoBei: 0
|
||||
fishScore: 0
|
||||
bJbeishu: 0
|
||||
showDelay: 3
|
||||
moveDuration: 0.5
|
||||
moveEase: 6
|
||||
startOffset: {x: 0, y: 0, z: -100}
|
||||
bjEndUIOffsetY: 150
|
||||
coinFlyDuration: 0.5
|
||||
coinArrivalInterval: 0.1
|
||||
isSelf: 0
|
||||
autoFinishOnScoreFull: 1
|
||||
totalBJCount: 0
|
||||
currBJCount: 0
|
||||
isEffEnd: 0
|
||||
isScoreStart: 0
|
||||
isScoreEnd: 0
|
||||
isGoldEffectStart: 0
|
||||
|
||||
@@ -10,4 +10,9 @@ public class FLZY_GSL_BOSS : MonsterControl_BossBase
|
||||
base.DieFish(obj);
|
||||
CreateFishManager.Instance.Id_DieFish_NotFX(guid);
|
||||
}
|
||||
public void PlayEnd()
|
||||
{
|
||||
CreateFishManager.Instance.Id_DieFish_NotFX(guid);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,156 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &226342615428984370
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 879279455075345705}
|
||||
- component: {fileID: 6385510957941808573}
|
||||
- component: {fileID: 8646100736313902324}
|
||||
- component: {fileID: 8763610012003611159}
|
||||
- component: {fileID: 4756421112171416830}
|
||||
- component: {fileID: 3675753497965075354}
|
||||
m_Layer: 5
|
||||
m_Name: player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &879279455075345705
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
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: 8080891624328096898}
|
||||
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!223 &6385510957941808573
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 2
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 1
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 9
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &8646100736313902324
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!222 &8763610012003611159
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &4756421112171416830
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Texture: {fileID: 8400000, guid: 864e5c75f220d7f4f839e2ea88e6f736, type: 2}
|
||||
m_UVRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
--- !u!328 &3675753497965075354
|
||||
VideoPlayer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 226342615428984370}
|
||||
m_Enabled: 1
|
||||
m_VideoClip: {fileID: 0}
|
||||
m_TargetCameraAlpha: 1
|
||||
m_TargetCamera3DLayout: 0
|
||||
m_TargetCamera: {fileID: 0}
|
||||
m_TargetTexture: {fileID: 8400000, guid: 864e5c75f220d7f4f839e2ea88e6f736, type: 2}
|
||||
m_TimeReference: 0
|
||||
m_TargetMaterialRenderer: {fileID: 0}
|
||||
m_TargetMaterialProperty: <noninit>
|
||||
m_RenderMode: 2
|
||||
m_AspectRatio: 2
|
||||
m_DataSource: 0
|
||||
m_TimeUpdateMode: 2
|
||||
m_PlaybackSpeed: 1
|
||||
m_AudioOutputMode: 2
|
||||
m_TargetAudioSources:
|
||||
- {fileID: 0}
|
||||
m_DirectAudioVolumes:
|
||||
- 1
|
||||
m_Url:
|
||||
m_EnabledAudioTracks: 01
|
||||
m_DirectAudioMutes: 00
|
||||
m_ControlledAudioTrackCount: 1
|
||||
m_PlayOnAwake: 1
|
||||
m_SkipOnDrop: 1
|
||||
m_Looping: 0
|
||||
m_WaitForFirstFrame: 1
|
||||
m_FrameReadyEventEnabled: 0
|
||||
m_VideoShaders: []
|
||||
--- !u!1 &237163501822018932
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3566,6 +3717,7 @@ RectTransform:
|
||||
- {fileID: 2091030049155210697}
|
||||
- {fileID: 7739402592615464627}
|
||||
- {fileID: 1424544957975917330}
|
||||
- {fileID: 879279455075345705}
|
||||
- {fileID: 6423145012526947125}
|
||||
- {fileID: 6612338428389666415}
|
||||
- {fileID: 5427923924039758468}
|
||||
@@ -3633,6 +3785,7 @@ MonoBehaviour:
|
||||
bullet_Test: {fileID: 0}
|
||||
bulletParent: {fileID: 911064000014996888}
|
||||
boardCast_Boss: {fileID: 0}
|
||||
createVideoPlayer: {fileID: 3675753497965075354}
|
||||
paoBeiList:
|
||||
JinDuTiao: {fileID: 6293566698206718061}
|
||||
isFrenzy: 0
|
||||
|
||||
@@ -199,6 +199,10 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
|
||||
int bulletCount = 0;
|
||||
public GameObject boardCast_Boss;
|
||||
|
||||
[Header("创建视频播放器")]
|
||||
[Tooltip("鱼创建时播放的入场视频控件,由 Boss 预制体的 createVideoClip 指定视频片段。Inspector 拖拽场景中的 VideoPlayer 控件")]
|
||||
public UnityEngine.Video.VideoPlayer createVideoPlayer;
|
||||
|
||||
AudioClip bulletClip;
|
||||
|
||||
public List<int> paoBeiList = new List<int>();
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!84 &8400000
|
||||
RenderTexture:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: "\u89C6\u9891"
|
||||
m_ImageContentsHash:
|
||||
serializedVersion: 2
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_ForcedFallbackFormat: 4
|
||||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 5
|
||||
m_Width: 1624
|
||||
m_Height: 750
|
||||
m_AntiAliasing: 1
|
||||
m_MipCount: -1
|
||||
m_DepthStencilFormat: 94
|
||||
m_ColorFormat: 8
|
||||
m_MipMap: 0
|
||||
m_GenerateMips: 1
|
||||
m_SRGB: 0
|
||||
m_UseDynamicScale: 0
|
||||
m_BindMS: 0
|
||||
m_EnableCompatibleFormat: 1
|
||||
m_EnableRandomWrite: 0
|
||||
m_TextureSettings:
|
||||
serializedVersion: 2
|
||||
m_FilterMode: 1
|
||||
m_Aniso: 0
|
||||
m_MipBias: 0
|
||||
m_WrapU: 1
|
||||
m_WrapV: 1
|
||||
m_WrapW: 1
|
||||
m_Dimension: 2
|
||||
m_VolumeDepth: 1
|
||||
m_ShadowSamplingMode: 2
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 864e5c75f220d7f4f839e2ea88e6f736
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 8400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user