前言
- 在做瞄准的时候有想过一个问题,就是如果瞄准做成动画的话可能会存在两个问题:
- (1)站在原地不动的情况下,切换腰射和机瞄,射击点会移动,也就是射的位置会改变?但是准心又没有动,说明腰射和机瞄只有一个是准的。
- (2)测试的时候发现,如果枪口位置射出的子弹,在近距离的时候是不准的,但是子弹经过长时间的飞行,到远处了才准,这个问题怎么解决?
1.瞄准位置切换问题
-
既然动画的方式会使枪口位置发生变化,本来瞄准好的角度发生改变,那么考虑下面这种方式:
-
设置两个Camera
-
一个是环境相机MainCamera(环境相机不渲染枪以及子弹)
-
一个是武器相机WeaponCamera(武器相机渲染枪支和子弹)
-
这样就可以通过移动武器相机,来实现瞄准啦~这样的瞄准只是移动了相机,但是没有移动枪口位置!(就比如下面这张图,其实枪口是正对着MainCamera的,但是只需要将WeaponCamera位置往角色正对左上角移动,那么就可以做出好像是腰射的持枪动作!)
2.如何调整枪口位置
- 这个真的有必要记录,因为上次写fps游戏就发现了,虽然近距离是瞄准了,但是子弹弹道并不是一开始就准的!子弹只有通过一段时间的飞行才会集中远距离的目标!
- 解决的办法就是将MainCamera朝向和枪口朝向置于同一Z轴位置
- 这样不管怎么调整WeaponCamera,实际上的子弹就是瞄准MainCamera视角最中心的准心的。因此指哪里打哪里,不会出现近距离射不准的角度问题!