unity-unet-设置player的开始位置
- 当客户端连接成功并验证通过时(你自己的验证逻辑,后面有这样的文章),会通知服务端spawn 一个该 player ,该 player 的 transform 可以自定义设置
- 类似于AOI,在超过范围的物体不绘制,也不同步。
- 减少客户端不必要的绘制和计算
- 看了些文章,大牛对同问题的解决方案
- 传送门:Fast-Paced Multiplayer
- Multiplayer Game 中所有 player 都有一个唯一标识。在unet中可以通过 Network Identity 组件获取到该 player 在整个网络整的 唯一 的连接 id
- 这里测试则随便加了一个前缀(Player_)+id 作为唯一的 name 赋值给 transform.name,然后可以在 Runtime 时 Hierarchy 中可以观察到
unity编辑器扩展很方便,可以省掉很多制作其他工具的时间(比如技能编辑器,特效编辑器等,都是数据结构的导入导出)
可以直接在 Scene 、Inspector 或者新建一个 Window 中编辑
- unity5 中新加入了个 unet 模块,使用的命名空间是 using UnityEngine.Networking;
- 做多人在线的游戏最头疼的问题就是同步问题,而这个unet模块就是其中一个解决方案,可以不提太关心网络,就可以制作出一个多人在线的demo。
- 在游戏中很多地方都用了全局唯一的单件,像什么技能管理器、buff管理器等等…
- Google了一下不外乎都是在unity中 实例 一个对象gameobject,往这个gameobject身上挂上所有的Mgr组件,然后设置这个gameobject在切场景的时候不让销毁(DontDestroyOnLoad)
测试工程:
- unity : https://gitee.com/yangxuan0261/UnityAndroidAAR
- as : https://gitee.com/yangxuan0261/AndroidAAR
测试工程2:
- as : https://gitee.com/yangxuan0261/UnityAndroidPlugin, (接过百度sdk的工程, 使用 yx_baidu_loc 分支)
使用的是工具是 unity5.4,Android Studio 2.0(后面简称 AS)
网上找到的教程大部分都是导出jar给unity调用,极少是用AS导出 aar 包给unity调用
用AS导出jar需要修改一下 build.gradle 文件,但这里主要是说导出 aar包
实现unity掉java里面的代码有两种方式
- 第一种方式,自己写个java类,jni需要的 中转站cpp、 Android.mk、Application.mk,然后用ndk打成so库(无疑巨麻烦,官网例子直接可以下,传送门http://docs.unity3d.com/Manual/PluginsForAndroid.html
- 第二种方式,直接使用unity分装好的类 AndroidJavaClass 等,无需自己打so库(巨方便,本文将的就是这种)
- 和unity中的非常相似的用法。unity-使用 Camera 和 Render Texture 制作小地图
- 该方法也是适用于相关UI上展示模型。都是 Camera 和 Render Texture 的搭配使用。
记录一些有待 todo 的事项
记录一些有待 todo 的事项
在动画状态机中某个状态时,播放某个动作,加入一个曲线,根据动画播放的时间来取曲线对应的值
应用场景比如一个刀光的 拖尾 特效
记录Level相关
这个东西可以种是否切入对应状态
官网地址:https://docs.unity3d.com/Manual/AnimationSoloMute.html
unity可以用两种方式控制动画
- Animations,这种方式简单,直接 Play(“Idle”) 或者 CorssFade(“Idle”) 就可以播放动画
- Animator,5.x之后推荐使用这种方式,因为里面可以加上混合动画,让动画切换更加平滑
发布移动游戏包
学习 ue4 的一些笔记记录, 记录各种踩坑, 也是一种不归路的写照. 持续更新中…
之前也有写过点,这里做个汇总,顺便补上漏记得东东,持续更新……
这里以 MyTest 项目名说明。