Unity中不同角度的加力
Adding force in different angles in Unity
我正在制作一款水果出现在屏幕上的游戏(此时它们从屏幕底部飞进来,向上移动,然后又从屏幕上掉下来),你必须粉碎水果才能获得积分。
我想弄清楚如何在不同的角度添加一个力,使水果飞到屏幕上的不同位置,而不是只在中间向上然后向下。
我是这样给水果加力的:
foodItemRigidBody.AddForce(transform.up * force);
我的产卵位置在屏幕底部的中间,所有的水果都在那里产卵,并添加了一个力,使它们飞起来并直线掉落。
我怎样才能让它们产卵在中间并向上飞,有的稍微向右飞,有的稍微向左飞?
如果是 2D,我会尝试将你的向上方向随机化到两侧:
Vector3 upDirSlightlyRandomized = (transform.up + transform.right + new Vector3(Random.Range(-0.5f, 0.5f), 0, 0).normalized;
foodItemRigidBody.AddForce(upDirSlightlyRandomized * force);
可能相同但更直接:
Vector3 upDirSlightlyRandomized = new Vector3(Random.Range(-0.5f, 0.5f), 1, 0)).normalized;
我会玩 +-0.5f 范围,直到达到所需。对于 3D,我也会尝试随机化 z.
制作 3 个对象。
LeftBorder
RightBorder
Target
让 Target 移动到 x-axis 上 LeftBorder 和 RightBorder 之间的随机位置,但在每次发射水果之间保持它自己的 y-axis 和 z-axis。
然后你的重生点应该使用 Transform.LookAt 转向目标。
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
这样你的出生点每次都会旋转到一个随机的目标位置。
我正在制作一款水果出现在屏幕上的游戏(此时它们从屏幕底部飞进来,向上移动,然后又从屏幕上掉下来),你必须粉碎水果才能获得积分。
我想弄清楚如何在不同的角度添加一个力,使水果飞到屏幕上的不同位置,而不是只在中间向上然后向下。
我是这样给水果加力的:
foodItemRigidBody.AddForce(transform.up * force);
我的产卵位置在屏幕底部的中间,所有的水果都在那里产卵,并添加了一个力,使它们飞起来并直线掉落。
我怎样才能让它们产卵在中间并向上飞,有的稍微向右飞,有的稍微向左飞?
如果是 2D,我会尝试将你的向上方向随机化到两侧:
Vector3 upDirSlightlyRandomized = (transform.up + transform.right + new Vector3(Random.Range(-0.5f, 0.5f), 0, 0).normalized;
foodItemRigidBody.AddForce(upDirSlightlyRandomized * force);
可能相同但更直接:
Vector3 upDirSlightlyRandomized = new Vector3(Random.Range(-0.5f, 0.5f), 1, 0)).normalized;
我会玩 +-0.5f 范围,直到达到所需。对于 3D,我也会尝试随机化 z.
制作 3 个对象。
LeftBorder
RightBorder
Target
让 Target 移动到 x-axis 上 LeftBorder 和 RightBorder 之间的随机位置,但在每次发射水果之间保持它自己的 y-axis 和 z-axis。
然后你的重生点应该使用 Transform.LookAt 转向目标。
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html
这样你的出生点每次都会旋转到一个随机的目标位置。