我是靠谱客的博主 干净山水,最近开发中收集的这篇文章主要介绍Rigidbody刚体组件控制物体的移动和旋转,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Unity中如果一个物体有Rigidbody组件,可以通过Rigidbody组件控制该物体移动和旋转

Rigidbody.position

Rigidbody.rotation

void Start()
    {
        //设置游戏物体的位置及旋转
        GetComponent<Rigidbody>().position = Vector3.zero;
        GetComponent<Rigidbody>().rotation = Quaternion.identity;
    }

Rigidbody.MovePosition()

void Update()
    {
        //控制物体移动
        GetComponent<Rigidbody>().MovePosition(transform.position + transform.forward * Time.deltaTime);     
    }

Rigidbody.MoveRotation()

    public Transform target;//要面向的目标物体
    public float speed = 1f;

    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {        
        //控制物体旋转
        //得到一个由当前物体指向目标物体的向量
        Vector3 direction = target.position - transform.position;
        direction.y = 0;
        Quaternion targetRotation = Quaternion.LookRotation(direction, Vector3.up);
        //通过刚体组件让物体朝向目标物体
        rb.MoveRotation(Quaternion.Slerp(rb.rotation,
            targetRotation, Time.deltaTime * speed));
    }

Rigidbody.AddForce()

    public float thrust;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        //在物体正前方添加一个力
        rb.AddForce(transform.forward * thrust,ForceMode.Force);
        //rb.AddForce(new Vector3(0, 0, 1));
    }

 

最后

以上就是干净山水为你收集整理的Rigidbody刚体组件控制物体的移动和旋转的全部内容,希望文章能够帮你解决Rigidbody刚体组件控制物体的移动和旋转所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部