TNet Tasharen Networking 学习总结
来源:互联网 发布:linux ftp日志在哪里 编辑:程序博客网 时间:2024/06/05 19:54
TNet TasharenNetworking插件可用于轻量级多人网络游戏的网络功能的开发。
功能说明:
每启动一次程序,自动创建一个角色,通过鼠标点击可控制角色的移动,多个客户端可同时控制各自的角色移动,并能看到其他角色的移动。
实现过程:
1、创建项目TNetDemo,导入TNetTasharen Networking 2.0.3.unitypackage。
2、解压TNetDemo\Assets\TNet\TNetServer.zip中的TNServer.exe,并运行。
3、创建场景start,创建一个空物体GameManager,添加脚本TNManager、TNAutoJoin。
4、创建场景game,添加cube做Ground,添加capsule做Player,作为游戏场景。
5、创建场景disconnet,添加text,作为无法连接网络时的显示场景。
6、将start、game、disconnet添加到File - Build Settings - Scenes In Build中。
7、打开start场景,在GameManager的TNAutoJoin脚本中设置First Level和DisconnetLevel属性分别为game和disconnet。
当有网络连接时,运行start,将进入game场景;若无网络连接,将进入Disconnect场景。
8、打开game场景,实现游戏功能。
(1) 在MainCamera上添加TouchHandler脚本,用于获取鼠标点击在屏幕上的世界坐标,以控制Player的移动。
(2) 在Player上添加TNObject脚本。
(3) 为Player创建PlayerMove脚本,控制Player的移动。
using UnityEngine;using System.Collections;using TNet;public class PlayerMove : TNBehaviour { public static PlayerMove Instance; /// <summary> /// 目标位置 /// </summary> private Vector3 _target; public Vector3 Target { set { tno.Send("OnSetTarget", TNet.Target.AllSaved, value); } } /// <summary> /// 移动速度 /// </summary> public float Speed = 5f; void Awake() { //只能操作自己实例化的Player if (TNManager.isThisMyObject) { PlayerMove.Instance = this; } } void Update() { this.transform.position = Vector3.Lerp(this.transform.position, this._target, Time.deltaTime * Speed); } [RFC] void OnSetTarget(Vector3 v) { this._target = v; } /// <summary> /// 有新角色加入时,初始化已有角色的位置 /// </summary> /// <param name="p"></param> void OnNetworkPlayerJoin(Player p) { tno.Send("OnSetTargetImmediate", TNet.Target.AllSaved, transform.position); } [RFC] void OnSetTargetImmediate(Vector3 v) { this.transform.position = v; }}
这里需要注意的是,Player的父类是TNBehaviour。
(4) 为Ground创建Ground脚本,实现通过鼠标点击控制Player移动的功能。
using UnityEngine;using System.Collections;public class Ground : MonoBehaviour { void OnClick() { PlayerMove.Instance.Target = TouchHandler.worldPos; }}
(5) 将Player做成Prefab,删除game中的Player。
(6) 创建一个空对象,添加TNAutoCreate脚本,设置Prefab为Player。
9、打开start场景,将Player的Prefab添加到GameManager的TNManager脚本中的Objects中。
到这就OK了,可以发布一个exe运行起来,同时在unity中运行游戏,就可以看到效果了。
TNet Tasharen Networking插件下载地址:http://yunpan.cn/cKHf43HQKYbRb(提取码 ed53)
TNetDemo源码地址:http://git.oschina.net/darcy_d/unity_TNetDemo
TNet TasharenNetworking视频教程:http://www.taikr.com/course/161
- TNet Tasharen Networking 学习总结
- TNet Tasharen Networking
- TNet Tasharen Networking 插件使用
- Tnet学习一 RFCs
- unity official Networking tutorial总结
- 【Networking】libevent的学习笔记
- Networking
- Networking
- Networking
- Networking
- Networking
- Networking
- Networking
- Computer Networking A Top-Down Approach 总结
- 算法学习【8】——1083. Networking
- 《ZigBee Wireless Networking》学习笔记【1】
- 《ZigBee Wireless Networking》学习笔记【2】
- 【NDN基础】Named Data Networking 学习笔记
- 开发工具笔记
- libsvm和liblinear的使用
- 女性癫痫病治疗 01v0ntgj
- Android—使用Intent传递数据
- 在IIS中寄宿服务
- TNet Tasharen Networking 学习总结
- BZOJ 2965 保护古迹 平面图转对偶图+最小割
- http://www.239232.com/ 01wbjwxo
- 红米2 联通电信版HM2014811专用中文TWRP2.8.4.1 recovery
- Windows7 IIS的安装与配置<图解>
- zoj 1178 Booklet Printing
- RabbitMQ官方中文入门教程(PHP版) 第一部分:Hello World
- IIS架构与HTTP请求处理流程(2)
- 实例讲解黑客如何执行SQL注入攻击