关于Unity,愤怒的小鸟,如何画抛物线

最近一直在学Unity,昨天,把自己写的愤怒的小鸟给老爸玩了一会,年过半百的他怎么也没有过关,还抱怨我连个指示器也没有.

吸取了意见后,我打算写一个抛物线指示器,但是由于我用的是unity提供的组件,所以相关的数据没办法获得(其实是我不会…),一开始我打算让它先飞出去一次,然后画线,这样更简单,但是我又不知道如何加速动画,不然指示器出现的太慢,而且这样很占资源.

于是打算用高中学习抛物线函数来模拟,因为我的小鸟飞出是有规律的,最后的效果:
在这里插入图片描述
再调参的时候还发现,可以调节火箭的数量来达到更改探测长度的(可能是我不小心写的BUG把)结果阴差阳错的达到了我想要的目的.
在这里插入图片描述
接下来就是绑定具体参数啦,

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
首先,您需要在Unity场景中创建一个Plane对象,然后将其旋转使其成为一个倾斜的平面,以模拟抛物线的形状。 接下来,您需要在场景中创建一个对象来表示发射点,可以使用一个简单的3D球体或其他形状。将其放置在Plane的平面上。 然后,您需要编写一个脚本来控制发射和抛物线路径。 以下是一个简单的示例脚本: ```csharp using UnityEngine; public class ProjectileLauncher : MonoBehaviour { public GameObject projectilePrefab; public float launchSpeed; public float gravityModifier; private Vector3 launchPosition; void Start() { launchPosition = transform.position; } void Update() { if (Input.GetButtonDown("Fire1")) { LaunchProjectile(); } } void LaunchProjectile() { GameObject projectile = Instantiate(projectilePrefab, launchPosition, Quaternion.identity); Rigidbody rb = projectile.GetComponent<Rigidbody>(); rb.velocity = transform.forward * launchSpeed; Physics.gravity *= gravityModifier; } } ``` 在该脚本中,您需要将projectilePrefab设置为您要发射的物体的预制件,launchSpeed设置为发射速度,gravityModifier设置为重力变化因子。 当按下Fire1按钮时(默认为鼠标左键),LaunchProjectile函数将创建一个实例化的projectile对象,并将其设置为沿着发射点的前方方向和指定的速度飞行。然后,将场景中的重力乘以gravityModifier以模拟物体的抛物线路径。 最后,您需要在projectile对象上附加一个Rigidbody组件,以便其受到物理引擎的影响,并在其碰撞器上附加一个脚本来检测击中目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值