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

質問編集履歴

1

質問を途中書きで掲載してしまいましたため修正しました。

2019/07/09 13:33

投稿

shibashi
shibashi

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,30 +1,55 @@
1
1
  ### 前提・実現したいこと
2
-
2
+ https://cfm-art.sakura.ne.jp/sys/archives/527
3
+ 上記URLサイト(【チュートリアル】uGUIとPhysics2Dでブロック崩しを作ってみる)
4
+ を参考に、ゲームを作る過程で、
3
5
  球(image)が壁(image)に当たるたびに反射して、
4
6
  球の色を変えようとしています。
5
7
 
6
8
  ### 発生している問題・エラーメッセージ
7
9
 
8
- 壁に当たると球も壁も一緒に色が変わってしまいます。
10
+ 球が壁に当たると球も壁も一緒に色が変わってしまいます。
9
11
 
12
+ ![イメージ説明](7e6df33c574b63a89622f0e41cb7dd32.png)
13
+ ![イメージ説明](e7fc8358ccf693439722e8b631401035.png)
10
14
  ### 該当のソースコード
11
15
 
12
16
  ```C#
13
17
  using UnityEngine;
14
18
  using UnityEngine.UI;
15
19
 
16
- void Start () {
17
- var body = gameObject.GetComponent<Rigidbody2D>();
18
- var canvas = GetComponentInParent<Canvas>();
19
- var direction = new Vector2(1, 1).normalized;
20
+ public class BallScript : MonoBehaviour {
20
- body.velocity = direction * 480 * canvas.transform.localScale.x;
21
21
 
22
+ void Start () {
23
+
24
+ var body = gameObject.GetComponent<Rigidbody2D>();
25
+ var canvas = GetComponentInParent<Canvas>();
26
+ var direction = new Vector2(1, 1).normalized;
27
+ body.velocity = direction * 480 * canvas.transform.localScale.x;
28
+ }
29
+
30
+ // Update is called once per frame
31
+ void Update () { }
32
+
33
+ public void changeColor()
34
+ {
35
+ var image = GetComponent<Image>();
36
+ image.material.color = Color.red;
37
+ }
38
+
39
+ void OnCollisionEnter2D(Collision2D collision)
40
+ {
41
+ Debug.Log("Hit" + collision.gameObject.name); // ログを表示する
42
+ changeColor();
43
+ }
44
+ }
22
45
  ```
23
46
 
24
47
  ### 試したこと
25
48
 
26
- ここ問題に対してしたことを記載してください
49
+ 壁と球でcanvasを別にしてもダメでした。
27
50
 
28
- ### 補足情報(FW/ツールのバージョンなど)
51
+ ###
29
52
 
53
+ 最近unityの勉強を始めたばかりで知識不足のため、
54
+ しょうもないことをお聞きしているかもしれませんが解決策に心当たりのある方が、
30
- ここにり詳細な情報を記載ださい。
55
+ いらっしゃいましたら回答のほどしくお願いたします