以下代码为通过使用力移动到某点并稳定刚体的代码,
我发现网上并没有这类代码,所以自己琢磨出了这段代码(待完善。。。)
Rigidbody2D rg;
// Use this for initialization
void Start () {
rg = gameObject.GetComponent<Rigidbody2D>();
}
// Update is called once per frame
private void FixedUpdate() {
if (transform.position.magnitude < 1 && rg.velocity.magnitude < 1) {
//rg.AddForce(Vector2.zero - (Vector2)transform.position / 4000);
Debug.Log(rg.velocity.magnitude);
} else {
rg.AddForce(Vector2.zero - (Vector2)transform.position * 4);
}
float z = transform.rotation.z ;
if (Mathf.Abs(z) > 0.01f) {
if (z > 0) {
rg.AddTorque(-1f);
} else if (z < 0) {
rg.AddTorque(1f);
}
}
if (rg.IsSleeping()) Debug.Log("睡着啦");
}
网友评论