コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】エディタ拡張でコルーチンが使えるようになる「Editor Coroutines」紹介(無料)

f:id:baba_s:20171107165736p:plain

概要

2015/1/7 に「Editor Coroutines」がリリースされました

「Editor Coroutines」を導入すると、
エディタ拡張でコルーチンが使えるようになります

検証環境

  • Unity 2017.1.1f1
  • Editor Coroutines 1.2

使い方

using EditorCoroutines;
using System.Collections;
using UnityEditor;
using UnityEngine;

public class ExampleWindow : EditorWindow
{
    [MenuItem( "Tool/Example" )]
    public static void ShowWindow()
    {
        GetWindow<ExampleWindow>();
    }

    private void OnGUI()
    {
        if ( GUILayout.Button( "Start" ) )
        {
            this.StartCoroutine( Example() );
        }
        if ( GUILayout.Button( "Stop" ) )
        {
            this.StopCoroutine( "Example" );
        }
        if ( GUILayout.Button( "Stop all" ) )
        {
            this.StopAllCoroutines();
        }
    }

    private IEnumerator Example()
    {
        while ( true )
        {
            yield return new WaitForSeconds( 2f );
        }
    }
}

例えば EditorWindow であれば上記のようなコードでコルーチンが使用できます

EditorCoroutines.StartCoroutine( coroutine, thisRef );
EditorCoroutines.StartCoroutine( methodName, thisRef );
EditorCoroutines.StartCoroutine( methodName, value, thisRef );
EditorCoroutines.StopCoroutine( coroutine, thisRef );
EditorCoroutines.StopCoroutine( methodName, thisRef );
EditorCoroutines.StopAllCoroutines( thisRef );

EditorWindow 以外でコルーチンを使う場合は上記の関数を活用します

関連記事