最近Unityの勉強を始めました。
加速度センサを使ってカメラを動かすアプリの制作中です。
###前提・実現したいこと
以下のような作りになっております。
**カメラを動かすクラスA
・加速度とジャイロの値を取得して、カメラをあれこれ
加速度、ジャイロの値やFPSなどを表示するためのクラスB
・加速度とジャイロの値とFPSの値を取得してuGUI Textを利用して表示**
いずれ加速度の数値表示は削除するので今のまま直接クラスAで加速度の計算をしてしまってもいいのですが、コードをすっきりさせたいのと
今後も別のスクリプトに記述した関数や変数を呼び出したいといったことが多く出てくるかと思いますので、ここで覚えておきたいです。
現状は期待する動きにはなってはいるのですが、
前述した通りコードを整理している途中でして、加速度やジャイロ取得の値を2度記述している箇所を修正したいと思っています。
###試していること
クラスCを作成
・加速度を取得して加工するメソッド(accel)
・ジャイロの値を取得して加工するメソッド(gyro)
・FPSの値を取得して加工するメソッド(fps)
を作り、それをクラスA、Bで呼び出して使う。
例えばクラスCに
public Vector3 accel(){ Vector3 kasokudo = 加速度を取得; // 加工 return kasokudo; }
クラスAに
C classC; void Update(){ Vector3 test = classC.accel(); // **** //------略----- }
のような形で書いてみたりしています。
###発生している問題・エラーメッセージ
// ****の箇所で
NullReferenceException: Object reference not set to an instance of an object
というエラーが出てしまい、いまいち動きません。恐らく、classCがNullとなってしまっているためにエラーが出ているのだと推測しておりますが、
どのようにして修正を行えばよいのかわかりません。
調べてみてもインスタンス化辺りがいまいち理解できずにいます。
上記のことがやりたい場合はどのような記述を行えばよろしいのでしょうか。
すごく初歩的な質問かと思いますが、ぜひ宜しくお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
言語はC#です。
回答2件
あなたの回答
tips
プレビュー