This commit is contained in:
2026-07-27 23:30:25 +08:00
parent 738b2b2d36
commit 44a1029070
17 changed files with 611 additions and 21 deletions
@@ -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
+66 -10
View File
@@ -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;
}
}
+4 -2
View File
@@ -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);
+3
View File
@@ -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: