質問: transform.GetComponent(); RB.AddForce(new Vector3(ShotX, 0.0f, ShotZ), ForceMode.Impulse); Gctrl.GetComponent().DebugText(ShotX.ToString()+":"+ShotZ.ToString(),1); } ``` 最後の行にデバッグ用のテキストを出力する処理を追加しているのですが こちらは問題無く動いている様なので動いてないのはAddFoce関数のみの様です。 元々実機上でも問題無く動作していたのですが この関数を含むオブジェクトを Resources.Load関数でシーンに読み込む処理を加えた際に Unityエディタ上でも実機上でも動作しない現象が発生した為、 元の状態まで戻したのですが前述した様な状態に成っています。 因みにGameObject.SetActive(false)で一度オブジェクトを非アクティブにした後 GameObject.SetActive(true)でアクティブに戻した際にも同様に AddFoce関数が動かない状態に成るのですがこれは通常の動作なのでしょうか? どなたか似たような症状を経験された方や、解決方をご存知の方が居ましたら ご教授お願い致します。
回答: 解決しました。 問題は前述の関数とは別の箇所で オブジェクトの速度が一定以下になった際にRigidbodyを強制的にスリープさせる処理を 行っていたのですが、開発中は初速を得た後に動いていた処理が ビルドやインスタンスの生成、アクティブ状態の変更を行った際に順序が整理され逆転し 初速を得られない状態に成っていたのが原因でした。 処理を行うタイミングを明示的にする事で解決致しました。 初歩的な見落としでお騒がせしてしまい申し訳ございませんでした。