【メモ】Emscripten 1.35.0 以降のバージョンの使用

Unity5.5以降 emscripten のバージョンが更新されたため、 Unity5.4用にビルドした .bc が利用できなくなった。 Unity 5.5.0f3 : emscripten 1.36.7 Unity 5.6.0b9 : emscripten 1.36.14 // <Unityのインストールパス>/Editor/Data/PlaybackEngines/WebGLSupport/BuildTools/Emscripte</unityのインストールパス>…

【C#】Server/Client サンプル

【MMORPG ゲームサーバープログラミング】 第2章チャットサーバーを参考にServer/Client実装するサンプルです。MMORPGを作りたくてサーバプログラミングを調べたら ネット上のサンプルでは Client->Serverに送信 Serverが受信する Server->Client送信 ソケ…

【Advent Calender 2016】Milkcocoa + UnityWebGL

この記事は Milkcocoa Advent Calender 2016 18日目の記事です。そろそろクリスマスなのに、 夏休みの課題のように、 最後の最後までコード1行も書いてませんでした! 当然な結果、進捗は全然ダメでした(/ω\)とりあえず、ミルクココアでも飲んで落ち着こう…

【C#】 Lazy<T> ( 遅延初期化 ) クラス

.NET4.0に追加された Lazy ( 遅延初期化 ) クラスをUnityで使いたいので書いた。 gist.github.com 追記 2016/12/02 string 型だと、パラメータ受け取らないコンストラクタがないため、 where T : new() を削除し、 上記修正とともに () => new T(); も () =>…

第9章 古く汚れた壁

進捗2種類のテクスチャ(漆喰とレンガ)を用意して、 頂点カラー(Rチャンネル)によってブレンドする技法ですブレンドした結果 頂点カラー UE4にはVertex Paintツールがあって 結果を確認しながら頂点カラーを編集することができます。Unityではこのような機…

第7章 岩

進捗 ノーマルマップを2枚使ってブレンドする オブジェクトノーマルマップ:メッシュの形状に沿ったノーマルマップ ディテールノーマルマップ :表面の細かい凸凹を表示するためのノーマルマップ ノード:BlendAngleCorrectedNormals SSE では このノードが…

第6章 レンガ

進捗

過去の自分から情熱を!

