OKADA LABO

Unityの基本。c#スクリプトでよく使う演算や構文のメモ

Unityのc#スクリプトでよく使う演算や構文や関数をメモしておく。こうしておくと迷いなし。

自分用のメモでごんす

時間が経つ毎にX軸の数値が0.1ずつ増えていく

  float x = 0.1f;

    void Start () {

    }

    void Update () {
        Vector3 v = new Vector3 (x, 0, 0);
        transform.Translate (v);
    }

using UnityEngine.UI;宣言

  using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

変数の宣言

  int x;
string y;
bool z;
string y = "Hello World";

四則演算子

1000 + 1000 //足し算
10 - 5  //引き算
3 * 5  //掛け算
30 / 6  //割り算
5 % 2  //剰余 5を2で割ると余りは1ですね

テキストを含む足し算は、もう一方の値はテキストに変換される。

int a = 10;
int b = 20;
int c = a + b;
text.text = "計算結果 :" + c;
 string w1 = "OKDA";
 string w2 = "LABO";
 text.text = w1 + ":" + w2;

代入演算子

X += Y  //XにYを足す
X -= Y  //XからYを引く
X *= Y  //XにYを掛ける
X /= Y  //XをYで割る
X %= Y  //XをYで割った余り(剰余)

上の意味

X = X + Y  //XにYを足す
X = X - Y  //XからYを引く
X = X * Y  //XにYを掛ける
X = X / Y  //XをYで割る
X = X % Y  //XをYで割った余り(剰余)
int x = 2;  //変数の宣言と代入
x *= 3  //代入演算
//x *= 3 の部分は、 x = x * 3。だから最終的に xは6

比較演算子

  X == Y  //XとYは等しい
X != Y  //XとYは等しくない
X > Y  //XはYより大きい
X < Y  //XはYより小さい
X  <= Y //XはY以下
X  >= Y //XはY以上

インクリメント演算子(++)・デクリメント演算子(--)

x++;
++x;
y--;
--y;
  ++x;  // x = x + 1; と同じ
--x;  // x = x - 1; と同じ
  int x = 10;
        ++x; //1増やす
        text.text = "計算結果 :" + x;
        //11になる

空の配列の作り方

int [ ] numbers = { } //int型の配列を作って、変数numbersに代入
string [ ] words = new string[ ] //string型の配列を作って、変数wordsに代入している

配列に要素が入る場合

string [ ] words = {"Hello", "World", "baseball"}
string[ ] words  = new string["Hello", "World", "baseball"]

配列の宣言と代入

string[] ary = {"OKADA", "LABO", "Programming"}; //配列の宣言と代入
string str = ary[0] + "::" + ary[1] + "::" + ary[2];
print(str);
//OKADA::LABO::Programming を出力
string[] fruits = {"みかん", "りんご", "いちご"};

fruits[0] //みかん
fruits[1] //りんご
fruits[2] //いちご

配列の要素の数をカウント

string[] ary = { "りんご", "ごりら", "らっぱ" }; //配列の宣言と代入
int str = ary.Length;  //要素数のカウント
print(str);
//3 を出力
string text = "要素数 :" + str;
print(text);
//要素数 :3 を出力

foreach文

  foreach ( 変数 in 配列 ) {
  //実行する処理
}
string[] animals = {"cat", "dog", "monkey"}; //配列の宣言と代入
  foreach (string animal in animals){
      print(animal);
  }
  //cat
  //dog
  //monkey

if文

  int num = 3;
  if (num > 1)
  {
      print("1より大きいです。");
  }

  //1より大きいです。 を出力

条件式が偽(false)の場合に処理

  int num = -1;
  if (num > 0) {
      string text = "値は正です。";
      print(text);
  } else {
      string text = "値は負です。";
      print(text);
  }
//値は負です。 を出力
int num = 0;
if (num > 0) {
    string text = "値は正です。";
} else if (num == 0) {
    string text = "値は0です";
    print(text);
} else {
    string text = "値は負です。";
    print(text);
}
//値は0です。 を出力

switch文

  switch(変数){
  case 値1:
    変数が値1のときに行う処理
    break;
  case 値2:
    変数が値2のときに行う処理
    break;
    ・
    ・
    ・
  default:
    どの値でもないときに行う処理
    break;
}

列挙隊enumとswitch

enum Fruits { apple, orange, banana };

void Start () {

      string fruitsText = "";

      Fruits fruit = Fruits.orange; //Fruitsからorangeを取得し、変数fruitに代入
      switch (fruit) {
          case Fruits.apple:
              fruitsText = "りんごです";
              print(fruitsText);
              break;
          case Fruits.orange:
              fruitsText = "みかんです";
              print(fruitsText);
              break;
          case Fruits.banana:
              fruitsText = "ばななです";
              print(fruitsText);
              break;
          default:
              fruitsText = "どのフルーツでもないです";
              print(fruitsText);
              break;
      }

}

//みかんです を出力
  enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

  // Use this for initialization
  void Start () {

        string dayText = "";

        Days day = Days.Monday; //DaysからMondayを取得し、変数dayに代入
        switch (day)
        {
            case Days.Sunday:
                dayText = "日曜日です";
                print(dayText);
                break;
            case Days.Monday:
                dayText = "月曜日です";
                print(dayText);
                break;
            case Days.Tuesday:
                dayText = "火曜日です";
                print(dayText);
                break;
            case Days.Wednesday:
                dayText = "水曜日です";
                print(dayText);
                break;
            case Days.Thursday:
                dayText = "木曜日です";
                print(dayText);
                break;
            case Days.Friday:
                dayText = "金曜日です";
                print(dayText);
                break;
            case Days.Saturday:
                dayText = "土曜日です";
                print(dayText);
                break;
            default:
                dayText = "どの曜日でもありません。";
                print(dayText);
                break;
        }

  }

関数の定義

  void Start () {
        hello();  //関数の呼び出し
    }

    void hello() {  //関数の定義
        print ("hello world");
    }

switch文とif文

int num = 1;
if (num == 1) {
    print ("numは1です");
} else if (num == 2) {
    print ("numは2です");
} else if (num == 3) {
    print ("numは3です");
} else {
    print ("値が大きすぎます");
}
int num = 1;
switch (num) {
case 1:
    print ("値は1です");
    break;
case 2:
    print ("値は2です");
    break;
case 3:
    print ("値は3です");
    break;
default:
    print ("値が大きすぎます");
    break;
}

while文

int num = 0;
while (num <= 10) {
    print (num);
    num += 1;
}

while文など繰り返し処理を使う場合、繰り返し回数を示す変数をよく使います。それをカウンタ変数と言います。

int total = 0;
int count = 0; //カウンタ変数
while (count <= 10){  //カウンタ変数をチェック
  total += count;
  count += 1;  //カウンタ変数を増やす
}

for文

for ( 初期化処理 ; 条件 ; 繰り返し後の処理 ){
//繰り返す処理
}
string text = "";
int total = 0; //変数の宣言と代入
for (int i = 1; i <= 10; i++) {
    total += i;
}
text = "合計 :" + total;
print(text);
//55