- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设计一种喷丸/毒药类型的射弹,它会一直飞行直到到达屏幕上点击的点,然后自行销毁。
问题在于,与几乎所有人所说的相反,Vector3.Movetowards 并不是以恒定速度移动球。如果目标位置靠近发射器,它会缓慢移动,如果距离较远,它会移动得更快。
public float speed = 5f;
public Vector3 target = new Vector3();
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, target,speed * Time.deltaTime);
}
添加启动器脚本
private void Shooting()
{
if (Input.GetMouseButton(0))
{
if (Time.time >= shotTime)
{
GameObject poison = Instantiate(Projectile, shotPoint.position, transform.rotation);
Vector3 target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
target.z = 10f;
poison.GetComponent<PoisonBall>().target = target;
shotTime = Time.time + timeBetweenShots;
}
}
}
最佳答案
球的起始位置是否也在 z=10f
?否则,速度的差异很可能是 2D 游戏中的视角问题,导致子弹沿 Z 方向行进,但从相机的角度来看,您看不到这一点。
=> 离目标越近,仅在 Z 轴上发生的运动越多,距离越远,在 X 和 Y 上发生的运动就越多。
确保也做
var spawn = shotPoint.position;
spawn.z = 10f;
GameObject poison = Instantiate(Projectile, spawn, transform.rotation);
或者保留
target.z = 0
(只需删除
target.z = 10f
行,默认情况下
ScreenToWorld
使用给定向量的 Z 分量作为深度,并且无论如何您都传入了一个深度为 0 的二维向量)并改为使用
Vector2.MoveTowards
这将忽略 Z 上的 Ant 深度。
关于c# - Unity - Vector3.MoveTowards 不以恒定速度移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68584877/
我有一个 Hookshot 类,其中包含一个公共(public)协程,当它附加到的对象(hookshot)在另一个脚本中实例化时,我将调用它。目标是协程 CastHookshot 将对象移出设定距离,
我有一个 Hookshot 类,其中包含一个公共(public)协程,当它附加到的对象(hookshot)在另一个脚本中实例化时,我将调用它。目标是协程 CastHookshot 将对象移出设定距离,
我想用 Vector3.MoveTowards 将 GameObject 从位置 A 移动到 B在 x 秒内并在协程函数中。我知道如何用 Vector3.Lerp 做到这一点但这次更愿意用 Vecto
当我使用 Vector3.MoveTowards 方法时,木板无法移动。我不完全确定为什么。有好心人来看看吗? public class BrickMoveVErtical : MonoBehavio
当使用 Vector3.MoveTowards 时,它不会对任何一个执行任何操作,因为一个无法运行会导致另一个无法运行。 这是我的代码: using System.Collections; using
我正在尝试设计一种喷丸/毒药类型的射弹,它会一直飞行直到到达屏幕上点击的点,然后自行销毁。 问题在于,与几乎所有人所说的相反,Vector3.Movetowards 并不是以恒定速度移动球。如果目标位
我正在使用 Unity 开发游戏应用。我在移动 GameObject 时遇到问题。 在我的游戏中,当玩家向上滑动他的设备时,GameObject 从点 A 移动到 B,当他向下滑动时,它从 B 移动到
我实现了以下功能: function moveTowards(start, target, speed) { if (Math.abs(target.x - start.x) < config
我是一名优秀的程序员,十分优秀!