Unity3d 局域网小游戏DEMO学习
来源:互联网 发布:数据库添加语句 编辑:程序博客网 时间:2024/04/27 09:42
今天看了SIKI老师的局域网多人联机小游戏,记录下:
首先新建GameObject,添加NetworkManager组件和NetworkManagerHUD组件。
1.NetworkManager:Spawn Info->PlayerPrefab可放置prefab,在客户端运行时自动生成玩家。可以添加在Server生成的prefab,如敌人,子弹等。
NetworkManagerHUD:为相关GUI界面,新建客户端,链接客户端等。
2.新建Player预置物体:添加控制移动,和发射子弹的脚本
[Command]//客户端调用,服务器端生成。private void CmdFire()//方法要以Cmd开头{GameObject bullet = Instantite(bullt,bulttransform.position,bulttiansform.rotation) as GameObject;//在枪杆的位置生成子弹。bullet.GetCompoonent<Rigibody>().velocity = bullet.transform.forward*10;//让子弹的速度10m/sDestroy(bullet,2.0f);//2秒后销毁NetWorkServer.Spawn(bullet);//在所有客户端生成该物体}override void OnStartLocalPlayer()//用override重写方法{GetComponent<Render>().material.color=Color.red;}
Player预置物体需要添加,NetworkTransform组件,同步位移。子弹需要同步刚体。
3.给Player添加血量和血条
添加UI->slider,做血条,去掉handle,将值Slider.value改为1,background改为红色,fill改为绿色,用作满血状态。
using UnityEngine.Networking;public class Health:NetworkBeHaviour{public const maxhealth=100;[SyncVar (hook="onChangehealth")]//添加特性,同步变量,利用hook属性,当currenthealth值发生变化时,执行onChangehealthpublic int currunthealth = maxhealth; public Slider healthslider; public bool destrotondeth=false; // Use this for initialization public void takedamage(int damage) { if (isServer == false) return; if (currunthealth <= 0) { if (destrotondeth)//敌人为真,如果为真,则销毁物体,返回 { Destroy(gameObject); return; } currunthealth = 100; Debug.Log("Death"); Rpcrebirth(); } currunthealth -= damage; } void onChangehealth(int health) { healthslider.value = (float)health / maxhealth;//控制血条 } [ClientRpc]//在所有客户端调用,方法名字用Rpc做前缀 void Rpcrebirth() { if (isLocalPlayer == false) return;//如果不是本地的角色,ruturn transform.position = Vector3.zero; }}}
阅读全文
0 0
- Unity3d 局域网小游戏DEMO学习
- Unity3D学习之射箭小游戏
- Unity3D 贪食蛇小游戏Demo[3D版](二)
- cocos2dx 持续学习(二) 小游戏Demo
- 一个局域网联机小游戏
- Unity3D学习:射击小游戏——飞碟世界
- Unity3D 贪食蛇小游戏Demo[3D版]-准备工作(一)
- Unity3d 官方角色换装Demo源代码学习
- unity3D 接鸡蛋小游戏
- Unity3D小游戏 -BallGame
- html5 小游戏 demo
- [cocos2d demo]认字小游戏
- click小游戏demo
- Python2048小游戏demo
- random随机数demo小游戏
- Unity3D学习日记(十) iOS获取局域网的IP
- 【Unity3D】局域网通信
- Unity3d局域网PVP系统
- Node.js中间件和spring boot配合使用
- Firebase-config 在android中的使用
- java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$
- java集合框架的讲解
- oracle编程基础语法
- Unity3d 局域网小游戏DEMO学习
- 虚幻4流体模拟
- 21 HXBlog_V2.0
- sublime text 用ctags插件实现方法定位
- 内存管理——Xcode升级到8.0之后内存管理需要注意的事项
- JavaScript core笔记
- C语言 堆栈
- 链表反转
- Java学习笔记 03