9月 032017
 

Unity 5.5からC#コンパイラがアップデートされたので、C# 6としてのコンパイルが可能です。

但し、標準ライブラリ側が.NET Framework 3.5相当のまま古いので、C# 6の言語機能をすべて使えるわけではありません。async/awaitなど新しいライブラリに依存する機能は使えず、シンタックスシュガーである文字列補間などは問題なく使えます。

そういった事情からか、Unity 5.5~5.6ではデフォルトでC# 4としてビルドされるようになっています。これをC# 6でビルドさせるように修正する方法をまとめます。

Continue reading »

9月 032017
 

これまでC#の安定ソートが欲しくて色々と検討していました。

アロケーションを気にしなければ、LinkedListについては各要素にインデックス振ったListを作ってSort()するのが速いという結果が出ていました。その実装をここにまとめます。List版もありますが、先の記事で検討したマージソートの方が速いので、Listではそっちを使ったほうがいいです。性能比較については前回の記事を参照。

Continue reading »

9月 032017
 

(2017/09/10 パフォーマンス比較にOrderByを追加。それに伴い、結論をやや修正)

ListとLinkedListの挿入ソートおよびマージソートを実装します。どちらも安定ソートです。

何を考えて実装したのか、長々と別の記事に書いてあるので、興味があればそっちもよろしくです。

マージソートを単純に実装するより、対象となる要素数が少ない時は挿入ソートのほうが速いので、挿入ソートに差し替える対応をします。なので、マージソートの実装がメインで、最適化の副産物で挿入ソートもあるよ、という感じです。

Continue reading »

9月 032017
 

Unityでゲームプログラムを書いていると、C#で気軽に使える安定ソートが欲しくなるのですが、これという機能が標準で用意されていません。

今更ソートなんて自前で実装したくないんですが、欲しいものがなければ作るしかない。実装までに検討した色々なことをこの記事ではまとめていきます。

実装したものは別の記事にまとめたので、そちらをどうぞ。

アルゴリズム系の実装コードって何故かほとんど可読性が低いですよね。主に変数名がやっつけすぎて理解に時間がかかります。バグの温床だと思うので、そのへんも私なりに読みやすくしています。

その点、これからいくらか紹介する.NETやMonoの実装はとても綺麗で理解しやすいです。

Continue reading »

4月 092017
 

タイトル通りなのですが、数日間ブログが閲覧不能になっていまして、今日まで気付きませんでした。
ご不便をおかけして申し訳ありません。

詳細な原因をつかむ前に直ってしまったので、若干腑に落ちてないですが、プラグインで内部エラー起こしてたっぽいです。pluginsディレクトリ内で更新日時が最も新しかったのがJetpackで、4月5日にアップデートしてたようです。最早、記憶にないけど。Jetpackを更にアップデートしたら解決しました。何なんだ。

アクセス解析を見ると4月5日からアクセス数がガクッと落ちてました。それでも若干のアクセスログがあったのはキャッシュかな。

時期は違いますが、前科があるようですね、Jetpack。便利なだけに困ったもんだ。

休日の一部をブログメンテに費やすと激萎えしますし、就職してからあまりこちらの面倒を見られないことを痛感します。おそらくアップデートが記憶に残らないほど流れ作業化して、そこから最終確認が抜け落ちてたのだと思います。

ひとまずは確認を怠らなければいい話なので、今後気をつけます。

2月 112017
 

普段Windowsを使っていて、隠しファイルは表示しているんですが、システムファイルは非表示にしてました。

そのせいで、Windows Media Playerが曲に埋め込まれているアルバムアートを、勝手に抜き出して同じディレクトリにシステムファイルとして縮小版を保存する、という挙動を勝手にしていることを見落としていました。

  • AlbumArtSmall.jpg
  • Folder.jpg

上記の2ファイルがシステムファイル属性で保存されます。こういう汚いファイルの散らかし方はいかにもMSだなぁ。

私はアルバムアートをfolder.jpgとして保存することがあって、それで上記ファイルと衝突して気が付きました(Windowsのファイルシステムではアルファベットの大小を区別しません)。

そんな感じで実際に不都合が生じているので、対処します。

Continue reading »

12月 102016
 

つい最近、このブログで過去に掲載したソースコードの利用に関して問い合わせがありました。ご丁寧にありがとうございます。そんな質問来るとは思いませんでした。

大したものは書いてないにせよ、利用条件は明示しておいたほうが使いやすいこともあるのかなと思いました。ので、簡単にルールを決めました。

  • ライセンスの明示していないソースコードについては、
    • 他の条件を満たす限り、複製・改変・再配布は自由にしてよい。利用報告は不要。
    • 基本的に権利表記は不要だが、ほぼオリジナルのままの状態で、著作者を偽って再配布することは禁止とする(本サイト掲載のものがオリジナルであることを保証するため)。
      • 例えば、本サイト掲載のソースコードを組み込んだソフトウェアのソースコードを公開したいときは、該当部分について、著作者(wizaman)や当サイトへのリンクをどこかわかる場所に記載するのが無難。
    • 無保証のため、自己責任で利用すること。

これは現段階で考えたものですので、あとで変える可能性はあります。「このサイトについて」にて、最新の条件はまとめていきますので、実際に利用する時はそちらを参照してください。

上記の条件はちょっとだけ文面が長くなっちゃいましたが、考えていることは、著作権表記と無保証を示すMITライセンスを参考にしています。ただ、ちょっとしたコードを利用するのに著作権表記が必ず必要というのは使いにくいので、そのためのあれやこれやを定義した感じです。

ソースコードの公開さえしなければ特に制限はないです。が、ソースコードを公開する場合には、こちらがオリジナルであるということが誤解されて面倒事に発展するのは避けたいので、そこだけ誤解のないように配慮することをお願いしています。権利主張より自衛が狙いです。

Top