用多了Unity自带的First Person Controller,总感觉只使用第一人称视角有点不爽,如果能想WOW那样镜头拉远了就是第三人称,拉到最近就是第一人称,那该多好啊。稍微看了下Unity自带的Third Person Controller,发现也不是我需要的效果。那看来只好自己动手丰衣足食咯……
▇ 知识点
▇ 思路
创建一个空游戏对象Player,在其中创建一个Capsule作为临时使用的玩家模型,一个MainCamera作为主镜头;
▇ 脚本
▇ 效果
其实没有实现的功能还很多,比如可以任意旋转镜头,可以从角色的脚底下穿过,也会穿透地面,囧。解决起来也不难,用Raycast从角色向摄像机做碰撞检测,如果有碰撞则将摄像机和人物的距离变为到碰撞点的距离即可,为什么不做呢?
因为正当我兴冲冲写下这篇笔记的时候,发现网上已经有大神写了一个素材包,专门用来WOW的镜头和角色控制。不仅实现了上述功能,还有水下效果、动作动画等等,需要花点时间研究消化一下……再结合从WOW导出的角色模型动画,这样就可以摆脱这个白色的“小药丸”咯。
总之虽然重复造了轮子(而且还造得不完美),但从中也学到了很多。特别是那个四元数的概念,在度娘知道里看得我一愣一愣的,走路在想,吃饭在想,洗澡也在想。还好最后还是啃下来了,后来回过头来发现也并不是那么难以逾越的坎,关键在于能够沉下心来思考。
白洞,白色的明天在等着我们!
▇ 知识点
- Input.GetAxis:用这个可以获取鼠标滚轮滚动的幅度,也可以获取鼠标移动的幅度;
- Input.GetMouseButton:获取鼠标按钮状态,0-鼠标左键,1-鼠标右键,2-鼠标中键;
- Quaternion.Euler:通过欧拉角创建一个四元数,可以用来代表一个物体的三维旋转;
- 四元数乘以一个向量,等同于将这个向量按四元数旋转;
▇ 思路
创建一个空游戏对象Player,在其中创建一个Capsule作为临时使用的玩家模型,一个MainCamera作为主镜头;
- 创建一个WowCamera脚本,附加到MainCamera上,响应玩家鼠标操作,并实时调整自己的位置;
- 为Player附加Unity自带的3rd Person Controller,这样可以控制角色;
- 旋转镜头的时候要把鼠标指针隐藏;
▇ 脚本
▇ 效果
其实没有实现的功能还很多,比如可以任意旋转镜头,可以从角色的脚底下穿过,也会穿透地面,囧。解决起来也不难,用Raycast从角色向摄像机做碰撞检测,如果有碰撞则将摄像机和人物的距离变为到碰撞点的距离即可,为什么不做呢?
因为正当我兴冲冲写下这篇笔记的时候,发现网上已经有大神写了一个素材包,专门用来WOW的镜头和角色控制。不仅实现了上述功能,还有水下效果、动作动画等等,需要花点时间研究消化一下……再结合从WOW导出的角色模型动画,这样就可以摆脱这个白色的“小药丸”咯。
总之虽然重复造了轮子(而且还造得不完美),但从中也学到了很多。特别是那个四元数的概念,在度娘知道里看得我一愣一愣的,走路在想,吃饭在想,洗澡也在想。还好最后还是啃下来了,后来回过头来发现也并不是那么难以逾越的坎,关键在于能够沉下心来思考。
白洞,白色的明天在等着我们!