美文网首页unity官方教程合集
unity官方内置网络unet的实例教程(四)

unity官方内置网络unet的实例教程(四)

作者: e566c99b4645 | 来源:发表于2017-11-07 23:22 被阅读479次

    本课程的地址:

    第一节.www.jianshu.com/p/d4e35e547081

    第二节:www.jianshu.com/p/d7481e83317c

    第五节:www.jianshu.com/p/cb034b4c317d

    第六节:www.jianshu.com/p/c58c1a888595

    第七节:www.jianshu.com/p/b8cc2d15e2b5

    第八节:www.jianshu.com/p/9f8f18a46266

    因为我们的两个游戏运行起来以后,角色都是一个预制体生成的,所以一会我们就得靠移动位置,才能知道哪个是自己的角色。如果在玩游戏的时候,我们需要识别自己控制得角色怎么办呢?让我们简单地加个颜色来区分吧!

    首先,打开PlayerController脚本,添加 OnStartLocalPlayer方法(OnStartLocalPlayer方法是进行基于虚方法而重写的方法,只能用于本地玩家,比如配置摄像头和输入。)。具体如下:

    添加代码

    保存,然后重新生成并运行游戏选择 LAN Host,再把unity也运行起来选择LAN Client进入游戏。可以发现我们控制的游戏的那个角色变成了蓝色,但是别的还是白色。

    这样子的

    ok,退出游戏,别忘了保存下。

    接下来,我们让角色发射子弹,还是老样子,先实现单机功能再进行网络化改造。

    先做子弹,在Hierarchy面板右键,新建Sphere球体,重命名为Bullet,选中它,调整scale 缩放至(0.2, 0.2, 0.2),然后,添加刚体组件,取消重力,拖到Prefabs文件夹里面生成子弹预制体,删掉Hierarchy的Bullet。


    属性栏

    保存游戏。打开 PlayerController脚本编辑,为了让大家动手,我做成了gif。

    脚本

    保存脚本,回到Unity,在prefabs文件夹中选中Player预制,把Player预制拖拽到Hierarchy里面,选中它,新建Cylinder圆柱体,重命名为:Gun,选中Gun,在属性面板删除掉 碰撞体组件Capsule Collider,


    Gun

    改变位置 Position至:(0.5, 0.0, 0.5),改变旋转Rotation(90.0, 0.0, 0.0),改变缩放Scale至(0.25, 0.5, 0.25),将其材质设置为:Black,最后是这样子的:


    游戏物体

    选中Player,右键新建空物体empty GameObject,重命名为:Bullet Spawn,设置Position位置为(0.5, 0.0, 1.0),就是枪口的位置。最后,也是最重要的一步选中Player:点击右边属性面板中上面的apply按钮


    接受

    拖拽子弹预制和Bullet Spawn的空物体分别添加到Player属性面板中脚本定义的两个空地方 Bullet Prefab、BulletSpawn


    删除Hierarchy层次视图中的Player,保存游戏。再次重新生成游戏,运行选择LAN Host 进入游戏,回到Unity运行游戏,选择LAN Client 开始联网。按空格发射子弹,你会发现,只能在本地发射,因为子弹还没有进行同步。

    相关文章

      网友评论

        本文标题:unity官方内置网络unet的实例教程(四)

        本文链接:https://www.haomeiwen.com/subject/ujesmxtx.html