【Unity・初心者向け】Space Shooter tutorialを作るときの3つの注意点(C#)
※2016年2月18日 コード一部修正しました。
こんにちは。
技術的(?)なことを書くことは久しぶりな気もしますが、
最近またUnityを再開しました。
だいぶ忘れてる&ゲームをもう一つ作ってみたくなったので
公式のチュートリアルをやることにしました。
Unityさんいろいろ親切ですねえ。。
Unity - Space Shooter tutorial
目次
まさかのALL英語
って英語かい!( ̄Д ̄;
とリンクを見て思った方。
その通り、こちらは全部英語です!
でも少しでも触ったことがある方なら、開発画面は同じなので、
割と直観的に付いて行けるのでは・・・と思っています。
(4. Extending Space Shooterは動画自体が超長いので私はまだやっていません・・・そのうちやります)
たまに「Fantastic!」とか「Nice!」とか言ってくれるので、
一人でフフッとなりながら作ってみました。
作っていて気になったところをまとめてみましたので、
良ければご参考にしてください。
※タイトルの通り今回もC#です。というか今後しばらくはC#の予定。
1.【Unity5】コンポーネントを取得する時はGetComponent();を付ける
まあ現在は大分浸透しているみたいですが、どうも公式でもUnity5以前を前提に作っているようですので
(記事も古いですししょうがない)
Unity5でチュートリアル通りにスクリプトを組むと多分エラーになると思います。
ので、RigidbodyやAnimatorなどのコンポーネントを取得する時はこんな感じ。
public class Hogehoge: MonoBehaviour { //Rigidbody型の変数を用意 public Rigidbody rb; void Start () { //rbにオブジェクトのコンポーネントを代入 //代入という表現がいいのかは不明。 rb = GetComponent<Rigidbody>(); rb.velocity = transform.forward * speed; } }
※別のSurvival Shooter tutorialではUnity5向けにスクリプトも書かれているようです。
Unity - Survival Shooter tutorial
2.エラーで困ったらスクリプトのdiffをとってみる
私はWin使いなので、WinMargeを使ってチュートリアルのスクリプトと自分のスクリプトを
比較していました。
Macの方も、diffをとれるソフトで比較してみるといいと思います。
たま~に抜けるんですよね。
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.htmlwww.forest.impress.co.jp
3.オブジェクト型のコンストラクタにオブジェクトが入っているか確認する
結構GameObject型のコンストラクタが使われています。
チュートリアルではスクリプトで初期化しているか、
Inspectorで別のオブジェクトをドラッグ&ドロップしているか
だと思います。
スクリプトはすぐわかるのですが、後者は
動画で見逃すと探すのが大変です・・・
動画でもセーブしてプレイをよくしていますが、
同じタイミングでセーブ&プレイした方が被害が少なくて済みます(笑)
4.その他、タッチ対応等
スマホ向けにバーチャルジョイスティックを実装したい場合は、
こちらのブログを参考にするといいと思います。
(多分このブログを見ている方は多いと思いますが。私も愛読しております。)