1.创建文件夹:

2.创建一个空物体,添加如下组件:

  Network Manager(网络管理组件):

  Network Manager HUD(提供一个UI):

3.创建如下模型,并设置为预制体:

  给预制体添加组件:NetWork Identity

4.把预制体提供给网络组件:

  将预制体拖拽至:Network Manager - Spawn Info - Player Prefab

5.让玩家移动:

  以下脚本编辑好后拖拽至预制体上

using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class PlayerController : MonoBehaviour
{
// 水平旋转
private float x;
// 垂直移动
private float z; void Start ()
{ } void Update ()
{
x = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
z = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f; // 旋转
transform.Rotate (, x, );
transform.Translate (, , z);
}
}

6.运行发现问题:客户端与服务器同时移动,移动不同步

7.修改脚本 PlayerController

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking; public class PlayerController : NetworkBehaviour
{
// 水平旋转
private float x;
// 垂直移动
private float z; void Start ()
{ } void Update ()
{
// 如果不是本地玩家,就跳出该方法
// 加入游戏后 network manager 会标记本地玩家
if (!isLocalPlayer) {
return;
}
x = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
z = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f; // 旋转
transform.Rotate (, x, );
transform.Translate (, , z);
}
}

添加组件:

  Network Transform:

9.使本地角色看起来更特殊:

修改脚本 PlayerController

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking; public class PlayerController : NetworkBehaviour
{
// 水平旋转
private float x;
// 垂直移动
private float z; void Start ()
{ } void Update ()
{
// 如果不是本地玩家,就跳出该方法
// 加入游戏后 network manager 会标记本地玩家
if (!isLocalPlayer) {
return;
}
x = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
z = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f; // 旋转
transform.Rotate (, x, );
transform.Translate (, , z);
} public override void OnStartLocalPlayer ()
{
// 调用父类中该虚方法
base.OnStartLocalPlayer ();
GetComponent<MeshRenderer> ().material.color = Color.blue;
}
}

10.制作子弹:

  制作子弹预制体

  修改Player预制体:添加 炮管、子弹发射位置、给脚本中的公共变量赋值。

  更新脚本 PlayerController

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking; public class PlayerController : NetworkBehaviour
{
// 水平旋转
private float x;
// 垂直移动
private float z; // 子弹
public GameObject bulletPrefab;
// 子弹生成位置
public Transform bullerSpawn; void Start ()
{ } void Update ()
{
// 如果不是本地玩家,就跳出该方法
// 加入游戏后 network manager 会标记本地玩家
if (!isLocalPlayer) {
return;
}
x = Input.GetAxis ("Horizontal") * Time.deltaTime * 150.0f;
z = Input.GetAxis ("Vertical") * Time.deltaTime * 3.0f; // 旋转
transform.Rotate (, x, );
transform.Translate (, , z); // 发射子弹
if (Input.GetKeyDown (KeyCode.Space)) {
Fire ();
}
} public override void OnStartLocalPlayer ()
{
// 调用父类中该虚方法
base.OnStartLocalPlayer ();
GetComponent<MeshRenderer> ().material.color = Color.blue;
} private void Fire ()
{
print ("发射子弹");
// 生成子弹
GameObject bullet = Instantiate<GameObject> (bulletPrefab, bullerSpawn.position, bullerSpawn.rotation);
// 子弹飞行
bullet.gameObject.GetComponent<Rigidbody> ().velocity = bullet.transform.forward * 6.0f; Destroy (bullet, 5.0f);
}
}

11.给子弹 Bullet 预制体添加组件:Network Manager

让服务产生子弹的方法:

  ①.将子弹预制体拖拽到Network Manager - Registered Spawnable Prefabs

  ②.在脚本中生成子弹的方法前面加上 特性[Command]

12.制作血条

13.解决血条同步问题

14.玩家死亡后回到出生点

  此部分不用判断是否是本地玩家

15.创建敌人,产生敌人,

16.敌血量消失后敌人这个游戏物体消失

17.设置两个出生点,并在玩家死亡后随机选一个出生点复活。

请参考视频:

链接:https://pan.baidu.com/s/11fwz59saubkPdKpiUWUgew 密码:3pfc

