Unity的FishNet相关知识

FishNet和常规网络手游不太一样,他是可以将客户端和服务器写成一套代码的,也就是客户端也可以作为服务器

C#特性:

ServerRpc 方法添加了这个特性后,这个方法只会在服务端执行,由客户端调用,但是客户端不会执行这个方法

ObserversRpc 添加了这个特性的方法,只会在客户端运行,并且由服务端调用,服务端调用后,所有客户端都会被执行

TargetRpc 添加了这个特性后,只会在客户端运行,由服务器调用,并且需要指定一个NetworkConnection,只会给这个connection调用

我们平时开发有2种办法实现FishNet:

1.所有代码集成在一个项目中,服务器和客户端逻辑写在一起

2.服务器和客户端分成2个项目,分别处理逻辑

分成2个项目的时候需要注意踩坑点:

1.NetworkBehavior对象必须客户端和服务器同时有,并且类名完全一样。比如一个Player上有PlayerHealth脚本,那么客户端和服务器都得挂上这个脚本,并且名字不能改,否则会报错提示协议错误

其他的踩坑点:

1.Player上有Camera,那么客户端只有isOwner为true的情况才开启这个Camera,并且其他玩家Camera必须默认隐藏,不然会导致客户端的视角错乱,因为会有很多相机存在场景里unity不知道是哪个!

2.NetworkTransform如果勾选了Client Authoritative,那么只会由客户端控制Transform,服务器自己拖动坐标是没有用的,如果没有勾选,那么就是由服务器控制Transform

相关推荐
天远Date Lab3 小时前
零信任架构实战:基于天远租凭分期报告构建自动化汽车以租代购免押风控网关
网络·人工智能·架构·自动化
IT猿手5 小时前
实现NAPT、Easy-IP、NATserver、NATstatic
网络
迪康Defender6 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
tealcwu7 小时前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
xiaoye-duck8 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
其实防守也摸鱼8 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
万联WANFLOW8 小时前
异地厂区视频监控远程运维:从组网到安全的实施要点
运维·网络·安全·企业组网·sdwan
衍玊9 小时前
深入剖析 TCP/IP 网络通信原理与内核实现
服务器·网络·tcp/ip
.Bryce.9 小时前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
Black蜡笔小新11 小时前
上云网关/端口穿透/设备上云EasyNTS:无需公网IP、也不改防火墙,设备怎么从内网跑到外网去
网络·网络协议·tcp/ip