用Unreal开发一个简单的MC Demo (1)
来源:互联网 发布:java implements 用法 编辑:程序博客网 时间:2024/06/09 23:37
用Unreal开发一个简单的MC Demo 第一节
1.使用一个模版
Unreal提供了一系列的基础模版供大家使用,因为我们要做一个MC Demo,最适合的Demo即是First Person Example。
该模板提供了第一人称射击的基础,可以控制角色上下左右蹦跳,还能瞄准发射子弹,十分像MC的操作。
2.制作一个MC风格的方块
首先将这上中下三个面的图片导入到Unity
然后右键–创建材质,只有这样才能给Unity使用
创建一个BSP方块
选择方块,将他的画刷大小改成100/100/100
将模式改为选择并旋转对象,然后将刚创建的材质拖到方块的6个面上,如果看不到记得旋转一下
于是我们得到了一个6面涂色的方块。
在世界大纲里面找到刚才创建的方块,点击他,然后创建静态网格物体
双击进入刚才的静态网格物体,设置他的碰撞,否则方块不能堆叠或者站在上面
于是,一个MC风格的静态网格物体创建完成~
在最后,我们选择该物体,然后蓝图->转换为蓝图类,将物品转化为蓝图物品。方便以后增加新功能
3.蓝图编辑
First Person Example的主要功能存放在FirstPersonCharacter蓝图里面,有移动,开火等功能。
首先我们当然要增加放置方块功能了。
首先增加Place事件,用鼠标左键触发,原来的开火放到鼠标右键
去编辑-项目设置里面修改一下~
好,开始进入正式的蓝图编辑。
首先创建一个事件监听,监听输入的Place事件
收到Place事件后,发出一条射线,通过Break Hit Result判断命中的单位
然后将命中的点XYZ除以100再乘以100(对齐方格),然后创建一个方块,然后就Bingo!
可以运行一下程序看看结果
果然可以放方块了!但是有个问题,为什么方块都在底下,堆不上去呢?
其实很简单,我们碰撞的点在地底,Z通过int(Z/100)*100运算的结果的也一直在地底下,所以我们永远堆不上去。而且在MC里,我们在方块的左右点击放置,理应也出现在目标箱子的左右。
所以我们还要获取碰撞的方块,判断命中点在目标方块的上下左右,然后放置箱子。
首先获得碰撞的Actor,尝试将他转换成方块,取得他的XYZ,用来跟之前的XYZ对比
判断Y轴,放置在箱子的上或者下,将结果保存到Cube Place Vector(需要创建一个Vector变量)里
X轴和Z轴同理。。。
最后在目的地创建方块
运行一下
非常好!BTW,我们的测试小人还能蹦到方块上。完美!
好了,第一节就这样完工。下一节我们尝试移除方块~
- 用Unreal开发一个简单的MC Demo (1)
- JNI开发的一个简单Demo
- SpringMVC-(1)一个简单的实例demo及讲解
- silverlight超小游戏开发包SmallGameLib(二)—— 一个最简单的DEMO
- 用MC写一个策略
- 一个简单的Flex Demo
- 一个简单的触发器(Demo)
- 一个简单的Gephi Demo
- 一个简单的缓存Demo
- 一个简单的广播Demo
- Lucene5 一个简单的Demo
- 一个简单的ReactNative demo
- WebSocket -- 一个简单的Demo
- 一个简单的线程demo
- 一个简单的selenium demo
- 一个简单的SpringMVC Demo
- 一个NIOServer的简单Demo
- Dagger2的一个简单Demo
- android studio中文件内容查找相当于Eclipse中Ctrl+H & 查找项目中所有中文
- 机器学习的数学基础(1)--Dirichlet分布
- 工作日志4
- UVA725 - 725 - Division
- hdu 2295 &&hdu 5046
- 用Unreal开发一个简单的MC Demo (1)
- ubuntu环境安装lamp-apt-get安装
- 敏捷的軟體開發流程(CMMI)
- 堆的调整
- sql优化
- [LeetCode][Java] Spiral Matrix II
- sizeof 使用
- Linux系统平均负载
- Haar 特征检测