unity用力移动物体到某点

以下代码为通过使用力移动到某点并稳定刚体的代码,
我发现网上并没有这类代码,所以自己琢磨出了这段代码(待完善。。。)

    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("睡着啦");

    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容