我不确定是什么原因造成的,但我有一些物体,当它们以太大的角度(钝角)撞击对撞机时,它们不会反弹,它们只是开始沿着 移动x
或 y
取决于它是碰到顶部还是侧面。
我正在使用以下代码:
using UnityEngine;
using System.Collections;
public class Ball : MonoBehaviour {
Rigidbody2D rb;
public float speed;
void Start(){
rb = GetComponent<Rigidbody2D>();
// Set the start direction
direction = new Vector2(Random.value, Random.value);
rb.velocity = direction * speed;
}
void LateUpdate(){
rb.velocity = speed * rb.velocity.normalized;
}
}
然后我在移动物体上设置了一个 CircleCollider2d
对撞机和一个 2D 物理 Material
,具有以下值:Friction = 0
和 弹性 = 1
这是我对球的设置:
我该怎么做才能阻止元素骑墙?
我明白了!
问题不在于代码,而在于 Physics2D 设置。
我需要将 Velocity Threshold
降低到一个较小的数字。
我是一名优秀的程序员,十分优秀!