[游戏开发][Unity] TPS射击游戏相机实现

这篇具有很好参考价值的文章主要介绍了[游戏开发][Unity] TPS射击游戏相机实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TPS射击游戏要实现的功能有:

  1. 滑屏控制
  2. 角色的横向旋转
  3. 相机的纵向旋转(区别于横向旋转)
  4. 相机贴墙拉近(不能穿墙)
  5. 相机观察旋转(角色不转相机转用于观察四周)
  6. 开火按钮和旋转屏幕功能共存(边开枪边转向瞄准)

射击瞄准技术方案二选一,很重要!!!

市面上的TPS射击游戏基本上有两种实现射击瞄准

方案一:以枪口射击方向为基准,相机跟着人做角度偏移

方案二:以相机的正方向为基准,使用IK组件让角色的上半身强制瞄准摄像机正前方N米的位置

方案1详解,以枪口为基准,相机跟随人动

方案2详解

1、滑屏控制

当按下屏幕时,获取屏幕的横轴、纵轴delta值

//滑动屏幕横轴delta值
mousX = Input.GetAxis("Mouse X");
//滑动屏幕纵轴delta值
mousY = Input.GetAxis("Mouse Y");

题外话:企业项目的滑屏系统设计到多事件、多手指操作,代码比较复杂,可以去看一些优秀的操控源码学习一下。

2、角色的横向旋转

这个一般有两种做法,已知滑动屏幕横轴和纵轴的delta值

mousX = Input.GetAxis("Mouse X");
transform.Rotate(Vector3.up, mousX * HorizonRotateSpeed);
rotateXValue += mousX * HorizonRotateSpeed;
Vector3 dir = new Vector3(0, rotateXValue, 0);
transform.rotation = Quaternion.Euler(dir);

3、相机的纵向旋转

 ​​​​​[游戏开发][Unity] TPS射击游戏相机实现,开发心得,unity,游戏

请注意,角色的横向旋转是Y轴自转,这个很好理解,而纵向旋转是相机沿图中蓝线的向量旋转

[游戏开发][Unity] TPS射击游戏相机实现,开发心得,unity,游戏

 当滑动屏幕deltaY发生变化时,相机的坐标沿蓝色轴发生空间三维旋转,并且朝向始终是看向蓝线,那具体看蓝线上的哪个点?看第一张图天蓝色的那个箭头线,需要给相机坐标配置一个与角色的位置差值,比如右1米,高2米,后1.5米

相机绕肩膀轴(大概在肩膀位置,就这么叫吧)旋转代码如下:

//offsetWithPlayer相机相对角色的坐标插值
//x代表左右、y代表上下、z代表前后

/相机旋转轴:角色坐标+轴高度+角色右方向
Vector3 RotateAxisHeight = new Vector3(0, 1.3f, 0);//1.3大概在肩膀位置
void OnUpdate()
{
    //先计算相机位置
    cameraPos = Player.transform.position + Player.right * (1 + offsetWithPlayer.x);
    cameraPos = cameraPos + Player.transform.up * (1 + offsetWithPlayer.y);
    cameraPos = cameraPos - Player.transform.forward * (1 + offsetWithPlayer.z);
    //更新相机位置
    followCamera.position = cameraPos;
    //相机位置绕肩膀轴旋转rotateValue角度
    followCamera.RotateAround(Player.position + RotateAxisHeight, followTarget.right, rotateValue);
}

4、相机碰撞拉近

5、相机观察旋转

6、开火按钮和旋转屏幕功能共存

7、射击方向方案选择,以枪口为基准还是以相机为基准。

技术难点:

枪与墙

由于是第三人称射击游戏,角色和相机之间有夹角,所以枪口点和准星是有误差的,下面是和平精英手游截图,我用AK射击柱子

[游戏开发][Unity] TPS射击游戏相机实现,开发心得,unity,游戏j文章来源地址https://www.toymoban.com/news/detail-576998.html

到了这里,关于[游戏开发][Unity] TPS射击游戏相机实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包