You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现立方体撞墙后从角落反弹至对角并保持平面直线运动?

需求与实现尝试

我需要实现以下效果:

  • 立方体沿随机方向自动移动,用彩色标记点标记其角落
  • 立方体与墙体碰撞后,从碰撞角落反弹至对角,在X-Y平面保持直线运动(行为类似Pong游戏)
  • 立方体可旋转,以实现角落碰撞

已尝试的实现方式:

  • 使用LookAt函数并沿目标方向施加力
  • 从与墙体碰撞的立方体角落向对角发射射线,尝试通过MoveTowards函数向目标点移动

反弹代码片段

片段1

public class CollideCheck : MonoBehaviour
{
    private bool isCollided;
    private int direction;
        
    public bool IsCollided
    {
        get { return isCollided; }
    }

    public GameObject YellowMarker { get; private set; }

    void OnCollisionEnter(Collider other)
    {
        if (other.gameObject.tag == "RedMarker")
        {
            void RaycastTowardsThing(GameObject other)
            {
                Vector3 raycastDir = other.transform.position - transform.position;
                Physics.Raycast(transform.position, raycastDir);
            }
            RaycastTowardsThing(YellowMarker);
        }
    }
}

片段2

private void OnCollisionEnter(Collider other)
{
     transform.position = Vector3.MoveTowards(transform.position, yellow.transform.position)
}

目标效果示意图

立方体反弹效果示意图

内容的提问来源于stack exchange,提问作者stratutrav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:55:05