This commit is contained in:
2026-06-17 21:26:06 +08:00
parent d663942ce4
commit abbc326ee5
33 changed files with 42784 additions and 41922 deletions
@@ -1467,7 +1467,7 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
var coinScript = award.GetComponent<BJBase>();
coinScript.Init(coinNum.Amount, v3Point);
coinScript.endPoint = v3Point;
//coinScript.endPoint = v3Point;
coinScript.isBoss = true;
coinScript.SetCoinCount();
}
@@ -1648,14 +1648,14 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
{
// 普通鱼:金币飞向炮台
var award = Instantiate(
monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAward,
currGameType.subPanelParent.parent);
monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAward);
try
{
award.GetComponent<RectTransform>().anchoredPosition =
CoordinateTransformation.WorldPos_ToCanvas(
monster.transform.position,
UIManager.Instance.uiRoot.GetComponent<Canvas>());
award.transform.SetParent(currGameType.subPanelParent.parent);
}
catch
{
@@ -1665,30 +1665,31 @@ public class CreateFishManager : MonoSingleton<CreateFishManager>
var coinScript = award.GetComponent<BJBase>();
coinScript.startPoint = award.transform.position;
coinScript.Init(killFish.gold, sitData.transform.position, killFish.userId, sitData.posID, killFish.param);
coinScript.startPoint = award.transform.position;
coinScript.isBoss = false;
coinScript.JiaFen = onScoreAdd;
coinScript.SetCoinCount();
// Boss 鱼:显示浮动分数文本
var bossCtrl = (MonsterControl_BossBase)monster;
// // Boss 鱼:显示浮动分数文本
// var bossCtrl = (MonsterControl_BossBase)monster;
bossCtrl.v3 = sitData.transform.position;
if (bossCtrl.isToUI)
{
bossCtrl.currEffect_DieAward = Instantiate(
monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAwardTmp,
currGameType.subPanelParent.parent);
}
else
{
bossCtrl.currEffect_DieAward = Instantiate(
monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAwardTmp);
}
bossCtrl.action_effect_DieAward?.Invoke(bossCtrl.currEffect_DieAward);
bossCtrl.JiaFen = onScoreAdd;
// bossCtrl.v3 = sitData.transform.position;
// if (bossCtrl.isToUI)
// {
// bossCtrl.currEffect_DieAward = Instantiate(
//monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAwardTmp,
//currGameType.subPanelParent.parent);
// }
// else
// {
// bossCtrl.currEffect_DieAward = Instantiate(
//monster.effect_DieAward != null ? monster.effect_DieAward : dieFXPrefabAwardTmp);
// }
// bossCtrl.action_effect_DieAward?.Invoke(bossCtrl.currEffect_DieAward);
// bossCtrl.JiaFen = onScoreAdd;
}
break;
case FishTypeEnum.特殊Boss:
+2 -2
View File
@@ -22,8 +22,8 @@ namespace Assets.MyGame.Scripts.Net
//public const string baseURL = "http://8.137.8.46";
#else
public const string baseURL = "http://8.137.8.46";
//public const string baseURL = "http://8.137.163.153";
//public const string baseURL = "http://8.137.8.46";
public const string baseURL = "http://8.137.163.153";
#endif
@@ -29,8 +29,8 @@ namespace Assets.MyGame.Scripts.Net
//private const string baseUrl = "ws://8.137.8.46";
#else
private const string baseUrl = "ws://8.137.8.46";
//private const string baseUrl = "ws://8.137.163.153";
//private const string baseUrl = "ws://8.137.8.46";
private const string baseUrl = "ws://8.137.163.153";
#endif
public bool isGame=false;
@@ -3,6 +3,7 @@ using Assets.MyGame.Scripts.Net.WebResponses;
using Assets.MyGame.Scripts.Net.WebResponses.ChineseChess;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
using Unity.VisualScripting;
using UnityEngine;
@@ -215,20 +216,105 @@ public partial class WebSocketSendList
}
/// <summary>
/// 数据同步
/// 同步等级常量(秒)
/// </summary>
public const float SYNC_LV1 = 0.2f;
public const float SYNC_LV2 = 0.5f;
public const float SYNC_LV3 = 1f;
// 队列
private static float _syncLv1Timer;
private static float _syncLv2Timer;
private static float _syncLv3Timer;
private static Dictionary<int, SyncGameData> _syncLv1Cover = new Dictionary<int, SyncGameData>();
private static List<SyncGameData> _syncLv1Append = new List<SyncGameData>();
private static List<SyncGameData> _syncLv2Append = new List<SyncGameData>();
private static List<SyncGameData> _syncLv3Append = new List<SyncGameData>();
/// <summary>数据同步(自动按类型分级入队)</summary>
public static void SyncGameData(object obj)
{
WebSocketSendList sendObj = new WebSocketSendList
var sgd = obj as SyncGameData;
if (sgd == null)
{
SendImmediate(JsonConvert.SerializeObject(obj));
return;
}
switch (sgd.frameType)
{
case FrameDataType.fireBullet:
SendImmediate(BuildJson(sgd));
return;
case FrameDataType.rotateTurrect:
case FrameDataType.changeAutoTarget:
_syncLv1Cover[sgd.sitPos] = sgd;
return;
case FrameDataType.randomDieFish:
_syncLv1Append.Add(sgd);
return;
case FrameDataType.createFish:
case FrameDataType.changeTurretState:
case FrameDataType.changeTurret:
case FrameDataType.freezeFish:
_syncLv2Append.Add(sgd);
return;
default:
_syncLv3Append.Add(sgd);
return;
}
}
/// <summary>每帧调用,由 GameMainPanel.Update 驱动</summary>
public static void FlushSyncQueues(float dt)
{
_syncLv1Timer += dt;
if (_syncLv1Timer >= SYNC_LV1) { _syncLv1Timer = 0f; FlushLv1(); }
_syncLv2Timer += dt;
if (_syncLv2Timer >= SYNC_LV2) { _syncLv2Timer = 0f; FlushLv2(); }
_syncLv3Timer += dt;
if (_syncLv3Timer >= SYNC_LV3) { _syncLv3Timer = 0f; FlushLv3(); }
}
private static void FlushLv1()
{
foreach (var kv in _syncLv1Cover) SendImmediate(BuildJson(kv.Value));
foreach (var sgd in _syncLv1Append) SendImmediate(BuildJson(sgd));
_syncLv1Cover.Clear();
_syncLv1Append.Clear();
}
private static void FlushLv2()
{
foreach (var sgd in _syncLv2Append) SendImmediate(BuildJson(sgd));
_syncLv2Append.Clear();
}
private static void FlushLv3()
{
foreach (var sgd in _syncLv3Append) SendImmediate(BuildJson(sgd));
_syncLv3Append.Clear();
}
private static void SendImmediate(string json)
{
WebSocketManager.Instance.Send(SocketType.game, json);
}
private static string BuildJson(object obj)
{
var sendObj = new WebSocketSendList
{
type = 1,
invocationId = "1",
target = "SyncGameData",
arguments = new System.Collections.Generic.List<object>()
arguments = new System.Collections.Generic.List<object>
{
GameManager.Instance.gameData.currRoomData.roomId,
obj
}
};
sendObj.arguments.Add(GameManager.Instance.gameData.currRoomData.roomId);
sendObj.arguments.Add(obj);
WebSocketManager.Instance.Send(SocketType.game, JsonConvert.SerializeObject(sendObj));
return JsonConvert.SerializeObject(sendObj);
}
}