日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

[Unity3D] 用 C# 代码控制重力方向

發(fā)布時間:2023/12/15 综合教程 21 生活家
生活随笔 收集整理的這篇文章主要介紹了 [Unity3D] 用 C# 代码控制重力方向 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在 unity 引擎中, 修改重力方向的方法一般有三種:

1: 在 項目設(shè)置 中修改全局重力方向

  

左上角菜單欄 Edit --> Project Settings --> Physucs

修改 Gravity 中的 X Y Z 的值即可做到控制全局的重力方向, 默認情況下的 Y 軸的值為 -9.81

2: 通過代碼的方式修改全局的重力方向

public class GravityController : MonoBehaviour {

    public bool flag = false; 
    private Vector3 gravity;
 
    void Start() {
        gravity = Physics.gravity;
    }

    void FixedUpdate() {
        Physics.gravity = gravity;
        if (flag) {   // 修改重力方向
            gravity.x = 0;
            gravity.y = 9.81f;
            gravity.z = 0;
        }else{
            gravity.x = 0;
            gravity.y = -9.81f;
            gravity.z = 0;
        }
    }
}

3: 修改單個物體的重力方向

這個嚴格來說的話并不科學, 過隨意修改重力方向好像本來就不科學, 但是也就是說我們無法通過直接修改跟重力相關(guān)的函數(shù)的變量來達到控制重力方向的目的, 但是我們可以通過修改物體的受力方向來模擬物體受到了不同方向的重力的影響,,雖然說起來有點拗口, 不過做起來也是很簡單的

首先, 如上圖, 我們?nèi)グ袵ravity 中的 X Y Z 三個方向的重力全部設(shè)置為 0 , 然后在你想要修改重力受力方向的物體上加如下程序即可

public class GravityController : MonoBehaviour {

    public bool flag = false;

    void FixedUpdate() {
        if (flag) {
            Rigidbody rigidbody = gameObject.GetComponent<Rigidbody>();
            rigidbody.AddForce(new Vector3(0, 9.81f, 0));
        } else {
            Rigidbody rigidbody = gameObject.GetComponent<Rigidbody>();
            rigidbody.AddForce(new Vector3(0, -9.81f, 0));
        }
    }
}

總結(jié)

以上是生活随笔為你收集整理的[Unity3D] 用 C# 代码控制重力方向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。