[Unity3D] 用 C# 代码控制重力方向
生活随笔
收集整理的這篇文章主要介紹了
[Unity3D] 用 C# 代码控制重力方向
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在 unity 引擎中, 修改重力方向的方法一般有三種:
1: 在 項目設置 中修改全局重力方向
左上角菜單欄 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: 修改單個物體的重力方向
這個嚴格來說的話并不科學, 過隨意修改重力方向好像本來就不科學, 但是也就是說我們無法通過直接修改跟重力相關的函數的變量來達到控制重力方向的目的, 但是我們可以通過修改物體的受力方向來模擬物體受到了不同方向的重力的影響,,雖然說起來有點拗口, 不過做起來也是很簡單的
首先, 如上圖, 我們去把Gravity 中的 X Y Z 三個方向的重力全部設置為 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));
}
}
}
總結
以上是生活随笔為你收集整理的[Unity3D] 用 C# 代码控制重力方向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aws s3仅允许cloudfront访
- 下一篇: ios点击推送闪退_苹果推送iOS 14