ドジョウが立つ・水槽の上部にいたがる原因

まだ買い始めてから一年程度の時のこと

ある日から、ドジョウが壁沿いに立ち上がったようにじっとしていたり、

上の方にある稚魚ネットと壁の隙間に入りたがる事が増えた。

5匹中3匹がネットの間に挟まるようになり、最初はじっと並んでいたり、立った姿の愛嬌にかわいいなぁと

眺めていたのだが、この現象が起きている時はドジョウからのあるサインだった事が判明する。


結果から言うと、水質がドジョウにとってよろしくない時に必ずこのような行動を取る事がわかった。

上記のドジョウを含め半数以上の生体は数日後、エロモナスにやられ

数時間のうちに充血から顔に穴が空きはじめあっという間に死んでしまった。

あの恐ろしいスピードで変化がわかる状況を目の当たりにしてからというもの、

上記のサインが出ていないか必ずチェックするよう心がけている。


立ち上がり→危険

上部いきたがり→かなり危険

と認識し、すみやかに水の半換えを数日してあげましょう(すみやかにといいつつも温度は合わせましょう)

それ以来、エロモナスで落ちる事はなくなりました。


uGUI でドラッグやクリックされている間を判定する

uGUI のコンポーネントをドラッグやクリックしている最中かを判定したい時がある。

そんな時は、以下のようにすれば検知できるので、あとはコール先でフラグを立てるなりすればよい。

[方法]

・検知したい uGUI コンポーネントに「Inspector」から「AddComponent」で「Event>EventTrigger」を付与
 (Scriptから付けても構わない)

・Inspector の 「AddNewEventType」から取りたいタイミングを選択し、イベント発生時にコールしたいメソッドを設定する

Parent of RectTransform is being set with parent property. の警告対策

Unity5.5f3 にて uGUI を使用していると以下の警告が出た。


Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.



[原因]
uGUI のパーツは「Transform」ではなく「RectTransform」をコンポーネントに持っている。

それゆえ、普段のように

uguiObject.transform.parent = newParentObj;

とかしてしまうと「transform」で parent を決めるな!

RectTransform使え! と怒られるのである。




[対策]

警告の通り、

RectTransform を取得した上で「SetParent」メソッド+第二引数に「false」を設定して解決。

RectTransform rt = uguiObj.GetComponent();
if( rt )
rt.SetParent( newParentObj, false );