UltraVNC で Mac から Windows につないだ時に「全角/半角」を簡単に切り替える設定方法

【追記】
仕組み上、WindowsホストのVNCならどれでも似た事はできるはず。


【問題点】
・Windows10Home に UltraVNC Server を入れて、Mac(私の場合、MacBookAir) の Finder からサーバに接続でつないだ時、

全角半角キーに該当するキーがないため、かなキーで全角に切り替えていたが、今度は英数キーを認識しないために半角に戻せない。


【解決方法】
※すべてサーバ側の Windows で行います。

・サーバ側の Windows に Google日本語入力をインストール
↓
・タスクバーのGoogle日本語入力のアイコンを右クリックし、プロパティを選択(「A」または「あ」となっているアイコン)
↓
・「一般」タブの下の方にある「キー設定の選択」の右の「編集」ボタンを選択
↓
・モード欄が「入力なし」、入力キーが「Hiragana」の行を探す
↓
・上記のコマンドを「IMEを無効化」に設定してOK、戻り先もOKを押してGoogle日本語入力ウインドウを閉じる
↓
・UltraVNC Server の Admin Properties で「Alternate keyboard method」にチェックしてからホストする



これで「かな」ボタンで全角/半角キーと同様の切り替えが行える。

Unity終了時に必ずクラッシュするのを解決する

なんだか最近、Unityを終了する時に必ずクラッシュするようになったなぁと思ったら、

VSCodeプラグインが入っていると落ちる事が分かった。

Unity2017.x系どれでも起きている。おそらくUnity5.xでも起こると思う。

解決方法は、Plugin/VSCode.csを開き、

static void FixUnityPreferences()内にある

if ( EditorWindow.focusedWindow == null)
return;

を


if ( !EditorApplication.isPlaying || EditorWindow.focusedWindow == null)
return;

とすれば直る。

スプライトやテクスチャの端に余計な1ドットの線が入る訳

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!

[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回成功

つまり、ミナミの水合わせで重要なのは強めのエアレーション! 
と思いたい。

※自身でしか試していないので、真似して落ちても責任は取れませんのであしからず。