UNet系统初次使用——联网Boxing游戏(1)

来源:互联网 发布:免费家长控制软件 编辑:程序博客网 时间:2024/06/09 16:47

这篇博客算是对一个unet小游戏的记录,不过是游戏已经完成之后才写的,所以有些在比较错误的做法我会提出来的。

一、场景搭建

拳击游戏最主要的场景部件就是擂台和灯光。
(1)
导入一个擂台模型,稍微调整其大小和角度。(一般静止的场景模型大部分直接使用就可以,而如果是动态模型则需要别的设定)
擂台图片
为了防止人物移动会穿过擂台边缘,我们给擂台加上四周和底部的5个方形碰撞体。(一般为了减少运算量不使用模型自带的mesh collider)
colliders
(2)
将scene默认的的Directional Light绕x轴旋转270度,造成黑夜效果。
创建5个SoptLight,调整其position和rotation,制造出射灯的效果。

最终场景效果如图。

二、人物模型和FPS摄像机

场景构建完毕后就到了人物模型构建。
(1)首先我们导入人物模型。


对于带有动画系统的人物模型,导入之后要注意animation type的选项
animation type 分4个类型
- None
- Legacy
- Generic
- Humanoid
这四个类型的介绍可以参考官方文档
简略的说就是,Legacy使用的是4.0之前的动画系统,Generic使用的是新动画系统,而humanoid则是专门用于人体模型的带化身的新动画系统。
我当时对这个分类还没有了解,所以直接使用了下载的模型默认的Legacy动画系统,后续遇上了比较多的坑,还是推荐使用Generic动画系统。


模型效果

(2)FirstPlayer摄像机
先放张成品图片
这里写图片描述
FP摄像机主要的问题是穿模,如果摄像机的near距离太近的话,则会看到人体模型的内部,而如果太远的话则会截断拳套或者手持道具的模型。
我的解决方式是采用两个摄像机的叠加。
首先,将拳套和人物模型的layer分别设定成Guante和Player。
layer
然后创建两个摄像机,一个用于拍摄场景,一个用于拍摄拳套
场景摄像机的CullingMask勾选了除了Guante和Player以外所有的layer。
depth为-1。
这个摄像机不会拍摄玩家人物。
这里写图片描述
拳套摄像机的Clear Flags选择DepthOnly。
Cullintg Mask只选择Guante。
depth为0。
near一直调整到最小。
这个摄像机只会拍摄拳套,并且不会发生拳套穿模的现象。
这里写图片描述
各个参数的作用可以参考官方文档。
这里给出一个博客来学习下。
Unity 3D– 摄像机Clear Flags和Culling Mask属性用途详解
最后将两个的camera都作为一个空对象的子节点,并且归零position和rotation,就完成了FP摄像机。
这里写图片描述

最后我们将FP相机和player人物和场景保存成prefab。

0 0