Unityに関連する記事です

 この問題集は、UnityとC#の初心者が戻り値の基本的な使い方を理解することを目指しています。
具体的なゲーム開発の状況を想定して問題を作成しました。コード例も提供していますので、ぜひ挑戦してみてください。

 この問題から始めても大丈夫なように、解説を用意してあります。



戻り値


 メソッドが計算結果などを「返す」ことを「戻り値を返す」と言います。
例えば、「int Add(int a, int b)」という関数は、二つの整数を引数に取り、それらの合計を戻り値として返します。

int Add(int a, int b) {
    return a + b; // aとbの合計を返す
}

 この関数は、以下のように使われます。

int sum = Add(3, 5); // sumには、Add関数の戻り値が代入され、sumは8になります。


戻り値の利用場所


 戻り値はメソッドの処理結果であるため、型の値を保持します。

 よって、if 文などの条件式内や、代入処理の右辺に記述することが出来ます。


<if 文の条件式での利用例>
if(Input.GetMouseButtonDown(0)){
    // マウスクリックした際の処理

}



<代入処理での利用例>
Rigidbody rb;

void Start() {
    rb = GetComponent<Rigidbody>();
}

 普段から利用している処理も、多くは戻り値のメソッドであり、その活用している理由をしっかりと理解していく必要があります。

 そうすることで、戻り値のあるメソッドを使いこなせるようになります。


問題1


  
  ゲーム内の時間を管理するために、引数として経過時間(秒)を取り、
時間(hour)、分(minute)、秒(second)に変換して表示するメソッドを作成してください。

 例えば、経過時間が3700秒の場合、1時間2分20秒と表示するようにしてください。

<= クリックすると回答のサンプルコードが表示されます




 ◆  
  ,悩鄒したメソッドを活用した、実装例を作成してください。

  ゲーム内の経過時間をメンバ変数かローカル変数で定義し、Start メソッド内において、
,悩鄒したメソッドを利用して、経過時間を時間、分、秒に変換して表示してください。


<= クリックすると回答のサンプルコードが表示されます


 さまざまなパラメータを管理する方法を学び、さまざまなシチュエーションで適切な方法を適用できるようになりましょう。


問題2


  
  プレイヤーが得たスコアを引数に取り、スコアによってプレイヤーのランクを返すメソッドを作成してください。 
 具体的には、スコアが90以上の場合には"S"、80以上の場合には"A"、70以上の場合には"B"、それ以外の場合には"C"を返します。

<= クリックすると回答のサンプルコードが表示されます


 ◆
  問題の応用として、,悩鄒したメソッドを活用した、実装例を作成してください。

  ゲームが終了した時点でのプレイヤーのスコアをメンバ変数かローカル変数で管理し、メソッドの戻り値を利用して、プレイヤーのランクを表示してください。

<= クリックすると回答のサンプルコードが表示されます


 戻り値を活用することで、ソースコードの可読性を高め、再利用可能なコードを作成できます。たくさんの練習を通じて、自分のスキルを磨いてください。


問題3


 
  プレイヤーがスペルを唱えると、そのスペルに応じた効果を返すメソッドを作成してください。
 具体的には、"ファイアボール"を唱えると、"敵に50ダメージ"を与え、"ヒール"を唱えると、"HPが30回復"します。

 これらの結果を文字列として返すメソッドを作成してください。

<= クリックすると回答のサンプルコードが表示されます




 ◆
  問題の応用として、,悩鄒したメソッドを活用した、実装例を作成してください。

  メンバ変数かローカル変数で唱えるスペルを文字列で保持し、それを作成したメソッドの引数に利用して結果を取得してください。

<= クリックすると回答のサンプルコードが表示されます


 この問題は、プレイヤーの行動によって異なる結果を出力するメソッドの作成と、そのメソッドの呼び出し方法を学習することを目指しています。
プログラミングの基本的な概念である「条件分岐」を使って、プレイヤーの異なるアクションに対応することが重要です。
また、この方法を使うことで、コードの可読性を高め、必要な機能を適切に呼び出すことができます。

 さらに、ゲーム開発では特に、プレイヤーの行動や選択に応じてゲームの状況を動的に変化させる能力は不可欠です。
したがって、このような基本的なプログラミング技術を理解し、適用することは、ゲーム開発スキルを向上させる上で非常に重要です。


問題4


 
  プレイヤーがパズルを解くと、そのパズルの難易度に応じて得られるポイントを返すメソッドを作成してください。
 具体的には、"簡単"なパズルを解くと5ポイント、"普通"なパズルを解くと15ポイント、"難しい"なパズルを解くと30ポイントとして返します。

<= クリックすると回答のサンプルコードが表示されます




 ◆
  問題の応用として、,悩鄒したメソッドを活用した、実装例を作成してください。

  パズルの難易度が設定された際に、メソッドを呼び出し、その戻り値に基づいて得られるポイントを表示します。
 パズルの難易度をメンバ変数かローカル変数で管理し、メソッドの戻り値を利用して、ポイントの表示を制御してください。

<= クリックすると回答のサンプルコードが表示されます



まとめ


 これらの問題を通じて、C#とUnityを使用した基本的なプログラミングの概念、特に戻り値について理解を深めることができました。
また、ゲームのコンテキストにおけるこれらの概念の応用についても学びました。

 初めて学ぶ概念かもしれませんが、繰り返しコードを書いて理解を深めていきましょう。
もし難しい場合は、1つずつゆっくりと進めていくことが大切です。

 これらの問題に挑戦し、それぞれの解答例と解説を読むことで、基本的な概念の理解を深めていきましょう。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます