![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNET学习日志
LudoArtificis
还在努力学习的游戏制作者
展开
-
【UNET自学日志】Part12 僵尸
随意的新建一个物体来当僵尸,记得和平时游戏添加的敌人一样,加上NavMeshAgent组件来追踪玩家在zombie上添加NetworkIdentity和NetworkTransform,新建脚本Zombie_Target添加到Zombie上,将Zombie作为一个新的Prefabusing UnityEngine;using System.Collections;using Unity原创 2016-04-26 09:03:46 · 789 阅读 · 1 评论 -
【UNET自学日志】Part20 UI
说在前面,通过这部分我似乎看到了可以实现互联网的希望啦!废话不多说,我们开始进入正题首先在Menu场景下新建一些UI元素,两个button(ButtonStartHost和ButtonJoinGame),一个inputfield(InputFieldIPAddress),将InputFieldIPAddress下的子物体Text中的文本改为localhost;在Main场景下新建一个but原创 2016-05-07 19:23:14 · 2924 阅读 · 16 评论 -
【UNET自学日志】Part10 摧毁玩家
上一个部分做了玩家的射击造成的伤害,但是玩家生命值为负的时候玩家还在游戏场景上,这个部分我们将要把生命值为0以下的玩家摧毁掉主要的思路就是当玩家的生命值小于或等于0的时候,将玩家的控制和渲染都设置为不可用即可将Player_Health脚本做下修改using UnityEngine;using System.Collections;using UnityEngine.Network原创 2016-04-22 11:43:54 · 1081 阅读 · 3 评论 -
【UNET自学日志】Part19 第一次尝试匹配系统
写在开头,需要说清楚的是,这个匹配系统是指一个玩家,可以创建一个自己随意命名的房间,然后其他玩家可以通过联网去搜索房间,然后加入房间一起游戏我先讲讲怎么使用这个匹配系统:在运行游戏后,因为添加了Network Manager HUD组件,所以有系统自带的UI界面,如何进行匹配呢?点击最下方的Enable Match Maker按钮,有一个可以输入的文本框,前面的laber写着"原创 2016-05-05 16:32:07 · 2339 阅读 · 0 评论 -
【UNET自学日志】Part9 造成伤害
上一部分我们做的是射击的部分,说到射击,肯定和伤害有关,当Player1击中Player2的时候,将会造成Player2生命值的减少本部分也较为容易,我们需要一个新的脚本Player_Health,另外,我们需要对上一次做的Player_Shoot脚本留下的东西做完using UnityEngine;using System.Collections;using UnityEngine.原创 2016-04-21 12:35:20 · 816 阅读 · 0 评论 -
【UNET自学日志】Part8 射击
也是蛮简单的一部分,直接上代码using UnityEngine;using System.Collections;using UnityEngine.Networking;public class Player_Shoot : NetworkBehaviour { private float damage = 25; private float range = 20原创 2016-04-20 10:08:02 · 931 阅读 · 3 评论 -
【UNET自学日志】Part7 独一无二的ID
在开始联机的时候,每一个Player 的名字都是Player(Clone),在这部分中我们需要把Player 的名字改成独一无二的标识符新建一个脚本Player_IDusing UnityEngine;using System.Collections;using UnityEngine.Networking;public class Player_ID : NetworkBeh原创 2016-04-20 09:44:10 · 1512 阅读 · 2 评论 -
【UNET自学日志】Part18 修复一些错误
首先,我们需要的是新建一个空物体“SpawnManager”,将GameManager中的SpawnManaer_ZombieSpawner拖到SpawnManager中,并移除GameManager中的NetworkIdentity,SpawnManager中添加NetworkIdentity,并勾选Server Only选项第二,打开最开始的脚本Player_NetworkSetu原创 2016-05-04 08:42:48 · 1159 阅读 · 0 评论 -
【UNET自学日志】Part6 更有效率的旋转同步
对于旋转的同步,其主要的思路和运动的同步是一样的,设置一个List,每次角度变化的时候将这个变化的数值存入List当中,当物体旋转的角度和List的第一个数值足够接近的时候,删除List中的第一个数值。值得一提的是,此方法只是改善画面的流畅性,并不能消除延迟所带来的同步问题。下面是Player_SyncRotation的代码using UnityEngine;using System.C原创 2016-04-19 16:13:47 · 1344 阅读 · 0 评论 -
【UNET自学日志】Part5 解决延迟产生的画面不流畅问题
感觉这个部分是非常需要并且非常有趣的,然而还有一些并不是特别理解的地方,故在此文章中,若出现不大理解的地方我会说明,同样希望大神可以帮我指出,也欢迎和我一样的新手和我共同钻研学习。原创 2016-04-17 21:40:08 · 2562 阅读 · 0 评论 -
【UNET自学日志】Part 17 更好的重生
新建一个tag “ZombieSpawn”,将物体ZombieSpawn添加这个tag,然后多复制几个放在不同的位置上打开之前的脚本GameManaer_ZombieSpawnerusing UnityEngine;using System.Collections;using UnityEngine.Networking;public class GameManaer_Zombie原创 2016-05-03 14:09:39 · 839 阅读 · 0 评论 -
【UNET自学日志】Part15 僵尸攻击玩家
在Zombie_Target脚本中,将targetTransform改为publicpublic Transform targetTransform;在预制件Zombie中添加新的脚本Zombie_Attackusing UnityEngine;using System.Collections;using UnityEngine.Networking;public class原创 2016-04-29 16:58:28 · 854 阅读 · 2 评论 -
【UNET自学日志】Part4 模拟延迟
之前我们所做的联机所连接的都是我们自己的本地网络(localhost),然而在实际的网络游戏中,根据每个玩家的网络的不同,必定会出现延迟,或高或低,如若出现了延迟,那么动画的流畅度肯定又是不一样的感觉,这一部分就要尝试着模拟网络的延迟。如何实现延迟的模拟呢?在Menu场景下的NetworkManager物体中,有一个NetworkManager的组件,勾选其中的选项——Use Netw原创 2016-04-16 20:59:31 · 1289 阅读 · 0 评论 -
【UNET自学日志】Part3 变得更有效率一点
通过运动和旋转同步的脚本,我们可以发现,每一个固定的时间段里,即使Player本身没有位移,也会运行一次CmdProvidePositionToServer函数,这样的代码效率不够高,于是我们将两个同步的脚本做了一些修改。using UnityEngine;using System.Collections;using UnityEngine.Networking;public clas原创 2016-04-16 12:36:28 · 1493 阅读 · 0 评论 -
【UNET自学日志】Part2 旋转同步
在正式开始设置旋转的同步之前,先进行Network场景的设置,使得在Menu这一场景下连接服务器,然后在Main场景中开始游戏,断开连接后再次回到Menu场景。我们需要的时候将Main中的NetworkManager复制到Menu场景中,并且删除Main中的NetworkManager,然后在Build Setting中添加两个场景,Menu在Main之前。接着需要在Netwo原创 2016-04-16 11:04:03 · 1806 阅读 · 2 评论 -
【UNET自学日志】Part1 UNET的设置与运动同步
以一个FPS游戏为例1、新建一个Plane作为游戏场景内的地板。2、导入Character包,在场景中添加FirstPersonCharacter中的Prefabs——FPSController,并重命名为Player。3、在Player中添加一个Capsule子物体作为玩家模型,将此Player保存为一个新的Prefab。4、在场景中新建一个空物体,重命名为NetworkMana原创 2016-03-23 14:25:46 · 7184 阅读 · 24 评论 -
【UNET自学日志】Part14 射击那些僵尸
射击僵尸和射击玩家(Part9 造成伤害)也是同样的道理,不再赘述新建脚本Zombie_Health添加到Zombie的预制件上using UnityEngine;using System.Collections;using UnityEngine.Networking;public class Zombie_Health : NetworkBehaviour { pri原创 2016-04-28 14:45:19 · 755 阅读 · 0 评论 -
【UNET自学日志】Part 13 僵尸的ID
我们给僵尸设置ID的思路和在Part7讲的一样,老样子直接上代码新建脚本Zombie_IDusing UnityEngine;using System.Collections;using UnityEngine.Networking;public class Zombie_ID : NetworkBehaviour { [SyncVar]public string zom原创 2016-04-28 14:04:24 · 1023 阅读 · 1 评论 -
【UNET自学日志】Part11 玩家复活
上一部分玩家摧毁的方法是设置其enable为false,那么玩家的复活就是在玩家死后,显示复活的按钮,点击按钮后把相关的enable再次设置为true即可新建脚本Player_Respawnusing UnityEngine;using System.Collections;using UnityEngine.Networking;using UnityEngine.UI;p原创 2016-04-23 21:06:27 · 1264 阅读 · 5 评论