Unity

C#の構造とルール

投稿日:2019年6月5日 更新日:

Unityのデフォルトのスクリプト

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

public class Sample : MonoBehaviour 
{

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

C#スクリプトはいくつかエリアに分かれているので、まずはそのエリアについて解説します

C#の機能やUnityの機能を使うと決めている部分

using System.Collections;  //C#の機能を使う
using System.Collections.Generic; //追加のC#の機能を使う
using UnityEngine; //Unityの機能を使う

ここは基本的にはいじりません。
Unityの機能を追加する場合(例えば文字の表示や、体力ゲージなど)、追加します。

スクリプトの名前を決めている部分

public class Sample : MonoBehaviour //スクリプトの名前はSampleに指定しています

ここで指定しているスクリプトの名前とC#を作成した時につけた名前が違うとバグります
MonoBehaviourというのはオブジェクトに貼り付けるタイプのスクリプトという意味です

使う変数の名前を入力する部分

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

public class Sample : MonoBehaviour 
{
    
 //ここに変数をいれる
    
// Use this for initialization
    void Start () {
    }

例えばGetabakoという変数を作ってみると

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

public class Sample : MonoBehaviour 
{
    
 public int Getabako;
    
// Use this for initialization
    void Start () {
    }

となります
例ではグローバル変数をint型(整数)でGetabakoという変数を作っています
因みに一つの命令をする度に文末には「;」をつけます

変数の型や演算子については

#C#での変数の作り方

①図を参考にして変数を入力していきます。
図1.png
②変数はアクセス修飾子 型 変数名;と入力します。
アクセス修飾子については以下を参考にして下さい。
スライド1.PNG
型については以下を参考にして下さい。
スライド2.PNG
例えば他のオブジェクトでも使用可能なfloat型のgetabakoという変数を作る場合
public float getabako; と入力します。

にまとめておきましたので見て下さい

ゲームが開始した時に一度だけ実行する部分

// Use this for initialization
    void Start () {
   //ここに一度だけ実行する命令をいれる
    }

ここにはゲーム開始時に一度だけ実行する命令をいれます
よく入力するのは…

  • 開始直後に一度だけ起こるイベント
  • 変数の値の設定
  • コンポーネント(重力や当たり判定などの便利機能)の取得

ゲーム開始中毎フレーム実行する部分

// Update is called once per frame
    void Update () {
   **ここに毎フレーム実行する命令をいれる**
    }
}

ここにはゲーム開始中毎フレーム実行する命令をいれます
ほとんどの命令はここにいれていきます

コルーチン、衝突判定などを入れる部分

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

public class Sample : MonoBehaviour 
{

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}
//ここにコルーチン、衝突判定などをいれます
}

コルーチンは一連の命令を一塊にまとめたもので命令の中で待ち時間を入れたい時にも使います
当たり判定が衝突した時の処理もここにいれます

実際に全てを入れてみると以下のようになります

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

public class Sample : MonoBehaviour 
{

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}

IEnumerator Getabako() → Getabakoというコルーチンを定義している
    {
        yield return new WaitForSeconds(0.5f); → 0.5秒待つ
     Debug.Log(”ゲタバコ先生は最高!!”); → ゲタバコ先生は最高!!とログを出す
}

void OnTriggerEnter(Collider collision) → 当たり判定が衝突したときの命令を記述している
    {
        if (collision.gameObject.tag == "getabako") → もし衝突した当たり判定のタグがgetabakoなら
        {
            StartCoroutine("Getabako"); → Getabakoコルーチンを開始する
        }
    }
}

コルーチン

IEnumerator コルーチンの名前()で始めて{}ではさみます。
コルーチンの中にいれる待ち時間は
yield return new WaitForSeconds(秒数);と記述します。
この命令はコルーチンの中でしか使えません。

衝突判定

void OnTriggerEnter(Collider 変数の名前)で始めて{}ではさみます。

例ではGetabakoというコルーチンを作っていてその内容は0.5秒待ってから
ゲタバコ先生は最高!!とログを出すという一連の流れを設定しています
そしてそのGetabakoコルーチンはgetabakoというタグがついた物に衝突した時に開始されます
コルーチンや、衝突判定についてはこの後実際にスクリプトを作成していく段階でも触れますので、
今は何となくの理解で大丈夫です。

C#の基本まとめ

  • 構造とルールを覚える
  • 構造は以下の図の通りになっていて、②④⑤⑥はそれぞれ { } ではさみます。
    また、各命令は文末には必ず ; をつけます。
    スクリプトはこのようにエリアに分かれているので、適切な命令を適切なエリアに入力していきます。
    //を文頭につけるとそれは全てコメントになり、スクリプトには無関係なものとなります。
    人にスクリプトが何をしているのか伝えるときには、このコメントを使うことで、
    それぞれの命令が何をしているのかをわかりやすくします。

  • 変数の使い方やif文、コルーチン、衝突判定などよく使う命令の使い方を覚える
  • 変数、if、コルーチン、衝突判定を使いこなせれば基本的なゲームの作用は格段に作りやすくなります。
    まずはこれらの基本の型をしっかり頭に叩き込みましょう。

  • その他の命令の使い方を覚える
  • 沢山ありますがあとは書き方を変えるだけ!がんばりましょう

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

-Unity

執筆者:


comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

UnityRemoteのダウンロードと設定

PCとスマホを接続してお手軽にVRを楽しんだり実機でテストプレイするにはUnityRemoteというアプリが必要です UnityRemoteはPCと接続してUnityでテストプレイすると画面をスマホに …

no image

加速度センサーWebテスト

no image

【Unity】WebGLでビルドしてレスポンシブにWordPressに埋め込む

WebGLでビルドしてWebに埋め込みたいときってありますよね でも出力したデータをそのまま埋め込むとスマホで見たときにサイズが合わなかったりします index.htmlの編集 デフォルトで出力した際 …

Unityでデータを別PCに移す

今回やること Unityで作成したデータを別のPCに移行します Unityパッケージの作成 ProjectのAssetsを選択し、左上のAssetsをおし、ExportPackageをおします 項目に …

秋田のローカルタレントマティログさんのAR写真アプリ

この作品の経緯 秋田のローカルタレントマティログさんが運営するシンプルシナジーに出演した時に作成したものです 操作説明 左下のアイコンをクリックすると、マティログさんが登場します クリックしてアフロ出 …

ゲタバコ倶楽部へようこそ

  • 300743総閲覧数:
  • 26今日の閲覧数:
  • 231535総訪問者数:
  • 22今日の訪問者数:

住所
Akita,Japan

営業時間
月~日: 10:00 AM – 10:00 PM

このページはゲタバコ先生の日々思うことや活動、プログラミングの習得方法を発信するページです。
仕事のご依頼、メッセージ等、サービス概要をご覧の上で、お気軽にご連絡ください。

getabakosensei@gmail.com