p_chinのおっぱいブログ

UnityとPerlなど

UnityProject内でのコードレビューとComponent設計をする時に気をつけてる事

このエントリはUnity Advent Calendar 2015の6日目の記事になります。 前日のエントリは@hecomiさんのUnity で実行時にコードやコマンドを補完つきで実行できる uREPL を作ってみたでした。 デバッグがカッコ良くなるのもイケてますし、用途としてはコードを…

関数の宣言まわりで地雷踏んでUnityのmonoでInternalCompilerErrorが出てしまったのを解決した話

問題 以下の様なコードをUnityのmonoでコンパイルしたらInternalCompilerErrorを出してしまった。 コード public class Bomb { public void Explosion(float radius = 10f){} public void Explosion(Vector3 worldPos, float radius = 10f){} } public class…

BitmapFontの更新をSceneからの参照を保ったまま更新する手順

ある程度画面を作成してきたところでBitmapFontの更新があって、SceneからのUIFontの参照を保ったまま更新したいと思ってて悩んで解決に至ったのでメモ。 ※UIFontの公式の機能を使ってるだけです。 BitmapFontGeneratorで更新したいフォントデータ(.fnt, .pn…

Unityの4.2.2から変わってる俺得そうな変更をまとめた

なんかUnityの最新versionを使ってゲーム作りたかったり、そろそろiOS8のよさげなfeatureが出て運用中のタイトルのUnityVersionupもありそうだなと思ってたので 普段仕事で使ってるUnity4.2.2から最新までの変更を見てたので、まとめる。 ちなみに当方、Edit…

フロントエンジニアだけどYAPC::Asia2014に行ってきたので特に楽しかった講演とその感想

今年は1年以上、業務でPerlを触ってないけどまだ自分でも楽しめそうなセッションがあったので、主に 業務効率化 や リリース管理 などの話題に絞って講演に参加してた。 印象に残った講演と、その感想を書いて行く 1日目 完成されたシステムなどない。完成さ…

湯ナイト 2014 summerというイベントに行ってきた

湯ナイトSummarに行って来ました。 日本Androidの会Unity支部主催のイベントでした。 FaceBookグループを学生時代に見つけてからカジュアルに入ってずっとROM専だったけど、今回の湯ナイトのイベントもたまたま見つけて楽しそうだから参加してみた。 2泊3日…

UnityEditorで選択したファイルのGitHubのurlを開くEditorTool書いた

最近良く複数人で同じコードをチェックして問題のある部分を共有する事とかあって、 githubからでポチポチ目的のファイルまでたどり着くの頑張ったり UnityEditorからTerminalへファイルをD and Dしてpathを出して、それをコピペしてgithubのurlに貼付けて目…

良く切り替えるScriptDefineSymbolをEditorToolからサクっと切り替えられると便利

結構デバッグモードとかをDefineSymbolで制御してて、Edit->ProjectSettings->Player->OtherSettings->ScriptingDefineSymbolに文字列を直打ちして切り替えるの面倒だし間違えやすい。 なのでプロジェクト内で割と切り替える事の多いDefineSymbolGroupにEdit…

開発環境じゃなかったらLogを出さなくする仕組み

ストアに申請するビルドだけLog出さない様にしたりとか、できる namespase無しのこのクラスをプロジェクトに置けば、こっちが優先的に参照される 開発環境じゃなかったらLogを出さなくする仕組み

testflightのアップロードAPIにcurlでPOSTすると、レスポンスに'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)が返された問題あったけど治ってた

今日になってから、いきなりこのレスポンスが返される様になった気がする。 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) 被害 アプリケーションバイナリ自体はアップロード出来ていて、実機にinstallしても、特に問…

Unityのversionによって起動時にダイアログで警告を出すEditorScript書いた

versionが足りないと、以下の様な表示を出す様にした 取り急ぎ、version比較条件書き換えて表示させた 必要なAPI Unity起動時に、[InitializeOnLoad]Attributeを付けたクラスのコンストラクタを呼んでくれる。 InitializeOnLoadのリファレンス あと、Unityの…

TestFlightにapkをアップロードする時にInfo.plistやAndroidManifestに日本語が含まれてるから失敗した話

今回はアプリ名を日本語に設定(UnityのPlayerSettingsのProductName欄で)したapkをTestFlightのAPIをcurlコマンドで叩いてアップロードしようとして、その事件が起きたのでメモ 具体的にどういう失敗なのか? 試しにAndroidManifestに日本語が含まれてるapk…

rubyファイルを実行すると、shebangの書いてある1行目でInvalid charエラーが出た時の対処

Xvideos.rb:1: Invalid char `\357' in expression Xvideos.rb:1: Invalid char `\273' in expression Xvideos.rb:1: Invalid char `\277' in expression 上記の様なエラーが出る。 原因は、rubyやshファイルをBOM付きutf-8で保存してしまうと、何故かsheban…

foreachでコレクションを回す時に、回してるコレクションを操作してしまった時に起こるinvalidOperationException~

c#

なんか、foreachの部分でエラーが出てびびった // 実際にはhogeList.Clear使えばいいけどforeachで全要素を消したい時 foreach (hoge in hogeList) { hogeList.Remove(hoge); } これをやると、invalidOperationExceptionが投げられる invalidOperationExcept…

みなとみらいのドッグヤードで行われたプロジェクションマッピングみてきた

[イベント公式サイト] http://www.yokohama-landmark.jp/web/pickup/special/13dockyard_pm/top.html なんか、みなとみらいの過去から未来の建造を船に乗って冒険する感じの演出だった。 整理券が各時間帯毎に500枚まで配られてる。 その整理券が若い番号な…

