【開発日記】フットバ出前

Unity1week「あつい」にて制作。
作品URL:https://unityroom.com/games/huttobademae

やりたいことはいろいろあったが、結果的にはかなりオミットすることになった。
一番ボトルネックになったのは、パラメータの強化システム。ここの解決に時間を食った。
具体的に言うと、あるスクリプトで定義した変数を、ほかのスクリプトで呼び出し、変更し、再定義すること。
基本的にGetter/Setterを使うことは分かった。

ほかのスクリプトから変数の値を参照する
https://qiita.com/Teach/items/8d1cdb90a3b533707c9a

シーンをまたいでデータを参照する

 ※FindObjectOfTypeを利用してGetterを使うやり方はできない?⇒シーンに存在するオブジェクトから探してくるっぽい

が、ボタンオブジェクトにくっつけたスクリプト内でGetter/Setter関数を使ってもうまくいかない。
public staticな変数を取得、変更しても、同じ変数名で中身が異なるものが複数存在するような状況になってしまった。

tmpPowerValueは、別スクリプトで定義したパワーの値をGetterで取得して格納している。仮に10が入っているとして、これを実行すると、中身が10のtmpPowerValueと11のものが同時に存在するような状況に。
解決策としては、tmpPowerValueもpublic staticなものとして宣言することで意図するような挙動となった。残念ながら理由はわからない。おそらく、変数の寿命の問題だろうと考えている。このメソッドの中で変更した値が、クラス全体で共有されてないとかそんな感じ。クラス変数と、メソッドの中でしか有効でない変数について、勉強する必要がありそうだ。ということで下記を読んでみる

苦しんで覚えるC言語「変数の寿命」
https://9cguide.appspot.com/12-01.html

コメントを残す

メニューを閉じる