UNet简单案例讲解的更多相关文章

  1. SpringBoot基础学习(一) SpringBoot概念、简单案例实现、单元测试及热部署讲解

    SpringBoot概念 Spring优缺点分析 Spring优点 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品,无需开发重量级的 ...

  2. 【推荐】使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享   在开始讲解之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的U ...

  3. php中foreach()函数与Array数组经典案例讲解

    //php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...

  4. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)

    卷 backup 的文件夹 PATH 列表卷序列号为 00000025 D4A8:14B0J:.│  1.txt│  c语言经典案例效果图示.doc│  ├─1传智播客_尹成_C语言从菜鸟到高手_第一 ...

  5. 使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享

    使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享 使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享    在开始讲解之前,我们先来看一下什 ...

  6. Shiro 核心功能案例讲解 基于SpringBoot 有源码

    Shiro 核心功能案例讲解 基于SpringBoot 有源码 从实战中学习Shiro的用法.本章使用SpringBoot快速搭建项目.整合SiteMesh框架布局页面.整合Shiro框架实现用身份认 ...

  7. 自动化运维工具-pssh工具安装配置及简单使用讲解

    1.先决条件:安装pssh工具要求python版本大于2.4即可. 安装pssh工具的主机针对远程主机需要配置免秘钥认证: ssh-keygen -t rsa ssh-copy-id [remoteh ...

  8. 有关memcached企业面试案例讲解

    有关memcached企业面试案例讲解 1.Memcached是什么,有什么作用?    a. memcached是一个开源的.高性能的内存的缓存软件,从名称上看Mem就是内存的意思,而Cache就是 ...

  9. (转)使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享

    原文地址:http://www.cnblogs.com/huyong/archive/2013/09/24/3334848.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工 ...

随机推荐

  1. HTML和CSS一般有哪些功能?(聊~平时常出现的那些知识)

    简单一点点 HTML行内标签有哪些? 一般行内的标签包含哪些? 如:a - 锚点, span - 常用内联或定义块级容器, i - 斜体, b - 粗体, strong - 粗体强调, var - 定 ...

  2. lsscsi 与 cat /proc/scsi/scsi

    [root@localhost ~]# lsscsi[0:0:0:0]    disk    SEAGATE  ST300MM0048      N001  /dev/sda [0:0:2:0]    ...

  3. Symfony相关网站参考

    http://www.doctrine-project.org/projects.html 数据库相关知识 http://firehare.blog.51cto.com/809276/703599整合 ...

  4. Rhadoop安装

    1.ubuntu,hadoop,R,jdk安装好 2.下载Rhadoop项目的的三个包,rmr,hdfs,rHBase存放到Downloads/R. 3.切换到root 4.安装依赖的库 ~R CMD ...

  5. Bootstrap 附加导航(Affix)插件

    bootstrap 附加导航(Affix)插件允许某个div元素固定到页面中的某个位置.您可以打开或关闭使用该插件之间进行切换 后续再写

  6. 51nod——1640 天气晴朗的魔法 有边权限制的最大生成树

    好好读题嗷:“所以我们要求阵中的魔法链的魔力值最大值尽可能的小,与此同时,魔力值之和要尽可能的大.” 第一条件是生成树的最大边权更小,第二条件是在最大边权的限制下搞一个最大生成树. 至于最大生成树,如 ...

  7. (79)zabbix key总是not supported的解决方法

    zabbix定义好key之后,总是会出现Not supported,看到这个问题,大家不用着急,问题其实很容易解决,首先鼠标点击当前key的大红叉上,会显示出报错内容. 常见的有: 1. zabbix ...

  8. 浅谈JavaScript字符串拼接

    本文给大家汇总介绍了几种javascript中字符串拼接的方法,十分的简单实用,有需要的小伙伴可以参考下. 在JavaScript中会经常遇到字符串拼接,但是如果要拼接的字符串过长就比较麻烦了. 如果 ...

  9. 【PHP】$_SERVER整理

    PHP变成中经常需要用到服务器的一些资料,我在这里整理一下,方便查找.第一部分为比较常用的$_SERVER $_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言 $_SERV ...

  10. JZOJ 3462. 【NOIP2013模拟联考5】休息(rest)

    3462. [NOIP2013模拟联考5]休息(rest) (Standard IO) Time Limits: 1000 ms  Memory Limits: 262144 KB  Detailed ...