Unity のスプライトや、ゲーム開発においての初心者あるある。
主に2Dゲーを作ろうとしたときに、スプライトの端に隣のテクセルが見切れてしまうような現象に出会ってしまった場合、
テクスチャのサイズをPOW2(2累乗サイズ)にしていないかを確認しよう。
1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024 / 2048 / 4096 など
POW2のサイズに余白を足してでもテクスチャを広げてみよう。
浮動小数が割り切れる数になるため、端数がでて変な見切れは発生しなくなる。
JsonUtility で Dictionary を使うとても簡単な方法
シリアライズの直前とデシリアライズ直後を拾えるインターフェースがあるので
それを加えた専用Dictionaryクラスを作ればよい。
If you want use Dictionary in JsonUtility.
Than make wrapper class. It is very simple!
それを加えた専用Dictionaryクラスを作ればよい。
If you want use Dictionary in JsonUtility.
Than make wrapper class. It is very simple!
[System.Serializable] //================================================================== /** * @brief Dictionary for JsonUtility */ //================================================================== public class Dict: Dictionary , ISerializationCallbackReceiver { [SerializeField] private List keys = new List (); [SerializeField] private List vals = new List (); public void OnBeforeSerialize() { keys.Clear(); vals.Clear(); var e = GetEnumerator(); while ( e.MoveNext() ) { keys.Add( e.Current.Key ); vals.Add( e.Current.Value ); } } public void OnAfterDeserialize() { this.Clear(); int cnt = ( keys.Count<=vals.Count )? keys.Count : vals.Count; for (int i=0; i<cnt; ++i ) this[keys[i]] = vals[i]; } } // あとはDictionaryをDictに置き換えるだけで簡単にJsonUtility対応になる // You only be replace Dictionary to Dict, then Easy use JsonUtility with Dictionary! public class DictTest : MonoBehaviour { Dict<string,int> test = new Dict<string, int>{ { "ABC", 123}, { "DEFGHI", 456}, { "JKL", 7891011} }; string s = string.Empty; // Update is called once per frame void Update () { if( Input.GetKeyDown(KeyCode.T) ){ s = JsonUtility.ToJson(test); Debug.Log("<color=#FF0000>" + s + "</color>"); } if( Input.GetKeyDown(KeyCode.F) ){ var d = JsonUtility.FromJson<Dict >(s); foreach( var _ in d ){ Debug.Log("<color=#00FFFF>[" + _.Key + "]</color>" + _.Value); } } } }
購入直後のミナミヌマエビの死亡率
ミナミヌマエビを購入し、いざ水槽にお引っ越ししようと思ったら
水合わせをしっかりじっくりしたはずなのに弱ったり死んでしまった。そんな失敗経験と成功例をメモ。
私の過去失敗例:
×引越し先の水槽の水を、購入した袋にスポイトでゆっくり少しずつ、かつ時間をかけて何度も行って水を合わせようとした
×水温を合わせてから、稚魚ケースにエビを移し、メイン水槽の水をオートで徐々に入れ替えた
→いづれも引っ越すまでに落ちることはないが、引越し後一日目から気づくと数が減っていたり落ちていた
これによって水を徐々に入れ替える方式は落ちる確率が高いように感じた
→上記は計3回ほど失敗
エアレーションは袋やケースに直にしていたため、やや控えめの弱さだった
成功例:
○とりあえず袋の水をバケツに全部移して強めにエアレーションを炊く
→水温を合わせた汲み置きの水でかさ増ししてエアレーションしつつ、モスの破片を少し入れておいた
→20匹が一ヶ月後もすべて生存。2回中2回成功
つまり、ミナミの水合わせで重要なのは強めのエアレーション!
と思いたい。
※自身でしか試していないので、真似して落ちても責任は取れませんのであしからず。
水合わせをしっかりじっくりしたはずなのに弱ったり死んでしまった。そんな失敗経験と成功例をメモ。
私の過去失敗例:
×引越し先の水槽の水を、購入した袋にスポイトでゆっくり少しずつ、かつ時間をかけて何度も行って水を合わせようとした
×水温を合わせてから、稚魚ケースにエビを移し、メイン水槽の水をオートで徐々に入れ替えた
→いづれも引っ越すまでに落ちることはないが、引越し後一日目から気づくと数が減っていたり落ちていた
これによって水を徐々に入れ替える方式は落ちる確率が高いように感じた
→上記は計3回ほど失敗
エアレーションは袋やケースに直にしていたため、やや控えめの弱さだった
成功例:
○とりあえず袋の水をバケツに全部移して強めにエアレーションを炊く
→水温を合わせた汲み置きの水でかさ増ししてエアレーションしつつ、モスの破片を少し入れておいた
→20匹が一ヶ月後もすべて生存。2回中2回成功
つまり、ミナミの水合わせで重要なのは強めのエアレーション!
と思いたい。
※自身でしか試していないので、真似して落ちても責任は取れませんのであしからず。