[解決済み] AddForceが動作しない Unity
2022-01-31 14:36:41
質問
を使ったことはありません。
isKinematic
プロパティがあり、オブジェクトには8つのホイールコライダーがあり、オブジェクトの質量は20000です。
あらゆる組み合わせを試しました。力を加えるのに、x y z を使いました。
Obj.GetComponent.<Rigidbody>().AddRelativeTorque( V*(spd)*1000, 0,0);
,
しかし、どれもうまくいきません。しかし、どれもうまくいきません!飛行機はただ静止しているだけです。
何が問題なのだろう?
以下は私のコードです。
var Obj : Rigidbody;
var zrotForce : int = 1;
var MaxRot : int = 90;
var MinRot : int = -90;
var rotupForce : int = 1;
var speed : float;
var speedincrease : float;
var speeddecrease : float;
var Maxspeed : int;
var Minspeed : int;
var takeoffspeed : int;
var lift : int;
var minlift : int;
var hit = false;
function Start () {
InvokeRepeating("Speed", .1, .1);
}
function Speed(){
if (Input.GetKey(KeyCode.Space)){
Mathf.Repeat(1,Time.time);
speed=speed+speedincrease;
}
if (Input.GetKey(KeyCode.LeftAlt)){
Mathf.Repeat(1,Time.time);
speed=speed-speeddecrease;
}
}
function Update () {
var spd = Obj.velocity.magnitude;
//Obj.GetComponent.<Rigidbody>().AddRelativeForce(0,0,-speed);
H=(Input.GetAxis ("Horizontal"))*zrotForce;
if (H){
Obj.GetComponent.<Rigidbody>().AddRelativeTorque(H*(spd/100), 0, 0);
}
V=(Input.GetAxis ("Vertical"))*rotupForce;
if (V){
Obj.GetComponent.<Rigidbody>().AddRelativeTorque( V*(spd)*1000, 0,0);
}
if(Maxspeed<=speed){
speed=Maxspeed;
}else{
speed=speed;
}
if(Minspeed>=speed){
speed=Minspeed;
}else{
speed=speed;
}
if (speed<takeoffspeed){
Obj.GetComponent.<Rigidbody>().AddForce(0,minlift,0);
}
if(speed>takeoffspeed){
Obj.GetComponent.<Rigidbody>().AddForce(0,lift,0);
}
if (Obj.GetComponent.<Rigidbody>().rotation.z>MaxRot){
Obj.GetComponent.<Rigidbody>().rotation.z=MaxRot;
}
if (Obj.GetComponent.<Rigidbody>().rotation.z<MinRot){
Obj.GetComponent.<Rigidbody>().rotation.z=MinRot;
}
}
解決方法は?
力またはトルクが働かない原因は2つあります :-)
1)その 剛体の質量が大きすぎます。 . だから、あなたはどちらかをする必要があります。 質量を変えるか、力を大きくするかです。例えば、質量が1ユニットの物体を動かすのに必要な力は、100~200の間でなければならず、要件によってはそれ以上かもしれません。
2) リジッドボディがキネマティック宣言されている場合、スクリプトまたはアニメーションを使用してのみその変形を変更することができます。 もしRigidbodyが重力の影響を受けず、浮遊し続けたい場合は、isGravityとisKinematicのチェックを外してください(これにより、オブジェクトは空中に保たれ、必要に応じて力またはトルクで影響を与えることができます)。
関連
-
[解決済み】SecurityError: オリジンを持つフレームがクロスオリジンフレームにアクセスするのをブロックした
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] jQuery の jquery-1.10.2.min.map が 404 (Not Found) を誘発する。
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] JavaScriptの.trim()がIEで機能しない
-
[解決済み】JavaScriptで定義されていない変数を確認する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み】module.exports "モジュールが定義されていません"