UnityのAssetBundleのCacheについて

Cacheしてくれる条件 WWW.LoadFromCacheOrDownload(url, version);でurlに配信されているAssetBundleを取って来れるけど、どの条件でCacheを使うのか分からなかった。 どうやら、AssetBundleのversionで指定した物が以前にDownLoad済みで、且つCacheもストレ…

xcodebuildコマンドを打つと/Developer/usr/bin/xcodebuild' (No such file or directory)と出る時

しかしwhich xcodebuildすると/usr/bin/xcodebuildにあるから意味分かんなかった。 対処法 なんかXcode.app以下のxcodebuildを見てるみたいなので、sudo xcode-select -switch /Applications/Xcode.app/Contents/Developerすれば、Developperディレクトリ以…

(5)先週の小さい技術メモを全部まとめた(perl,unity,c#)

perl ファイル演算子便利 http://www2u.biglobe.ne.jp/MAS/perl/ref/filetest.html 適切なファイル情報が引けるので、existなら-eに代用出来る unity Object.DestroyImmediate 該当のオブジェクトだけでなく、そのオブジェクトが参照してるAssetも削除してし…

WebPlayerでtwitterの投稿ページを開く

twitterの投稿ページを投稿する文字指定して開く というのを試して盛大にハマッたのでメモ。 結論としては、OpenURL関数使うのが一番いい。 jsとcsのURIエンコーディング問題 OpenURL関数とExternalEval関数 WebPlayerのデモ jsとcsのURIエンコーディング問…

perlで時間を固定するの処理で色々ハマった時のメモ

クライアントサイド(Unity)の時間依存の処理(2013-07-10〜2013-07-20までにログインしたら報酬プレゼントとか)のテストを書きたかったので、サーバの時間を固定する処理が欲しくて書いた時に悩む事が多かったのでメモ BEGINEブロックでCORE::GLOBAL::timeな…

Unity終了時にSaveされてないAssetがあった時の確認画面を分かりやすくする方法

SaveしてないAssetがある状態でUnityを終了させようとすると、「saveしてないぞ!」っていう確認のdialogが出るは皆さんご存知だ。 これをもっと見やすくする方法があった ただ単にUnityのPreferences(cmd+,)のGeneralにある、Verify Saving Assetsをtrueに…

(4)先週覚えたけどブログにする程ボリューム無いから全部まとめてメモ

perl Data::Validatorの、hashで引数渡さなくても良いStrictSequenceというのもある http://search.cpan.org/~gfuji/Data-Validator-1.03/lib/Data/Validator.pm#___top リファレンスの例文 sub hoge { state $rule = Data::Validator->new( foo => 'Str', )…

Mouseを少し使ってみた

初めてMouseを使ったクラス作ったりしたので、その覚え書き 多分ドキュメント読めばOKな内容だ。 使用例 package Fugu::Base; use Mouse; #Mouseのコード書くぞ(><) has life => ( is => 'rw', #get,setを許可 isa => 'Int', #Validateもしてくれる required…

perlでメソッドや関数を作る時に気をつけたい事のメモ

最近一つの機能をガーッと実装して、気付いたら分かりにくいコードを量産してたので、下記に今後から気をつけたい事をメモる そもそも関数にする理由 関数名の先頭にアンダースコアを付けて外部クラスから呼ばれたくないアピールできる 複雑な処理をする場合…

tmuxのコマンドモードのkey-bindをC-mにして死んだ

今朝、「なんかtmux上だけENTER効かないんですけどー」ってなってた CR = C-m, LF = C-jに標準で割り当てられてる だからC-mにコマンドモードのkey-bindに割り当ててたらENTER押せなかった まとめ テストに出るらしい

(3)先週覚えたけどブログにする程ボリューム無いから全部まとめてメモ

Tool ILSPAY http://sourceforge.net/projects/sharpdevelop/files/ILSpy/ DLLをデコンパイルするツール duコマンド サーバ内で使うと一時的に負荷がかかるのであまり良くない http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230748/ ディレクトリ内…

n+1問題を体験しました

ORM使ってて、便利で余裕キメてたらn+1問題を起こしてた。 n+1問題とは 1回目 のselectで、あるテーブルのレコードの集合を取ってきて、更にまた別のテーブルから先ほど取得したレコードデータ使用して n回 selectクエリを発行してしまう現象だ。 うまく説明…

エラーのハンドリングはコントローラーで

MVCパターンを利用したフレームワークのArkとか使ってると、基本的にModelで出たエラーをControllerの、例えばhoge/errorというアクションに渡してクライアントにエラー文を送ったりする。 Modelでエラーを丸め込んで投げちゃうのは良くない 以下の様な感じ …

MySQLのカラム型の使い分けについてなど

DB

db設計する時にカラムに与える型の選び方とその理由について教わった。 MySQL公式見たら他にもカラム型あったけど、今回は良く見るカラム型について書く signとunsign c#とかだとintとuintという表記でこの2つは分かれている signはマイナスも含んだ表現(int…

(2)先週覚えたけどブログにする程ボリューム無いから全部まとめてメモ

Tool pandoc Textile、MarkDownからHTMLまで相互変換できるらしいし、便利そう http://johnmacfarlane.net/pandoc/try/ Perl 変数名の頭文字の*マーク 正規表現と同じで、全ての型に対応するものらしい。 http://d.hatena.ne.jp/chaichanPaPa/20090617/12452…