WebエンジニアがUnityを3日間だけ触って思ったこと
こんばんは。
先日のGWに、何か新しいことをしようってんで、Unityで2Dアクションゲームを作ろうと3日間だけUnity触りました。のでその時のことなどを綴っていきます。チラシの裏ってやつです。
言いたいことリスト
・Unityすげー
・C#について
Unityすげー
Unityはすごい。3日間触って一番感じたのは、このゲームエンジンは極力エンジニア以外の人間にも触れる用に工夫がされているということ。物理的な挙動をするオブジェクトをコードも書かず数ステップで作成できる。C#でスクリプトを組んだとしても、変数をpublicで外出ししておけば、二値だろうが数値だろうが画像ファイルだろうが、GUI上から初期値を設定できる。
最初に骨組みさえ作れば、非エンジニアでも各挙動を調整出来るっていうのは、洗練されているなーと思いました(こなみ)。
C#について
UnityはスクリプトをC#で書く。
(正確には独自カスタムされたJavascriptと独自言語のBooも使えるけど、昨今の流れから採用するメリットがない)
普段はJavaやrubyでコーディングしているもんだから、コード規約的なところで色々悩んだのでそのことを書いてきます。
大文字小文字のアレコレ
Javaはクラスは大文字、変数・メソッドは小文字で始める。
Human human = new Human();
human.getAge();
C#はpublicが大文字、それ以外は小文字で始める。。?
private age;
public GetAge() { ... }
ただ、C#の規約は結構プロジェクトとかでも違う模様?Unityの既存のソースとかもなんか微妙にニュアンス違う感じがしたし...言語レベルでは統一されていないのだろうか?
なお、C#の大文字・小文字、どうなってんの~??と調べた際は下記記事様が非常に役に立ちました。ありがとうございます。
C#コーディング規約の個人的なまとめ | jikkenjo.net
if-elseの書き方
Javaの書き方、好みはあるかと思うけどこんな感じ。
if (isOtokomae) {
return "Ikemen";
} else {
return "Busaiku";
}
C#(VisualStudioのフォーマッター)だとこう
if (isOtokomae)
{
return "Ikemen";
}
else
{
return "Busaiku";
}
縦にながーい。まぁelse ifの時だと、最初のifの条件と同等に扱っている感じがしていいかもな、とも思いはしますが...それでもやっぱり慣れなくて(これが一番か)やだなぁ。
上で挙げたことはギャップがあったけど、郷に従えということでとりあえずその通りに組みました。逆にC#やってるヒトはやっぱりJavaの書き方がキモかったりするんだろうか。