拡張メソッド

確認済のバージョン: 4.1

-

難易度: 中級

拡張 (extension) メソッドの作成、実装、呼び出しを学びます。

拡張メソッド

中級 スクリプティング

ExtensionMethods

Code snippet

using UnityEngine;
using System.Collections;

//すべての拡張メソッドを含むクラスを作成するのが一般的です
//このクラスは static でなくてはなりません
public static class ExtensionMethods
{
         //一般的なメソッドのように使用されますが、
         //拡張メソッドは static と宣言する必要があります。
         //最初のパラメーターにはキーワード 'this' があり、
         //次に Transform の変数が続きます。この変数は
         //拡張がどのクラスの一部になるかということを示しています。
    public static void ResetTransformation(this Transform trans)
    {
        trans.position = Vector3.zero;
        trans.localRotation = Quaternion.identity;
        trans.localScale = new Vector3(1, 1, 1);
    }
}
//拡張メソッドは JavaScript の機能として備わっていません
//この機能を使うには、C# を使用してください
import UnityEngine
import System.Collections


//すべての拡張メソッドを含むクラスを作成するのが一般的です
//このクラスは static でなくてはなりません
public static class ExtensionMethods:

         //一般的なメソッドのように使用されますが、
         //拡張メソッドは static と宣言する必要があります。
         //最初のパラメーターにはキーワード 'this' があり、
         //次に Transform の変数が続きます。この変数は
         //拡張がどのクラスの一部になるかということを示しています。
    public static def ResetTransformation(trans as Transform):
        trans.position = Vector3.zero
        trans.localRotation = Quaternion.identity
        trans.localScale = Vector3(1, 1, 1)

SomeClass

Code snippet

using UnityEngine;
using System.Collections;

public class SomeClass : MonoBehaviour 
{
    void Start () {
                //メソッドの宣言のときにはパラメータがあったにもかかわらず     
                //この拡張メソッドにパラメータを渡さないことに注目してください。
                //このメソッドを呼び出す transform オブジェクトが
                //自動的に最初のパラメータとして渡されます。
        transform.ResetTransformation();
    }
}
//拡張メソッドは JavaScript の機能として備わっていません
//この機能を使うには、C# を使用してください
import UnityEngine
import System.Collections


public class SomeClass(MonoBehaviour):

    private def Start():
                //メソッドの宣言のときにはパラメータがあったにもかかわらず     
                //この拡張メソッドにパラメータを渡さないことに注目してください。
                //このメソッドを呼び出す transform オブジェクトが
                //自動的に最初のパラメータとして渡されます。
        transform.ResetTransformation()

スクリプティング

  1. スクリプトを使ったコンポーネントの作成
  2. 変数と関数
  3. 規則と構文
  4. C# と JS 構文の違い
  5. IF 文
  6. ループ
  7. スコープとアクセス指定子
  8. Awake と Start
  9. Update と FixedUpdate
  10. ベクトル演算
  11. コンポーネントの有効化と無効化
  12. ゲームオブジェクトのアクティベーション
  13. Translate と Rotate
  14. LookAt
  15. Linear Interpolation
  16. Destroy
  17. GetButton と GetKey
  18. GetAxis
  19. OnMouseDown
  20. GetComponent
  21. deltaTime
  22. データ型
  23. クラス
  24. Instantiate
  25. 配列
  26. Instantiate
  27. 列挙
  28. Switch 文
  1. プロパティー
  2. 三項演算子
  3. 静的な変数、メソッド、クラスの作り方
  4. メソッドのオーバーロード
  5. ジェネリック
  6. 継承
  7. ポリモーフィズム
  8. メンバーの隠ぺい
  9. オーバーライド
  10. インターフェース
  11. 拡張メソッド
  12. 名前空間
  13. リストと辞書
  14. コルーチン
  15. クォータニオン
  16. デリゲート
  17. 属性
  18. イベント
  1. カスタムインスペクターの作成
  2. DrawDefaultInspector 関数
  3. カスタムインスペクターへのボタンの追加
  1. MonoDevelop's Debugger
  2. Good Coding Practices in Unity
  3. Unity Editor Extensions – Menu Items
  4. Creating Meshes
  1. AssetBundles and the AssetBundle Manager
  2. Mastering Unity Project Folder Structure - Version Control Systems
  1. Installing Tools for Unity Development
  2. Building your first Unity Game with Visual Studio
  3. Editing Unity games in Visual Studio
  4. Debugging Unity games in Visual Studio
  5. Graphics debugging Unity games in Visual Studio
  6. Taking Unity games to Universal Windows Platform
  7. Testing Unity games on Android in Visual Studio
  1. Scripting Primer and Q&A
  2. Scripting Primer and Q&A - Continued
  3. Scripting Primer and Q&A - Continued (Again)
  4. Persistence - Saving and Loading Data
  5. Object Pooling
  6. Introduction to Scriptable Objects
  7. How to communicate between Scripts and GameObjects
  8. Coding in Unity for the Absolute Beginner
  9. Sound Effects & Scripting
  10. Editor Scripting Intro
  11. Writing Plugins
  12. Property Drawers & Custom Inspectors
  13. Events: Creating a simple messaging system
  14. Using Interfaces to Make a State Machine for AI
  15. Ability System with Scriptable Objects
  16. Character Select System with Scriptable Objects
  1. Intro and Setup
  2. Data Classes
  3. Menu Screen
  4. Game UI
  5. Answer Button
  6. Displaying Questions
  7. Click To Answer
  8. Ending The Game and Q&A
  1. Intro To Part Two
  2. High Score with PlayerPrefs
  3. Serialization and Game Data
  4. Loading Game Data via JSON
  5. Loading and Saving via Editor Script
  6. Game Data Editor GUI
  7. Question and Answer
  1. Overview and Goals
  2. Localization Data
  3. Dictionary, JSON and Streaming Assets
  4. Localization Manager
  5. Startup Manager
  6. Localized Text Component
  7. Localized Text Editor Script
  8. Localization Q&A