2014年9月12日のブックマーク (5件)

  • Enumerable#each_with_object (Ruby 3.3 リファレンスマニュアル)

    each_with_object(obj) -> Enumerator[permalink][rdoc][edit] each_with_object(obj) {|(*args), memo_obj| ... } -> object 与えられた任意のオブジェクトと要素をブロックに渡し繰り返し、最初に与えられたオブジェクトを返します。 ブロックを省略した場合は Enumerator を返します。 [PARAM] obj: 任意のオブジェクトを指定します。 例 evens = (1..10).each_with_object([]) {|i, a| a << i*2 } # => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] [SEE_ALSO] Enumerator#with_object

    crist18
    crist18 2014/09/12
    “enum.each_with_object(object) {|item, memo| block }”
  • Post Position 【Unity】 StartCoroutine以外でコルーチンを回す方法

    コルーチンを自分で回す方法。 コルーチンは実はStartCoroutineで呼び出す以外にも走らせる方法がある。 このお題もUnityというよりはC#なのだが、 大体UnityでコルーチンというとStartCoroutineで呼ぶものという感じで定着している気がするので もっと原始的な方法を紹介したい。 方法は簡単で、 ①IEnumerator型を戻り値に持つメソッドを書く(コルーチン部分) ②IEnumerator型の変数Aに①のメソッドを代入(?)する ③AのMoveNextメソッドを呼ぶ だけでいい。 コードで書くと下記のようになる。 // Start void Start() { m_Enumerator = coOutputGaisenmon(); } // Update void Update() { if( m_Enumerator != null ) { bool ret

    crist18
    crist18 2014/09/12
    コルーチンを自分で回す。
  • Unity(C#) 便利なEnumerable - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログを担当する加賀です。 Enumerableクラスを使用して、いくつかの場面を簡潔に記述していきます。 今回のコードはUnity 4.5.3f3、Mono / .NET 3.5で確認しています。 System.Linq.Enumerableクラスは、.NET Framework 3.5以降で使用できるクラスで、 主にIEnumerableに対する拡張機能を提供しているクラスです。 IEnumerableインタフェースを実装しているもの(コレクション)は、配列、List、Dictionary<TKey, TValue>などがあります。 自分以外の全ての子のGameObjectのリストを取得 GetComponentsInChildren()を使用すれば自分自身を含む全ての子のTransformが取得できます。 しかし、自分自身を省いたり、GameObjectに変換したりす

    Unity(C#) 便利なEnumerable - WonderPlanet DEVELOPER BLOG
    crist18
    crist18 2014/09/12
    Enumerable
  • Unityのコルーチンの使い方をまとめてみた - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログは大橋が担当します。 初登場です。よろしくお願いします。 さて、Unityにはコルーチンの仕組みが標準搭載されています。 コルーチンを使うと、 「処理1」→「一定時間待つ」→「処理2」→「一定時間待つ」→「処理3」 のような一連の処理を1つの関数で直感的に書けます。 ここでは、コルーチンがどういったものかという詳細は割愛させてもらって、 実際の使い方をまとめたいと思います。 動作確認環境 Unity 4.5 C# コルーチンの書き方 コルーチンは、IEnumeratorを返す関数として実装します。 そして、StartCoroutineメソッドで実行します。 StartCoroutineの引数には、実行したいコルーチンの関数名を指定します。 public class Test : MonoBehaviour { void Start () { // コルーチンを実行 S

    Unityのコルーチンの使い方をまとめてみた - WonderPlanet DEVELOPER BLOG
    crist18
    crist18 2014/09/12
    Unity コルーチンの使い方いろいろ。
  • コルーチン - Unity マニュアル

    コルーチンを使うと、複数のフレームにタスクを分散させることができます。Unity では、コルーチンは、実行を一時停止して制御を Unity に戻し、次のフレームで中断した所から続行することができるメソッドです。 ほとんどの状況では、メソッドを呼び出すと、そのメソッドは、完了まで実行された後で、呼び出し元のメソッドに制御を返し、さらに任意の戻り値を返します。つまり、メソッド内で行われる全てのアクションは、1 回のフレーム更新中に行われる必要があります。 プロシージャルアニメーションや時経的なイベントのシーケンスを格納するためにメソッド呼び出しを使用したい場合には、コルーチンが使用できます。 ただし、コルーチンはスレッドではないことに注意してください。コルーチン内で実行される同期操作は、メインスレッドで実行されることに変わりありません。メインスレッドに費やされる CPU 時間を削減したい場合は

    コルーチン - Unity マニュアル
    crist18
    crist18 2014/09/12
    “コルーチンとは実行を停止して Unity へ制御を戻し、但し続行するときは停止したところから次のフレームで実行を継続することが出来る関数です。”