Skip to main content

夏休み・練習課題

義務ではないが、練習不足と思う学生にはおすすめ

目標

  • Unityでの開発と調査能力を向上する
  • 先生が教えていない課題もあるので、少し調べる必要な場合もある
  • 迷わず、判断力、開発スピードをUPする
  • 自分の今のゆるいところを明確し、固める

ポイント:

  • 順番気にせず、答えれるのを先に答えて、難しい質問は最後に残す
  • 最後に回答があるが、課題により、いくつかの解決方法がある。
  • 下記の解決は、あくまで先生のやり方である。

C# / スクリプト(言語、およびUnityのの基礎)

次の質問をC#で回答してください(1行〜5行程度)

例:2つの整数を足してください:

int sum = 20 + 15;

1. ゲーム実行中に「enemyPrefab」プレハブから具体的なゲームオブジェクト「enemy」を作成してください。

答え
GameObject enemy = Instantiate(enemyPrefab);

2. 「ball」というゲームオブジェクトからRigidbodyのコンポーネントを取得てください。

答え
Rigidbody rb = ball.GetComponent<Rigidbody>();

3. 取得したRigidbodyの速度は、X軸で毎秒5単位、Z軸で毎秒-1単位にしてください。また、Y軸の速度を変えないでください(元の通りに保持する)

答え
Vector3 velocity = rb.linearVelocity;
velocity.x = 5;
velocity.z = -1;
rb.linearVelocity = velocity;

4. 取得したRigidbodyをY軸周りに90度回転してください。

答え

Rigidbodyで動かす場合、Transformをいじるのではなく、Rigidbodyのメソッドを使わないといけない。Rigidbodyを回転させるには「MoveRotation」を使用する。

rb.MoveRotation(Quaternion.Euler(0, 90, 0));

5. スペースキーを押したら、「ball」ゲームオブジェクトを削除する処理を書いてください。

答え
if(Input.GetKeyDown(KeyCode.Space)
{
    Destroy(ball);
}

6.「box」というゲームオブジェクトの位置を「x=1, y=0.5, z=0」にしてください。

答え
box.transform.position = new Vector3(1, 0.5f, 0);

7. 「box」というゲームオブジェクトの位置を「x=5」にし、「y」と「z」は元の数値のままにしてください。

答え
Vector3 pos = box.transform.position;
pos.x = 5;
box.transform.position = pos;

8.「box」というゲームオブジェクトの位置を現在の位置よりも、左の方に1単位に動かしてください。

答え

少なくても、2つのやり方がある

Vector3 pos = box.transform.position;
pos.x -= 1;
box.transform.position = pos;

 または 

box.transform.Translate(-1, 0, 0);