因此,即时创建一个简单的游戏,游戏的一个组成部分是跟随关卡外部的绿色。我使用中间的光线投影工作,旋转并给出游戏对象的碰撞位置。
问题在于速度是不一致的,因为如果我有斜率,两次碰撞之间的距离可以更远。我也觉得应该有一种更简单的方法来获得相同的结果。你有什么想法?
public class FollowPath : MonoBehaviour {
Vector3 collisionPos;
public GameObject greenDot;
void Update ()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.up);
transform.Rotate(0.0f, 0.0f, 3);
if (hit.collider != null)
{
collisionPos = hit.point;
}
greenDot.transform.position = collisionPos;
}
}
答案 0 :(得分:0)
我不确定您是否会喜欢这个答案,因为它表明完全背离了您尝试这样做的方式。
一种简单的方法是将移动点GameObject作为Rigidbody2D组件和CircleCollider组件。
然后,制作墙壁,并为每个EdgeCollider组件添加。
您可能还希望使用Collider为每个GameObject添加PhysicsMaterial2d,并为每个GameObject设置摩擦力和弹跳值。
设置完成后,您可以对刚体球施加初始力以使其移动,并且它将像球一样从墙上反弹,使用Unity物理引擎。更新功能不需要代码。