過去の自分が専門学校で制作した作品を見るのが懐かしいなぁ(*'▽')TGS2008出展したり テト工房 来場者が試遊中の反応を観察するのが楽しかった。 展示期間内1回もクラッシュしなかったことが自慢でした。 (勿論、今じゃSランクの緊急クエXNA Game Studio Ja…

【BASH Shell】 空き関数

シェルで function dosomethink() { # .... # code # .... }のように機能を一時的に無効したくて、 関数の中身を全部コメントアウトしまして syntax error near unexpected token `}'シンタックスエラーになった。どうやら function dosomethink() { }のよう…

MagicaVoxel 練習

絵心が無さすぎる(*'▽') 需要がないと思うがダウンロードは こちら

【雑記】C#と仲良くなった気がする

C++erの同僚とC#について語り合うとき、 結構の割合で「C++のように パラメータに constをつけたいね!」という話題になる。なぜ、C#のパラメータに const つけないのかを自分なりに考えてみた。要するにこんな感じだ gist.github.comもちろん、C++ でも プ…

【C++】NMAKEによるバッチビルド

C++

NMAKE コマンドを使ってビルドしたいとき、 毎回 Visual Studioのコマンドプロンプト を起動するのが面倒ですよね(-_-)ワンバッチでできましたのでメモです gist.github.comCMakeと組み合わせて使うとめちゃくちゃ便利なのよ(*'▽')参考: stackoverflow.com

【C#】ジェネリック引数付きコンストラクタ 2

前にも同じのを書いたけど kou-yeung.hatenablog.comこんな感じにも書けるのでメモメモ。 gist.github.com追記: 20160522 もともと提供されてるじゃないか。。 Activator.CreateInstance メソッド (Type, Object[]) (System) こっち使おう!

【Unity】JsonUtility で List<T> と Dictionary<TKey,TValue> シリアライズする

Unity5.3 から JsonUtility 追加された。 が、List と Dictionary はシリアライズできません!シリアライズ対象になるには以下の条件がある 1.クラスに [Serializable] 属性 2.privateメンバー変数に[SerializeField] の属性 3.publicメンバー変数にするもち…

【Xenko】NewGameが起動しません

Xenkoを使ってて最初の挫折ポイントが NewGame だったNewGameで新規プロジェクトを作成し、 実行ボタン(F5)を押してもゲームが実行しませんでした・・ビルドログを確認したら Error: BuildStep Asset build steps [SkyboxAsset:'Skybox'] (3 items) failed.…

【C++】Enum::ParseとEnum::ToString

C++

C#には Enum 文字列の変換ができます 羨ましいですね~C++でも似てるものが欲しい // こんな感じ #include <iostream> enum class Foo { X,Y,Z }; int main() { Foo foo = Enum::Parse<Foo>("Z"); std::string s = Enum::ToString(Foo::Z); } 書いてみた // enum.h #pragma </foo></iostream>…

【C#】列挙型の項目数取得(その2)

C#

1年前に同じようなこと書きましたが 【C#】列挙型の項目数取得 - 浮遊島今回はジェネリッククラスでstatic変数を持つバージョンの実装です メリット:1回目だけ計算して、2回目以降のアクセスが早くなります using System; public class EnumSize<T> where T </t>…

【C#】Enumの爆速ForEach

C#

Enumをforeachで回すと遅いよと聞いて 自前で書いてみたら爆速ForEachができた // 以下のenum定義を使用する enum Days {Sat=10, Sun=20, Mon, Tue, Wed, Thu, Fri}; まず結果(1,000,000回を回す) // 1回目 foreach : 1328ms EnumExtension.ForEach : 1283ms…

【C++】マジックインクリメント

C++

PHPには文字列のインクリメントがあるらしく、C++で実装してみた マジックインクリメントとは (以下はネットで調べて理解したことです。間違ったら指摘していただければ幸いです)英数字の文字列をインクリメントする ++"a" = "b" ++"0" = "1" 桁上げも可能…

【C++】UTF8

C++

UTF8文字列処理のメモです。いまだにUTF8を使ってサーバーとやり取りしてます。 たまに、表示文字数をカウントしたり、文字数が多すぎる場合途中から"..."を表示したり 結構困ります。。。C++11からstd::u32stringを追加されて意外と便利です。 std::codecvt…

milkcocoaを使ってみた

この記事はmilkcocoa Advent Calendar 2014の13日目の記事です。簡単にリアルタイム通信できると聞いて興味が湧いたので思わず参加しました。とりあえず、作成したもの=>GO! みんなに紹介したいこと 1つDataStoreを使用して異なるコマンドを送受信してみ…

3分でTypeScriptの定義ファイルの作成方法を覚えよう

この記事はTypeScript Advent Calendar 2014の9日目の記事です。TypeScriptの定義ファイル(d.ts)の作成方法について書いてみます(自分用メモを兼ねて・・) まだTypeScript歴は浅いので、間違ったことがありましたら指摘していただければ幸いです 説明に使…

【iOS】招待コードはリジェクト対象?

この最近、招待コードを実装されたiOSアプリがリジェクト対象になる情報が拡散している傾向として 招待された側がアイテムを貰えるのはNG 招待した側だけアイテムを貰えるのはOKと考える方が多く見られるそれで、なぜ招待コードはリジェクト対象になるのか …

【C++】2進数文字列変換

C++

再帰でやってみた #include <string> // std::string #include <functional> // std::function std::string binary(int dec) { std::function<std::string(int)> base2 = [&](int val) { if(val == 0) return std::string{}; return base2(val >> 1) + std::to_string(val%2); }; if(dec == 0) retu</std::string(int)></functional></string>…

cmath にある remquo という 数学関数

C++

浮動小数点剰余を計算する関数 fmod は使ってるが、 剰余と商の両方もほしい場合、何を使うべきかを探してみた。fmodと同じヘッダにある remquo はよさそうにみえて以下コードを書いてみた #include <cmath> #include <iostream> int main() { int quo; auto rem = remquo(59,</iostream></cmath>…

Blender Python : オブジェクトの頂点座標取得

オブジェクトの頂点情報は MeshVertex に保存されます MeshVertex::co 頂点一覧を取得したい場合 for v in bpy.context.object.data.vertices : v.co

Blender Python : オブジェクトのロケーション取得

オブジェクトのロケーションは Object::location に保存されます bpy.context.object.location 選択中オブジェクトのロケーション取得するコード for obj in bpy.context.selected_objects : obj.location

【Erlang】FizzBuzz

ErlangでFizzBuzz~ %% fizzbuzz.erl -module(fizzbuzz). -export([run/1]). %% Fizz Buzz リストに変換 convert([]) -> []; convert([H|T]) -> [convert(H)|convert(T)]; convert(H) when (H rem 15) =:= 0 -> 'FizzBuzz'; convert(H) when (H rem 3) =:= 0…

【Erlang】Erlangもくもく会に参加してきました

@_yosssiさん主催のErlang勉強会に参加しました自分は「プログラミングErlang(飛行機本)」を買って勉強しました今回は1~3章の途中まで読みました関数型言語は初めてなので、なかなか新鮮でしたErlangについて詳しくなかったのであまり発言できず、もくも…

【TEDTalk】TEDトーク世界最高のプレゼン術を読もう

第二章:トピックを選ぶこの章で学んだこと 1.プレゼンが終わったら、聞き手に「どうなっていってほしい」と考えながらテーマを選ぶ 2.ストーリと事実を積み重ねながらトークを組み立てる この章に紹介された動画メアリー・ローチ:あなたの知らないオーガズ…

【TEDTalk】TEDトーク世界最高のプレゼン術を読もう

第一章:TEDの使命TEDとは テクノロジー・エンターテインメント・デザインなど 様々な分野の人物がプレゼンテーションを行なうカンファレンスです 年一回に開催され、講演会の内容はインターネット上で無料で観ることができますこの章に紹介した動画のまとめ…

【C++】長いfor文とおさらばだ

C++

C++11の範囲for文を使ったらSTLのコンテナを簡単に回せる std::vector<int> v; // C++03 for(int i = 0 ; i < v.size() ; i++) { v[i]; } // algorithm std::for_each(v.begin(),v.end(),func); // C++11 for(auto it : v) { it; } 見やすくて書きやすいだけど、</int>…

【C#】C#でboost::bindを実装してみた(3)

前回の続きです 引数の部分束縛を実装に以下問題がありました ①どの引数を束縛するのかはどうやって指定するの? ②たとえ引数を適当を渡しても、両方も当てはまるのでエラーが発生します これらを対策してみました ①束縛する引数を指定する Placeholder 引数…

【C#】C#でboost::bindを実装してみた(2)

前回にはすべての引数を束縛することができました 部分的に束縛をやりたいと思います イメージ // メソッドを定義する public static void DelegateMethod(int a,int b) { // do do something } // デリゲートを保存する(第2引数を束縛する) Action action …

【C#】C#でboost::bindを実装してみた(1)

boost::bindはなかなか便利で、 C#のデリゲートで実装してみました デリゲート C#では delegate という メソッドをカプセル化する機能がありました 実際自分から定義する必要なく、 Action と Func を使用することが多いです Action と Func の簡単な例 // i…

【C#】BitArray覚えた

BitArrayとはビット値の小型の配列を管理するクラス 基本の使い方 例えば4ビットを管理するクラスを生成する // BitArray生成 BitArray bits = new BitArray(4); // [false,false,false,false]で初期化 // ビット2をtrueに設定 bits.Set(2,true); // ビット…

【C#】列挙型の項目数取得

例えば、こんな感じな列挙型を定義する enum Direct { Up, Down, Left, Right } 項目数取得 // enum => string[] => 文字列数取得 Enum.GetNames(typeof(Direct)).Length; テンプレートで実装する public static class EnumExtension { public static int Le…

【C#】ジェネリック引数付きコンストラクタ

C#では テンプレート型のコンストラクタに引数が渡せません using System; public class Foo<T> where T : new() { public Foo() { new T(1); } } `T': cannot provide arguments when creating an instance of a variable type 詳細:Compiler Error CS0417 Ty</t>…

【Unity】構造体属性

C#では union がなかったが、似ている機能があります StructLayout属性 構造体のレイアウトを指定可能にします FieldOffset属性 変数を指定位置に配置します [FieldOffset(バイト)] 例 ARGBを保持するクラスを作成します using System.Runtime.InteropServic…

【C#】Action と Funcメモ

C#

ActionとFuncの違いは戻り値あるかどうかですAction:戻り値なし Func:戻り値あり両方とも パラメーター 16 個まで用意されます

【C++】 クラスの呼び方

C++

クラスの継承関係ではいろんな呼び方があります 1. class 子クラス : 親クラス {}; 2. class 派生クラス : 基底クラス {}; 3. class サブクラス : スーパークラス {}; D&E本では2番目を使用されます 自分も 派生クラス/基底クラス に 統一しようと思い…

【雑記】Googleドキュメント

資料をまとめようだが、自宅のPCにはMicrosoft Officeをインストールしてなかった Chromeは結構前から使っていまして、Googleドキュメントは初めて起動したささやかなことにニールセン博士の記事を思い出した ユーザーの知識は低いレベルで停滞する新たな発…

【C#】演算子のオーバーロードメモ

C#

public static 戻り値型 operator 演算子 (パラメータリスト) サンプル class Foo { public int X {get;set;} public Foo(int x){ X = x; } public static Foo operator + (Foo lhs,Foo rhs) { return new Foo(lhs.X+rhs.X); } }

【C#】 Enum メソッド

C#

C#にはEnumを配列に変換するメソッドが用意されています例えば、以下の enum を定義されます enum Type { X = 10, Y = 20, Z = 30, } Enum -> string[] string[] names = Enum.GetNames(typeof(Type)); Enum -> Array int[] values = (int[])Enum.GetValues(…

【Unity】ユニットテスト:UUnit

UUnitはUnityIDE内実行できるユニットテストフレームワークです 何種類のユニットテストフレームワークを試してみて、 UUnitは一番使い勝手いいと思ったので導入方法を紹介します ダウンロード先 http://wiki.unity3d.com/index.php?title=UUnit 最新バージ…

【Unity】文字列プルダウンメニュー

Inspectorに文字列プルダウンメニューを表示する PulldownAttribute // PulldownAttribute.cs using UnityEngine; public class PulldownAttribute : PropertyAttribute { public string[] names; public PulldownAttribute(params string[] names) { this.n…

【Unity】 HideInInspector

スクリプトのpublic変数をInspectorに表示したくない場合 HideInInspectorを使用すればいい public class Foo: MonoBehaviour { { [HideInInspector] public int bar; }

【Unity】 自作Attributeでコメント表示

練習としてパラメータにマウスオーバーしたら コメント表示用Attributeを作成してみます CommentAttribute PropertyAttributeを継承して、コメント保存用クラスを作成します // CommentAttribute.cs using UnityEngine; public class CommentAttribute : Pro…

【C#】名前付き引数を覚えた

void func(int width,int height) { // do something } void bar() { func(height:10,width:20); } 1.引数の順番を気にしなくかける 2.呼び出すコードを見ただけで引数の意味が分かる void bar() { func(/*width*/20,/*height*/10); } C++では名前付き引数を…

【Unity】DontDestroyOnLoad

Unity には シーンを変更時、古いシーンに生成されたオブジェクトを破棄されます シーンを跨いでオブジェクトを使用したい場合 スクリプトのAwakeが呼ばれたら、DontDestroyOnLoadを使えばいいです public class Example : MonoBehaviour { void Awake() { D…