Unity 3D游戏开发 - U3D入门 | 刚体常用方法介绍

AddForce()

  • 作用
    • 给物体添加一个力,让刚体按 “世界坐标系” 进行运动。
  • 代码
    • Rigidbody.AddForce(Vector3, ForceMode);
    • Vector3:力的大小和方向;
    • ForceMode:力的模式 [enum]
      private Rigidbody m_Rigidbody;
      
      void Start()
      {
         m_Rigidbody = gameObject.GetComponent<Rigidbody> ();
      }
      
      void Update()
      { 
          m_Rigidbody.AddForce(Vector3.forward * 10, ForceMode.Force);
      }
  • ForceMode参数
    • 枚举类型。以什么样的方式添加力给物体。
    • Acceleration:加速度;
    • Force:力。通常用于设置真实的物理;
    • Impulse:冲击力。通常用于瞬间发生的力;
    • VelocityChane:速度的变化。

AddRelativeForce()

  • 作用
    • 给刚体添加一个力,让刚体按 “自身坐标系” 进行运动。
  • 代码
    • Rigidbody.AddRelativeForce(Vector3, ForceMode);
    • Vector3:力的大小和方向;
    • ForceMode:力的模式 [enum]
      private Rigidbody m_Rigidbody;
      
      void Start()
      {
         m_Rigidbody = gameObject.GetComponent<Rigidbody> ();
      }
      
      void Update()
      { 
          if(Input.GetKeyDown(KeyCode.Z))
          {
             m_Rigidbody.AddForce(Vector3.forward * 1000, ForceMode.Force);
          }
        
      }

FixedUpdate()

  • 固定更新方法
    • 所有和物理相关的操作,代码都要写在 FixedUpdate() 方法体内。
    • 固定更新的时间间隔是0.02秒,1秒执行 50次。
      • Edit --> Project Settings --> Time 面板中的 Fixed Timestep 参数设置。
        void FixedUpdate()
        {
        
        }
  • 在Update() 中执行物理操作会出现卡顿的情况。

猜你喜欢

转载自blog.csdn.net/weixin_41232641/article/details/82144813