2016-12-21 5 views
1

私は最近Unity(5.4.1f1から5.5.0f3へ)をアップデートしましたが、今では私のゲームでRigidbody2Dにいくつかの問題があるようです。Rigidbody2Dボディタイプをコード内で「静的」に設定していますか?

だから基本的に私は私のゲームオブジェクト(プレイヤー)非難治性と物理学のコントロールから取り出しを行うために、このコードを使用するために使用される:

Player.GetComponent<Rigidbody2D>().isKinematic = true; 

これはユニティのアップデート後に正常に動作し、そして時にされていませんプレイヤーをキネマティックに設定すると、プレイヤーは「ダイナミック」(ただしコントロールできない)時と同じ方向に動き続けます。注:これはUnity 5.4.1f1のケースではありませんでした。

私はRigidbody2Dコンポーネントに入り、変更されたことに気付きました。 How my old Rigidbody2D looked likeHow my new RigidBody2D looks like now

「動」オプションは、「ボディタイプ」オプションに移動し、実行時にそれが「.isKinematic = true」の文字列を使用して動に体の種類を変更しない(それはとして正常に動作していないました前に述べた)。

私はボディタイプの値を静的に手動で変更しようとしましたが、これは完全に機能していました。

私の質問はです。コード内のボディタイプを静的に変更するにはどうすればよいですか? (?とキネマティクス)剛体の(「isKinematic」など)、および何Rigidbody2Dへの変更で起き

+0

この質問に対する答えはUnityクラスライブラリの知識を必要とするようですので、[tag:unity3d]タグを追加することを検討してください。 –

+0

@ O.R.Mapperこんにちは。まだまだUnity/C#とその用語の新機能なので、欲しいとは思っていませんか?私が知る限り、私は "Unityクラスライブラリ"を使用していません。 gameobject "Player"はタグ付けされていませんが、 "Public GameObject Player"(Unityのコンポーネントボックス "Player"に描画されます)を介してコード内で制御されます。これはあなたが要求しているものですか?または私は意味を作っていません。事前にお礼します –

+1

@KristofferRasmussen彼はあなたの質問がユニティ固有であることを意味するので、unity3dでタグ付けします(これはScottがあなたのためにしたものです:)) –

答えて

1

bodyType propertyあなたが探しているものはおそらくです:

Player.GetComponent<Rigidbody2D>().bodyType = RigidbodyType2D.Static; 

それはその何かを言及する価値がありますそうでなければかもしれない Unityのマイナーバージョン間のアップデートがそれを壊したものであれば間違っているかもしれませんが、私はあなたのプロジェクトをもっと見ることなく確実にわかりません。

+0

これは完全に動作しています!ありがとう。私のコードで何かが間違っていると確信していますが、今のところこれはうまくいくでしょう。 –

+0

@KristofferRasmussen問題ありません!もしあなたがそれがアップデートだけだったと確信していれば、それはUnityのバグか、おそらくUnityを期待していない方法で使用していることでしょう。それは心配するものではありません - これは私にもいつも起こります。私はUnityをいくつかの8年以上使用しています:)静的な剛体が何であるかを理解する限り、それはあなたが望むものです。 –

関連する問題