G.D.M

「 Game Development Memo 」 の略称。 ゲーム開発の備忘録

 

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

category: スポンサー広告

TB: --    CM: --

ブログ移転しました 

今後の記事はこちらに記載します
http://risaki-masa.hatenablog.com/

スポンサーサイト

category: 未分類

TB: --    CM: 0

Unity イベント関数の実行順 

Unityのゲームループのイベント関数の実行中がマニュアルに載っていたのでメモ。
自作フレームワーク作成時とかに見ても参考に出来そう。

Unity マニュアル : イベント関数の実行順
http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html


category: Unity

TB: --    CM: 0

UnityでC#6.0  

Unityは現在のC#のバージョンが3.0相当でC#4.0の機能が一部のみ使える状態。
LINQが使える分まだマシだが、いつまで経ってもC#3.0から変わらない状態が続いている。

ネットでいろいろ調べていると「UnityでC#6.0が使える未来がそろそろ来そう!
というスライドが見つかったので、そろそろ今以上のバージョンのC#が
使えるようになる時が来るかもしれないが、現状でもC#5.0や6.0が使える方法が
ないわけではないので一応メモしておく。


方法1.

https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/downloads
からCSharp60Support for Unity 5.unitypackageを手に入れ、インポートする。


方法2.

外部プロジェクトで開発する。
そのプロジェクト内に限り最新のC#が利用できるので、後はUnityで
使用する際にビルドして生成されたdllを/project/Assets/Dlls内に入れる。


という、2つがある。
まぁ実際にやるなら方法1を選択するかなぁ…っといった感じ。
早いうちに正式にUnityでC#6.0が使えるようになって欲しい。


- 参考URL -

UnityでC# 6.0 が使えた!!
http://polaris-bear.lolipop.jp/shunroom/457

Visual Studio 2015 と Unity と
http://tyheeeee.hateblo.jp/entry/2015/06/12/Visual_Studio_2015_%E3%81%A8_Unity_%E3%81%A8


category: Unity

TB: --    CM: 0

汎用的なタイマー作ってみた。 

シンプルなタイマーが欲しくなったので作ってみた。



改めてみるとEveryUpdateより、using UniRx.Triggers;
を入れてUpdateAsObservableにした方がよかった気がする・・・。
そもそもUniRxに依存させるべきでもないか?

また今度気が向いたら修正入れよう。


category: Unity

TB: --    CM: 0

UniRxとは? 

最近Unityで使えるライブラリのUniRxに興味を持ち始めた。
今後少しずつまとめ記事を書きたい。


- UniRx -

Reactive Extensions for Unityの略称。

AssetStoreかGitHubよりダウンロード可能↓
https://www.assetstore.unity3d.com/jp/#!/content/17276
https://github.com/neuecc/UniRx


- Rxとは? -

FunctionalReactiveProgrammingをC#で実現するためのライブラリ。
これを用いるとイベントや非同期処理に対して、LINQライクな処理を適用できるようなる。
また、RxはObserverパターンを応用したものである。
.NET 3.5 SP1, SL 4以降, WP7で利用可能。

習熟コストはかなり高く、学ぶ上でC#の様々な構文やLINQなどの知識がないと辛い。
しかし、使いこなせるようになればReactive(反応的)な処理が非常にシンプルに書けるようになるため、学ぶ価値は大いにあると思う。


- 何に利用できるか? -

イベントの待ち受け … マウスクリック、ボタン入力
非同期処理 … 別スレッドを用いた通信、リソースのロード
時間計測の必要な処理 … ダブルクリック、長押し
変化する値の監視 … フラグが切り替わった時の処理、データの更新時の処理

…等々


- IObservable, IObserver, Subject -

Rxの要となる3つのクラス。
Rxにはこれら3つのクラスの具象クラスや亜種となるクラスが多数存在する。

 【IObservable

Subscribe( 購読の意 )関数のみを持ったインターフェースクラス。
Subscribe関数は引数としてIObserverを要求し、IObservableの具象クラスで
その通知先を記録する。変更の通知を行う必要がある場合、Subscribeにより登録された
すべてのIObserverに対して、特定の関数を呼び出す。
Subscribe関数の戻り値はIDisposableであり、それのDispose関数を呼び出すことにより、
通知を止めることができる。
IObservableはRxでいう、ストリーム( 時間軸上に並んだイベントのシーケンス )に相当する。

 【IObserver

OnNext、OnComplete、OnErrorの3つの関数を持つインターフェースクラス。
この3種類の関数がストリームに流れるイベント( メッセージ )の通知を行う関数である。

OnNext … 状態が変化したことを通知する
OnComplete … 状態変化の通知が完了したことを通知する
OnError … エラーが発生したことを通知する

 【Subject

IObservableとIObserverの両方を実装した、一人二役のクラス。
( 実際に2つのインターフェースを継承しているのはISubject )
このクラスはIObservable同様にSubscribe関数により、IObserverを登録できる。
そして、自身のOnNextやOnComplete関数等から、自発的に登録したIObserverに対して
通知を送ることができる。またSubjectクラスはIObservableの拡張メソッドである
AsObservable関数から、HotなObservableを作成することもできる。
( HotとColdについてはここでは略す )

この3つのクラスの実装については下記のサイトが参考になる↓
http://blog.xin9le.net/entry/2011/12/15/223350
http://blog.xin9le.net/entry/2011/12/19/025912



まだ学んでから日が浅いので、間違っている部分があれば逐次修正するつもり。
次回はUniRxで使用頻度の高い関数かまたはHot/Cold変換についてまとめようかなと思う。


- 参考URL -

やさしいFunctional reactive programming(概要編)
http://maoe.hatenadiary.jp/entry/20100109/1263059731

Rx入門
http://blog.xin9le.net/entry/rx-intro

Reactive Extensions再入門 その46「 Reactive Extensions 入門 」
http://blog.okazuki.jp/entry/20120305/1329923070

UniRxについて書いた記事をまとめてみた
http://qiita.com/toRisouP/items/48b9fa25df64d3c6a392

Rx入門
http://www.slideshare.net/xin9le/rx-intro


category: Unity

TB: --    CM: 0

プロフィール

カレンダー

最新記事

カテゴリ

検索フォーム

ツイッター

GitHub

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。