C# 在游戏中放大用户移动

C# 在游戏中放大用户移动,c#,math,unity3d,C#,Math,Unity3d,我正在做一个游戏,用户可以用跳跃动作移动一个物体。仅仅使用用户的运动没有足够的效果,所以我想放大它 我所尝试的: 保存我要移动的对象的起始位置,并从该点检测变化并将其乘以2。 我也试着把它计算到10的幂,但很快就变成了无穷大 所以这一切都失败了,我仍然觉得这不应该这么难,我错过了什么 编辑:我当前的代码,它什么都不做 (WaterBallInst as GameObject).transform.position = new Vector3( (Water

我正在做一个游戏,用户可以用跳跃动作移动一个物体。仅仅使用用户的运动没有足够的效果,所以我想放大它

我所尝试的: 保存我要移动的对象的起始位置,并从该点检测变化并将其乘以2。 我也试着把它计算到10的幂,但很快就变成了无穷大

所以这一切都失败了,我仍然觉得这不应该这么难,我错过了什么

编辑:我当前的代码,它什么都不做

        (WaterBallInst as GameObject).transform.position = new Vector3(
            (WaterBallInst as GameObject).transform.position.x + (gameObject.transform.position.x - WaterBallStartPos.x),
            (WaterBallInst as GameObject).transform.position.y + (gameObject.transform.position.y - WaterBallStartPos.y),
            (WaterBallInst as GameObject).transform.position.z + (gameObject.transform.position.z - WaterBallStartPos.z));

这里的gameObject是用户移动,Waterballist是我试图移动的

就像有人真的应该知道你在做什么而不看代码一样。。如果你读了这个问题,我会问你如何回答这个问题.“你也试着把它计算到10的幂次,但它很快就变成了无穷大”听起来你好像缺少了一些限制码,我猜你是在每帧相乘?试着根据时间来做,然后把它限制在某个最大值。谢谢你的评论,添加了代码,我觉得我需要限制它,但我想不出一个方法。以现在的速度,我甚至看不到它消失,它只是在一秒钟内无限大。我每一帧都在这样做。基于时间我该怎么做呢?我不是真正的unity,但它有点像speed+=(rate*diffInTime/totalTimeToRate)。就像有人真的应该知道你在做什么而不看代码一样。。如果你读了这个问题,我会问你如何回答这个问题.“你也试着把它计算到10的幂次,但它很快就变成了无穷大”听起来你好像缺少了一些限制码,我猜你是在每帧相乘?试着根据时间来做,然后把它限制在某个最大值。谢谢你的评论,添加了代码,我觉得我需要限制它,但我想不出一个方法。以现在的速度,我甚至看不到它消失,它只是在一秒钟内无限大。我每一帧都在这样做。基于时间我该怎么做呢?我不是真正的统一体,但它有点像速度+=(速率*diffInTime/totalTimeToRate)。