Unity

【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章 レンガ

進捗

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

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

【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…

【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…

【Unity】DontDestroyOnLoad

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

【Unity】RangeAttribute

Inspectorにはスクリプトから公開された変数を調整できる public class SpinScript : MonoBehaviour { public float spin; } 有効範囲を設定したい時、RangeAttributeを使えばいい public class SpinScript : MonoBehaviour { [Range(0,10)] public float sp…

【Unity】Delegates 勉強した

C# delegate の使い方をメモします デリゲート class Foo { delegate void MyDelegate(int num); // delegateの要求形式を記述 MyDelegate myDelegate; public Foo() { myDelegate = PrintNum; myDelegate(10); myDelegate = PrintDoubleNum; myDelegate(10)…

【Unity】GameAnalytics SDK for Unity

データ集計&解析ツール GameAnalytics SDK for UnityUnityのAssertStoreに無料公開中です

【Unity】拡張メソッド(Extension Methods)

Transform クラスをリセットするメソッドを追加したい場合*1 // こんな感じで呼び出したい transform.ResetTransformation(); 拡張クラスを書く // ExtensionMethods.cs using UnityEngine; using System.Collections; // 拡張メソッド. このクラスは static…

【Unity】 Sprite Animation (セルアニメ) セットアップメモ

Sprite Animation (セルアニメ) 一番簡単なセットアップ方法 1.[ツールバー] -> [GameObject] -> [Create Empty] 2.[Assets]内セルアニメに使用したい画像を複数を選択 3.[1]に生成した GameObject にドラック&ドロップ 4.ダイアログが表示され指示通りに保…

【Unity】Polygon Collider 2D メモ

Polygon Collider 2D の 操作 座標編集( Shiftキー ) 移動したい頂点をドラッグ&ドロップ 頂点追加( Shiftキー ) 追加したい場所にクリック 頂点削除( Ctrlキー ) 削除したい頂点をクリック

Unity 4.3 がリリースされました

Unity Technologies Blogより、 Unity4.3がリリースされることが報告されました Unity - What's new in Unity 4.3 気になる点をハイライトします 2D toolset:2Dゲーム支援の拡張 Sprite追加 2D物理エンジン追加 Animation blendshapes(morph targets) ani…

Unityを学ぼう【第7回】

前回を続きまして、 WebPlayerで公開する手順です*1 WebPlayer用ファイル作成手順 プラットフォーム選択 1.[ツールバー] -> [File] -> [Build Settings...] 2.[Web Player] -> [Switch Platform] 3.選択中プラットフォームにはUnityのアイコンが表示されます…

Unityを学ぼう【第6回】

前回を続きまして、 テキストを表示します*1 概要 回収したアイテム数表示 目標達成表示 以上項目を画面に表示します 回収したアイテム数表示 GUIText配置 1.[ツールバー] -> [GameObject] -> [Create Other] -> [GUI Text] 名前:Count Text 2.画面の左上に…

Unityを学ぼう【第5回】

前回を続きまして、 アイテムと衝突判定を作成します*1 スクリプト拡張 プレイヤー視点から拡張します [PlayerController]に以下のコードを追加します // PlayerController.cs // [trigger]と接触開始時に呼ばれます void OnTriggerEnter(Collider other) { …

Unityを学ぼう【第4回】

前回を続きまして、 壁やアイテムを作成します*1 壁配置 1.左辺 [ツールバー] -> [GameObject] -> [Create Other] -> [Cube] 名前:West Wall 設定:Position(-10,0,0) Scale(0.5,2,20.5) 2.右辺 [West Wall]を複製(Ctrl+D)する 名前:East Wall 設定:Position(…

Unityを学ぼう【第3回】

前回を続きまして、 カメラ移動*1を進みたいと思います 今回概要 追尾カメラの実装 カメラ設定 まず、プレイヤーを見やすいように設定します 1.[Main Camera] を選択 2.[Inspector] -> [Transform] のパラメータ設定 追尾カメラ実装方法1 プレイヤーの入子…

Unityを学ぼう【第2回】

前回を続きまして、 プレイヤー移動を進みたいと思います 今回概要 物理法則適用 入力適用 物理法則の適用:Rigidbody【リジッドボディ】*1 Rigidbodyの適用方法 ①ターゲット選択 [Hierarchy]に[Player]を選択します ② [Inspector] -> [Add Component] -> [P…

Unityを学ぼう

Unityを使いこなしたいのでチュートリアルをやってみよう Project#00:Roll-a-Ball*1 はじめに ゲーム設定 プレイヤー移動 カメラ移動 収集アイテムの作成 テキストの表示 ゲーム公開 はじめに*2 Unityの基礎を知るためのチュートリアルです ゲームオブジェク…

【Unity】Editor拡張~これが出来ないと帰れま10~

挑戦中・・ https://codeiq.jp/ace/keigo_ando/q471 7問目から進まない・・

Unity4.2.2をインストールしました

ところでMonoDevelopを起動しようとすると "MonoDevelop failed to start."のエラーが表示されてしまった。 unityAnswersに解決方法があったので転載します http://answers.unity3d.com/questions/534908/monodevelop-failed-to-start.html ①glibsharpglue-2…