夏休み・練習課題
義務ではないが、練習不足と思う学生にはおすすめ
目標
- 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);