勉強に参考になったサイト、本:
Unityで覚えるC#
MSDN
プログラミング C#

一応基本をまとめてみた。実際最初に作ったアプリは基本なコードでしか書いていないので、これだけで十分にアプリ作れる。でも以下はまだ配列には触れてないのでそれを加えて一通りだと思う。

変数

unityで使いそうな数値型挙げる

・float 浮動小数点数、サイズは32 ビット
・double floatの精度が上がったやつ。サイズは64ビット
・byte 8ビット符号なし整数。0から255までいける
・int 32ビット符号付き整数。-2147483648から2147483647までいける
・decimal doubleより劣るけど整数、少数両方いける。使うかわからないけど、実際コンピューターで数字を計算する場合若干誤差でているらしいので、小さい数字ではいいけど例えば、これが何億って計算する場合使うかも。(float型の変数でずっと足し算していくと誤差するみたい。)


そういえば浮動小数点って10進数の少数を2進数で表現しつつ、小数点の位置を自由に変えられることから浮動小数点と呼ばれるんだって。なるほどー。

あまりこういう雑学みたいなところを覚えてもしょうがないような気がするけど、なんか後々役に立ちそう。

リテラル

リテラルとは、プログラムのソースコードにおいて使用される、数値や文字列を直接に記述した定数のことであるって書いてあった。詳細はここ

例えば、
4.1511
みたいなコード。実はこれ一つの式でもあるといえるらしい。
そして数値が完全に一致している場合をリテラル式と呼んでいる。
要するに定数みたいなものと覚えて大丈夫そう。

んでよくなんでだろうって思っていたのが
doubleやfloatのときのリテラル式の計算で
2.0/5.0みたいな書き方をしていること。
普通に2/5で良いじゃんって思ってたけどこれ結果が整数じゃなくなるので浮動小数点を表現するために小数点として計算が行われ、結果も0.4になるということらしい。

あとリテラルで思ったのが一般にハードコードと言われているのはリテラルが多いこと?みたいな感じで妄想できて、どういったコードをシステムごとに書けばいいかなんとなくでわかった?ような気がした。

インクリメント(デクリメントは--)

counter++;
みたいに書く。以下と同等。

counter+=1;//counter = counter+1;と同じ

//←これ以降に書いた行につき、プログラムが実行されない。プログラムの説明などする

単純に実行後には1が加算されている。

こんなのもok

int countstep = counter++;//左の変数には実際インクリメントされていない

int count step = ++counter;//インクリメントされた後の数値を取っている


if文

基本的な書き方

if(flag)//右括弧内はboolean型(tureかfalse(真、偽)を扱う)
{
Debug.Log("Hi there")//デバッグ処理の書き方(unity)
}

例えば、flagにtrueが入っていたら、実行結果は"Hi there"になる。
逆にfalseが入っていたら、if文内は何も実行されない。

比較演算子

・< 普通の数学と同じ(Item<2だったらItemより2の方大きい)
・> 普通の数学と同じ 上と逆
・<= 普通の数学と同じ (以下の意味)
・>= 普通の数学と同じ (以上)
・== 等しい
・!= 等しくない
・&&  ”それに加えて”みたいな意味
・|| ”または”の意味

これをif文で書くと

if(!flag&&Angle<=8)
{
Debug.Log("Hi there");
}


”もしflagがfalseで、angleが8以上の場合は実行”になる

このコードを冗長な記述をすると

if(!flag)
{
If(angle<=8)
{
Debug.Log(Hi,there);
}
}

になる。
でも上と全く同じ。

if else 文

基本的な書き方

string favoriteArtist =args[4];

if(favoriteArtist=="B'z-san")
{
….
}
else if(favoriteArtist=="Ooshima-san")
{
….
}
else if(favoriteArtist=="Kintaro-san")
{
...
}
else if(favoriteArtist=="Danmitu-san")
{
….
}


見ての通り、好きなアーティストがもしB'zさんならそのif文を実行
でもキンタローさん???がお気に入りならそのif文を実行
って感じ。そしてこの文と全く同じにそして美しく視認性に優れるのがswitch文。
っていいながら知らなかったので一度も書いたことがない。お恥ずかしい。

switch文

基本的な書き方

string favoriteArtist =args[4];

switch(favoriteArtist)
{
case "B'z-san"
 Debug.Log("let's go B'z concert");
break;

case "Ooshima-san"
 Debug.Log("let's go Ooshima concert");
break;

case "Kintaro-san"
 Debug.Log("let's go Kintaro concert");
break;

case "Danmitu"
 Debug.Log("let's go Danmitu concert");
break;

}

内容は上のif else文と同じ。書くのちょっと大変だけど書けば見やすい。

foreach文

基本的な書き方

using UnityEngine;
using System.Collections;

public class Loop_Test1 : MonoBehaviour {

//↓配列。今は箱の中に何か入るイメージでok。↓は{3,3,3,3,3,3,1}が入る。
public static int[] levels = new int[]{3,3,3,3,3,3,1};

void Start()//最初に実行される
{
foreach(int level in levels)
Debug.Log (level);
}
}
 
実行結果
3
3
3
3
3
3
1

levelsの中(箱の中)の要素をそのまま連続してlevelで吐き出すといった感じ。
私は当初C#やり初めたころ、foreachわかりずらかったのでとりあえずそのままでもunityに貼付けれるようにした。

forループ文

基本的な書き方

for(int i=0; i<4; i++)
{
Debug.Log(i);
}

実行結果

0
1
2
3
4

意味はiが4になるまで繰り返してiを1ずつ足して実行するです。
独特でほとんど決まった書き方。どの言語でもあるらしい。
GUI作成するときforループを使って書いたけどマジやばかった。アルゴリズム知らないでやるものではない?のかな。
またそのときになったら書くけどNGUI買った方いい。最近また新しいアセット出たけどモバイルであれば、たぶんNGUIで間違いないと思う。話それた。

while文

基本的な書き方

int i = 1;
while (i <= 4)
{
Debug.Log ("無理");
i++;
}
実行結果

無理
無理
無理
無理

ループの文が3つも出てきたので説明は割愛。
んなわけで、これ以上書くのは無理ということで終わりたいと思う。次は私もほとんど知らなかったこと、もしくは怖くて今まで書かなかったようなものを紹介できたらと思う。