プロが教える店舗&オフィスのセキュリティ対策術

Unityでジャンプする機能をjavascriptで実装しようと下のコードを書いたのですがずっと上に行き続けます。
コード▼
#pragma strict
function Update () {
if (Input.GetKey(KeyCode.LeftArrow)){
transform.rotation.y += -0.01;
}
if (Input.GetKey(KeyCode.RightArrow)){
transform.rotation.y += 0.01;
}
if (Input.GetKey(KeyCode.UpArrow)){
transform.Translate(transform.forward * 1);
}
if (Input.GetKey(KeyCode.DownArrow)){
transform.Translate(transform.forward *- 1);
}
 //ジャンプ機能
if (Input.GetKeyDown(KeyCode.Space)){
GetComponent.<Rigidbody>().AddForce (Vector3.up * 100);
//ジャンプ機能END...
}
}
といった感じです。Unityは最新版です。
if (Input.GetKeyDown(KeyCode.Space)){
transform.Translate(0,5,0);
}
というコードを書いていたのですが、上にワープして、落ちるだけで、ジャンプしてるように見えなかったので、上のようなコードにしたのですがうまくいきません。
初心者なので、至らない部分もあると思いますが、回答よろしくお願いします。

A 回答 (1件)

あまり詳しくないので確証を持てませんが、回答が付いていないので回答します。



GetComponent.<Rigidbody>().AddForce (Vector3.up * 100);
この部分を
GetComponent.<Rigidbody>().AddForce (Vector3.up * 100, ForceMode.Force);

GetComponent.<Rigidbody>().AddForce (Vector3.up * 100, ForceMode.Acceleration);

GetComponent.<Rigidbody>().AddForce (Vector3.up * 100, ForceMode.Impulse);
に変えて、挙動の違いがあるか試してみる事をお勧めします。

* 100 という値が質量に対して大き過ぎる可能性もあるので
1桁の数字に変えておいた方が良いのかもしれません。

それでもワープする事が収まらないならば
Hierarchy上のRigidbody本体のInspector上の設定をよく解らずに弄り狂っているかもしれませんので
現在のRigidbodyを一旦削除し作成し直し~設定~関連付け等をやり直してみるか、
新規プロジェクトで最初から全てやり直してみるのも1つの手だと思います。
(慣れない頃は上手く動かないとあれこれ余計なものを弄って余計パニックになりがちです。)


また、私も最初はjavascriptを使っていましたが、
C#の方が困った時に調べて見つかる情報が圧倒的に多いので
解らないことが多ければ多いほど早めにC#に切り替えた方がいいのではとも思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!