unity 如何沿着指定角度移动? 比如说 在2d空间内,向138度移动10米的距离,这个怎么实现? 10
2个回答
展开全部
你可以通过刚体作用力来实现物体移动
通过正切三角函数算出x,y比值然后通过
rigidbody.addforce给物体施加对应方向的力
通过正切三角函数算出x,y比值然后通过
rigidbody.addforce给物体施加对应方向的力
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public void AddForce(Vector2 force);
这个Vector2二维向量的我理解成在分别作用在x,y轴上的合力。
//之前错误理解成向Vector2 这个坐标移动。。。自学害死人
通过tan138° 算出 x轴方向力跟y轴方向力的比值。
如果x,y轴的值都为正数时,物体会向第一象限移动。
这里是138°在第二象限, 所以一个力应该是x轴的负方向,一个力是y轴正方向。
只要Vector(x,y);中的 x y的比值是 tan138° 该物体都会向 138°的方向移动。
这里要设定 x 值是负数。//如果y是负数,就会向相反的方向移动了。
至于怎么只移动10m,这里就需要写一个判断了。
如果两点之间的距离>10,就让该物体停止。停止运动的办法应该有很多。。我就不赘述了。
新手只能想到这么多了。。不正确的地方请帮忙改正。
这个Vector2二维向量的我理解成在分别作用在x,y轴上的合力。
//之前错误理解成向Vector2 这个坐标移动。。。自学害死人
通过tan138° 算出 x轴方向力跟y轴方向力的比值。
如果x,y轴的值都为正数时,物体会向第一象限移动。
这里是138°在第二象限, 所以一个力应该是x轴的负方向,一个力是y轴正方向。
只要Vector(x,y);中的 x y的比值是 tan138° 该物体都会向 138°的方向移动。
这里要设定 x 值是负数。//如果y是负数,就会向相反的方向移动了。
至于怎么只移动10m,这里就需要写一个判断了。
如果两点之间的距离>10,就让该物体停止。停止运动的办法应该有很多。。我就不赘述了。
新手只能想到这么多了。。不正确的地方请帮忙改正。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询