【ハルシオンブログ】拡張メソッド使ってますか?
こんにちは。
大坂です。
なんか朝から咳が止まりませんが、気のせいですよね・・・たぶんきっと・・・。
さて、皆さん拡張メソッドって使ってますか?
僕は使ってません(ぇ
何やら便利な感じもするのでちょっとだけ記事に。
まぁ他にもいっぱい記事がありますけどね。
例えばTransformのy座標だけ変えたいときとかこうは書けません。
エラーになりますね。
変えたいときはこんな感じで書いてあげないといけないです。
毎回こんなの書くのも面倒だし、なんか見難いし。
ということでこういうときは拡張メソッドを使うといいらしいです。
書き方はこんな感じ?
staticクラスでstaticメソッドとして書きて、
第一引数の拡張してあげたいクラスであるTransformにthisをつけてあげます。
そうするとこんな感じで使えます。
あ、ちゃんとVisual Studioの自動補完にも出てきます。

ということでちゃんと活用すると便利そうですね!
ってことで今週も終わり!
またノシ
大坂です。
なんか朝から咳が止まりませんが、気のせいですよね・・・たぶんきっと・・・。
さて、皆さん拡張メソッドって使ってますか?
僕は使ってません(ぇ
何やら便利な感じもするのでちょっとだけ記事に。
まぁ他にもいっぱい記事がありますけどね。
例えばTransformのy座標だけ変えたいときとかこうは書けません。
transform.position.y = 15;
エラーになりますね。
変えたいときはこんな感じで書いてあげないといけないです。
Vector3 pos = transform.position;
pos.y = 15;
transform.position = pos;
毎回こんなの書くのも面倒だし、なんか見難いし。
ということでこういうときは拡張メソッドを使うといいらしいです。
書き方はこんな感じ?
using UnityEngine;
public static class TransformExtensions {
public static void SetPosY(this Transform tran, float y) {
Vector3 pos = tran.position;
pos.y = y;
tran.position = pos;
}
}
staticクラスでstaticメソッドとして書きて、
第一引数の拡張してあげたいクラスであるTransformにthisをつけてあげます。
そうするとこんな感じで使えます。
transform.SetPosY(15);
あ、ちゃんとVisual Studioの自動補完にも出てきます。

ということでちゃんと活用すると便利そうですね!
ってことで今週も終わり!
またノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】ボタンを押すと一定時間押せなくなるボタン。カウントダウンもつけてみたよ | 【ハルシオンブログ】Prefabから複数Instantiateしてできたオブジェクトに●●したい時のやり方。とりあえず2パターンかいてみたけど、他にもいい方法ありますか? »
コメント
| h o m e |