噩梦射手 心得 移动旋转面向 摄像机跟随

本文深入探讨了游戏开发中的多种技术实践,包括玩家移动控制、动画播放、射击、转向,以及敌人的移动、攻击和死亡处理。同时,文章详细介绍了AI音视频处理技术的应用,如射线追踪、动画机与动画切换、Unity引擎中的Navigation系统等。通过这些技术实操,旨在提升游戏开发者的实践技能和创新思维。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       


1. Player
  • Player 的移动: 目前我知道了三种方式可以作为Player的移动方式:
  • 太空射击中对飞机的控制: GetComponent<Rigidbody>().velocity = speed * move
  • 黑暗奇侠中对精灵的控制: controller.SimpleMove(new Vector3(Input.GetAxis("Horizontal") * speed, 0, Input.GetAxis("Vertical") * speed));
  • 恶梦射手中对射手的控制: this.GetComponent<Rigidbody>().MovePosition(transform.position + new Vector3(h, 0, v) * speed * Time.deltaTime ); 给我自己感觉而言,第一种方式,给刚体施加力可以使得开始移动的时候有明显的由慢到快的加速过程,相比起第三种方式要更加真实点,第二种方式是controller角色控制器给出的api具体我也不太清楚.

  • Player动画的播放: 学习到了动画机.在黑暗奇侠中,我接触到了animation,以及在脚本中通过状态的判断来切换动画,而在这里我学到了animator 以及标志位的设定.
  • Player的射击:   第一次接触射线,感觉十分神奇,Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //主相机向鼠标点射出一束射线. 这方法也使得我对射击游戏的实现方法有个雏形的想法.
  • Player的转向: 了解了lookat 这个api,这里让我想到了黑暗奇侠中,当时我想把巨魔的活动范围限制在一个范围之类.设置好trigger之后从转身和减速直到最后取区域中心点计算旋转角来控制巨魔不走出区域,但是现在知道了lookat 方法就变简单了.

2.Enemy
  • Enemy的移动:可以说这个整个视频中我接触到最神奇的一个东西了Navigation,但只是刚接触这个导航,只能了解一点皮毛。通过 SetDestination(player.position)导航可以动态实现Enemy对某个物体的追踪.但是在实际过程中还是会存在Enemy卡在地图某些物体间.觉得应该是Navigation的寻路算法还是写的不够完善.
  • Enemy的攻击:设置攻击区域用tigger判断,这里我用上了之前siki老师讲的 Ngui 中的 hud text 的方法实现了Player掉血的显示。
  • Enemy死亡后的消失: 这里学到了Enemy死亡后通过下沉,消失在Player视野后再Destory消除了突兀感.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值