[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
312
(3): 名前は開発中のものです。 [] 2017/06/14(水) 07:15:07.65 ID:haEDSL54(1/2) AAS
public static class GameObjectExtensions
{
public static void transformM(this Transform t){ 処理 }
}
void Start () {
gameObject.transformM (gameObject.GetComponent<Transform>());
}

このコードだとエラーになるんですが、Transform型の引数ってどうやって渡せばいいんですか?
313
(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 09:22:06.14 ID:B7+VHkXF(1) AAS
>>312
スクリプトが割り当てられたゲームオブジェクトなら
transformで取得できるよ
関係ないゲームオブジェクトなら
GameObject.Find("ゲームオブジェクト名").transform

あとMonoBehaviourを継承してないとStart()は呼び出されない。

public class Test : MonoBehaviour {
void Start () {
ChangeTransName(transform);
StaticTest.ChangeTransName(transform);
}

void ChangeTransName(Transform t) {
t.name = "ttt";
}
}

public static class StaticTest {
public static void ChangeTransName(Transform t) {
t.name = "test";
}
}
314: 名前は開発中のものです。 [sage] 2017/06/14(水) 10:05:33.54 ID:26YMgC2v(2/2) AAS
>>312
アセットを買えばいいと思いますが
316: 名前は開発中のものです。 [sage] 2017/06/14(水) 14:21:39.03 ID:ip2y4rWT(1) AAS
>>312
拡張メソッドの話ではなかったみたいだが一応拡張メソッドの話を書いておこう
拡張メソッドのthis修飾子が付いた第1引数は呼び出し元のオブジェクトのように指定する
これはコンパイル時にstaticメソッドの呼び出しとして展開される

>>312のコードなら呼び出しは以下が正しい。
gameObject.transform.transformM ();

ただまあGameObjectExtensionsという名前に反してTransformを拡張してるとかツッコミどころは多い
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s