我是靠谱客的博主 风中外套,最近开发中收集的这篇文章主要介绍Unity 3D游戏开发 - U3D入门 | 物理组件之刚体,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

变换组件运动特点

  • 变换组件运动特点(Transform.Translate()方法
    • 移动的物体会 “穿透” 场景中其他的物体模型;
    • 移动的物体不会受重力影响(到达场景边缘外,不会下落)。

刚体组件简介

  • 刚体简介
    • 刚体:Rigidbody,属于物理类组件。
    • 作用:添加了刚体组件的游戏物体会有重力,意味着可以像现实中的物体一样运动。
  • 给物体添加刚体组件
    • 选中游戏物体 --> 菜单 Component --> Physics --> Rigidbody

刚体组件属性

  • Mass [质量]
    • 设置物体的质量,单位是 KG。
  • Drag [阻力]
    • 空气阻力,0表示无阻力,值很大时物体会停止运动。
  • Angular Drag [角阻力]
    • 受到扭曲力时的空气阻力,0表示无阻力,值很大时物体会停止运动。
  • Use Gravity [使用重力]
    • 是否使用重力

使用刚体移动物体

  • 方法
    • Rigidbody.MovePosition(Vector3):使用刚体移动物体的位置。
    • 使用刚体移动物体,物体是根据世界坐标系的方向移动的,且会触发相关物理事件。
  • 参数
    • MovePosition 中的 Vector3 要使用 “当前位置” + 方向 的方式。
    • Transform.Position:属性 当前物体的位置。
      private Rigidbody m_Rigidbody;
      private Transform m_Transform;
      
      void Start()
      {
         m_Rigidbody = gameObject.getComponent<Rigidbody>();
         m_Transform = gameObject.getComponent<Transform>();
         
      }
      
      void Update()
      {
         if(Input.GetKey(KeyCode.W))
         {
            m_Rigidbody.MovePosition(m_Transform.Position + Vector3.forward*0.2f);
         }
      
         if(Input.GetKey(KeyCode.S))
         {
            m_Rigidbody.MovePosition(m_Transform.Position + Vector3.back*0.2f);
         }
      
         if(Input.GetKey(KeyCode.A))
         {
            m_Rigidbody.MovePosition(m_Transform.Position + Vector3.left*0.2f);
         }
      
         if(Input.GetKey(KeyCode.D))
         {
            m_Rigidbody.MovePosition(m_Transform.Position + Vector3.right*0.2f);
         }
      
      }

       

 

最后

以上就是风中外套为你收集整理的Unity 3D游戏开发 - U3D入门 | 物理组件之刚体的全部内容,希望文章能够帮你解决Unity 3D游戏开发 - U3D入门 | 物理组件之刚体所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部