前提・実現したいこと
Unityでシューティングゲームを、C#のサンプルを見ながら作っています。
発生している問題・エラーメッセージ
弾を打って敵に当たると、その敵に設定された分の点数がある変数に加算される、というスクリプトを書いているが、理解できないコードがあり、その記述によって何が起こっているのか分からない
該当のソースコード
C#
1public class Enemy : MonoBehaviour 2{ 3 (略) 4Score score; 5 6void Start() 7{ 8 (略) 9 //ゲームオブジェクトを検索 10 var gameObj = GameObject.FindWithTag("Score"); 11 //gameObjに含まれるScoreコンポーネントを取得 12 score = gameObj.GetComponent<Score>(); 13} 14 (略) 15 16void Godown() 17{ 18 //スコアを加算 19 score.AddScore(point); 20 (略) 21} 22}
補足情報
scoreに"Score"タグがついているゲームオブジェクトのScoreコンポーネントを入れているのは分かるのですが、「Score score;」はどういった理論で何を定義しているのでしょうか。
追記
私の質問言葉足らずな部分があり、以下の記事で少し理解できました。
https://dennou-note.blogspot.com/2014/01/unity-c_20.html
【Aクラスからタグ名「SoundManager」が付いたGameObject内のBクラスのメンバを呼び出す場合】
に該当し、Aが質問で上げたEnemy,タグ名がScore,BがScoreに当たるようです。
(上記Enemyスクリプトでは、ScoreというタグのついたScoreオブジェクトの中の、Scoreというコンポーネント(スクリプト)がついていて、その中のメソッドAddScoreを呼び出しています)
「Score score;」が「型名 変数名;」は理解できるのですが、
int,float等しか使ったことがなく、
この場合の型名は正確には何から決まっているのでしょうか?
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 05:18
2019/12/12 06:14
2019/12/12 06:30