最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

6.Unity-Mirror幀同步攻擊思路

2022-09-03 08:54 作者:機(jī)智的小草yns  | 我要投稿

最近用mirror寫了聯(lián)網(wǎng)demo,分享下個人的做法思路

不知道什么是Mirror的,見前期介紹


一次攻擊事件的流程:

  1. 當(dāng)本地玩家A攻擊玩家B。本地玩家A先向服務(wù)器發(fā)送攻擊事件(A,B)

  2. 服務(wù)器接收后,計(jì)算數(shù)值最終傷害結(jié)果,扣除玩家B的體力,并轉(zhuǎn)發(fā)給所有客戶端。

  3. 服務(wù)器向所有的玩家A轉(zhuǎn)發(fā)本地攻擊事件(A,B)

  4. 所有的玩家A通知所有玩家B受到攻擊,玩家B播放受擊動畫。


攻擊事件流程


在A玩家的攻擊中,只有本地玩家A才有發(fā)出攻擊的權(quán)限。

而遠(yuǎn)端玩家A只是接收服務(wù)器命令播放動畫而已,遠(yuǎn)端玩家在世界中發(fā)出是技能都不會觸發(fā)任何事件。


攻擊事件示例代碼:(部分參數(shù)省略)

//傷害觸發(fā)
public override void OnAckTrigger(Collider other, AckInfoObject triggerInfo)
{
 ?//受擊對象
 ?var damager = other.GetComponent<MonoAttacker>();
 ?if (damager != null)
 ?{
 ? ?//利用 本地玩家轉(zhuǎn)發(fā)信息
 ? ?PlayerManager.Instance.LocalPlayer.CmdOnDam(damager.netId, triggerInfo.ackInfo);
 ?}
}

[Command]
public void CmdOnDam(uint DamagerNetId, AckInfo ackInfo)
{
 ?//數(shù)據(jù)層在服務(wù)器中執(zhí)行
 ?//獲取受擊者
 ?var OnDamager = PlayerManager.Instance.GetPlayer(DamagerNetId);

 ?//隨機(jī)波動
 ?RandomAck = Random.Range(0.95f, 1.05f);
 ?//傷害數(shù)值
 ?float DamageValue = OnDamager.Ack * setting.AckRate * RandomAck; 
 ?//結(jié)算最終血量
 ?int targetHp = Math.Max(Mathf.RoundToInt(OnDamager.playerData.hp - DamageValue), 0);
 ?//用于傷害數(shù)字顯示
 ?ackInfo.ackValue = DamageValue;

 ?//修改playerData
 ?var newData = OnDamager.playerData;
 ?newData.hp = targetHp;
 ?OnDamager.playerData = newData;

 ?//執(zhí)行表現(xiàn)層
 ?RcpOnDam(DamagerNetId, ackInfo);
}


[ClientRpc]
public void RcpOnDam(uint DamagerNetId, AckInfo ackInfo)
{
 ?//通過netId獲取受擊方 執(zhí)行受擊表現(xiàn)
 ?IAttacker onDamgerer = PlayerManager.Instance.GetPlayer(DamagerNetId);
 ?onDamgerer.OnDam(ackInfo);
}


public override void OnDam(AckInfo ackInfo)
{
 ?//受擊中動畫
 ?playerMover.PlayAnim(AnimHash.damageAnim01);

 ?//擊飛敵人...

 ?//擊中特效...
	
 ?//傷害數(shù)字...
}


6.Unity-Mirror幀同步攻擊思路的評論 (共 條)

分享到微博請遵守國家法律
铁力市| 大石桥市| 宁河县| 满城县| 河东区| 青岛市| 永昌县| 宝兴县| 茶陵县| 阿城市| 泸水县| 洪洞县| 南江县| 山阳县| 自贡市| 嘉定区| 刚察县| 普宁市| 会宁县| 专栏| 商都县| 通许县| 岳普湖县| 连城县| 来凤县| 和政县| 封丘县| 彭泽县| 余江县| 上犹县| 涪陵区| 永兴县| 吉木乃县| 图木舒克市| 墨江| 鄯善县| 河曲县| 姜堰市| 永顺县| 枝江市| 科技|