teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記

2016/08/21 13:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -74,4 +74,8 @@
74
74
  }
75
75
 
76
76
  }
77
+ ```
78
+ キャストしてもエラーになりました。
79
+ ```C#
80
+ (GameObject)sender.transform.position = Vector3.zero; //senderはCubeのはず。ここでエラー。
77
81
  ```

1

追記

2016/08/21 13:20

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -37,4 +37,41 @@
37
37
  }
38
38
  ```
39
39
  これより先の記述がわかりません。
40
- ご教授お願い致します。
40
+ ご教授お願い致します。
41
+
42
+ ###追記
43
+ ご回答いただいた方法で、まず値を渡さない方法で試してみました。
44
+ イベントを受け取るようになったのですが、受け取りの際(OnCollisionEnterEvent)、senderを利用してみたいと思いました。CubeScriptでthisを渡しているので、senderはCubeだと思うのですが、このsender(Cube)を操作することができません。sender(Cube)の操作方法のご教授お願い致します。
45
+
46
+ ```C#
47
+ public class CubeScript : MonoBehaviour {
48
+
49
+ // 値を渡さない
50
+ public event EventHandler OnCollisionEnterEvent = delegate { };
51
+
52
+ void OnCollisionEnter(Collision col)
53
+ {
54
+ // 値を渡さない
55
+ OnCollisionEnterEvent(this, EventArgs.Empty);
56
+ }
57
+
58
+ }
59
+ ```
60
+
61
+ ```C#
62
+ public class GameObjectScript : MonoBehaviour {
63
+
64
+ void Awake(){
65
+
66
+ // コンポーネント(CubeScript)を取得
67
+ CubeScript cubeScript = GameObject.Find ("Cube").GetComponent<CubeScript> ();
68
+
69
+ // イベントを設定
70
+ cubeScript.OnCollisionEnterEvent += delegate (object sender, EventArgs e) {
71
+ Debug.Log(sender); //Cube (CubeScript)
72
+ sender.transform.position = Vector3.zero; //senderはCubeのはず。ここでエラー。
73
+ };
74
+ }
75
+
76
+ }
77
+ ```