タグ

コルーチンに関するrin51のブックマーク (6)

  • コルーチンは怖くない

    コルーチンの基的なアイディアを正確さより雰囲気重視で解説してみました。 一応コルーチンやイベントループによる非同期処理に関しては概念はPythonに限った話ではないのでNode.jsなどでも同じ理解でいいはず。。。 下記のサンプルを全部動かすにはPython 3.6以降を使ってください。(ローカルにない場合はdocker run --rm -it python:3.7とかでもOK) コルーチンとは サブルーチンの上位(?)概念です。 サブルーチン(いわゆる関数)はエントリポイントが一つで、一度呼び出したら値が返されるまで一気に動きます。 これに対しコルーチンはエントリポイントが複数箇所あるため、一度呼び出されても中断でき、その場所からまた再開できるというものです。 async/awaitとネイティブコルーチン Python 3.5でasync/await構文とともに導入されたネイティブコ

    コルーチンは怖くない
  • 2秒後に自由落下.cs

    rin51
    rin51 2015/11/15
    コルーチンで実装
  • C# の yield return の使い道 - カタチづくり

    突然ではありますが、とっておきの yield return の使い道を紹介しようぢゃないか。・・・って別にそんなたいそうなものじゃないけどね。 まず、IEnumerator ってのは次のような状態遷移モデルで捉えることが出来るわけだ。 逆に考えると、状態遷移でモデル化できる設計は、IEnumerator を利用して実装できるんじゃないか、というのが着想。つまり、yield return を利用して状態遷移モデルを実装しよう、ということ。 何のメリットがあるかって? 僕が思うに、状態遷移モデルは結構実装が面倒だ。面倒というか、コードがぐちゃぐちゃになりやすい。ところが yield return を上手く使えばあら不思議、状態遷移がすっきりと記述できてしまうのだ。 具体例を挙げてみる。 何か作図ツールのようなものを開発するとしよう。CADとかパワーポイントとかVisioとかを想像すればよい。さ

    C# の yield return の使い道 - カタチづくり
  • [サンプル] イテレータとマイクロスレッド

    概要 ゲーム開発の分野を中心として、 マイクロスレッド(microthread)あるいはコルーチン(coroutine)、ファイバー(fiber)などと呼ばれる概念が考えられています。 C# 2.0 の「イテレーター」構文を使うと、 マイクロスレッドと似たようなことができます。 デモ → シューティングゲーム風。 ( ソース一式 (zip 形式)。) マイクロスレッドとは 狭い分野でしか使われてない言葉なので、 定義も用語もあまりはっきりと固まっていないんですが、 ここでの説明は数ある定義のうちの1つだと思ってください。 マイクロスレッドというものの背景には、 アクションゲームやシューティングゲームの敵や弾の動作ロジックをどう書こうかという話があります。 シューティングゲームなどでは、時間をフレームと呼ばれる単位に区切って、 1フレームごとに敵や弾の位置を更新するという方式をとる場合が多い

    [サンプル] イテレータとマイクロスレッド
  • コルーチン - Unity マニュアル

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

    コルーチン - Unity マニュアル
  • 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
    rin51
    rin51 2015/06/28
    コルーチン知らなかった
  • 1