【问题标题】:Unity - Inconsistant speed of object following raycast2DUnity - raycast2D之后对象的速度不一致
【发布时间】:2015-10-30 08:16:40
【问题描述】:

所以我创建了一个简单的游戏,游戏的一个组成部分是关卡外部的绿点。我使用中间的光线投射来完成这项工作,该光线投射会旋转并为游戏对象提供碰撞位置。

game overview

问题是目前速度不一致,因为如果我有坡度,两次碰撞之间的距离可能会更远。我也觉得应该有一种更简单的方法来获得相同的结果。你有什么想法?

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;
        }
    }

【问题讨论】:

    标签: unity3d path rotation raycasting


    【解决方案1】:

    我不确定您是否会喜欢这个答案,因为它表明您完全偏离了您尝试这样做的方式。

    一个简单的方法是给你的移动点游戏对象一个Rigidbody2D组件和一个CircleCollider组件。

    然后,制作你的墙,并为每个墙添加一个 EdgeCollider 组件。

    您可能还希望使用 Collider 向每个 GameObject 添加 PhysicsMaterial2d 并为每个 GameObject 设置摩擦力和弹力值。

    设置完成后,您可以使用 Unity 物理引擎对刚体球施加初始力以使其移动,它会像球一样从墙上反弹。更新函数不需要任何代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多