Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第06回 Unity講座 ~クラス~

第06回 Unity講座 ~クラス~

北海道科学大学 電子計算機研究部のソフトチームで行っているUnity講座の資料です。
電算部Webページ URL:http://densan.info/index.php
旧Webページ URL:http://www1.hus.ac.jp/~densan/index.htm
--------------------------------------------------
ここから資料内のURLやプログラム等
--------------------------------------------------

More Decks by 北海道科学大学 電子計算機研究部

Other Decks in Programming

Transcript

  1. クラス ~実際に書いてみる~ 実際にクラスを書いてみましょう。 Test.cs(←前回作ったファイル名 ) using System.Collections; using System.Collections.Generic; using

    UnityEngine; public class Player { private int hp=100; private int pow=10; public void Attack() { Debug.Log(this.pow + "のダメージを与え た!!"); } public void Damege(int damege) { this.hp -= damege; Debug.Log(damege + "のダメージ!! "); } } public class Test : MonoBehaviour { // Use this for initialization void Start() { Player player1 = new Player(); player1.Attack(); player1.Damege(70); } // Update is called once per frame void Update() { } } 6
  2. クラス ~実際に書いてみる解説~ 右図の部分でPlayerクラスを定義してい ます。 これらは、「アクセス修飾子」というもの で、他のクラスからメンバにアクセスでき るかを表しています。 publicがついているメンバは他のクラスか らアクセスできますが、privateのついてい るメンバは他のクラスからアクセスするこ

    とができません。 Test.cs(←前回作ったファイル名 ) ここまで省略 public class Player { private int hp=100; private int pow=10; public void Attack() { Debug.Log(this.pow + "のダメージを与え た!!"); } public void Damege(int damege) { this.hp -= damege; Debug.Log(damege + "のダメージ!! "); } } ここから省略 外部アクセス可能 外部アクセス不可 7
  3. クラス ~実際に書いてみる解説~ ここで、先ほどの部分で定義したクラス変 数とインスタンスを作成し、インスタンスを 代入しています。 インスタンスの作成と代入は以下のような 文法で出来ます。 Test.cs(←前回作ったファイル名 ) ここまで省略

    void Start() { Player player1 = new Player(); player1.Attack(); player1.Damege(70); } ここから省略 インスタンスの作成と代入 クラス型名 変数名 = new クラス名(); ※Player型のplayer1宣言し、インスタンスを代入している Player player1 = new Player(); 9
  4. クラス ~実際に書いてみる解説~ ここで、Attack関数とDamege関数を呼び 出しています。 以下のような書式で、インスタンスが持っ ている、関数や変数を使用出来ます。 Test.cs(←前回作ったファイル名 ) ここまで省略 void

    Start() { Player player1 = new Player(); player1.Attack(); player1.Damege(70); } ここから省略 メンバ関数・メンバ変数の使用方法 変数名.メンバ関数名もしくはメンバ変数名 例player1のメンバ変数hpを100にする player1.hp=100; 10
  5. クラス ~実際に書いてみる解説~ ここで、変数名の前にthisと書かれていま す。thisは「自分自身のクラス」を表す文 です。thisをつけることによって、必ずメン バ変数を使用できます。 thisを付けなくても、メンバ変数は使用で きますが、ローカル変数と区別するため にthisをつけておきましょう。 Test.cs(←前回作ったファイル名

    ) ここまで省略 public class Player { private int hp=100; private int pow=10; public void Attack() { Debug.Log(this.pow + "のダメージを与え た!!"); } public void Damege(int damege) { this.hp -= damege; Debug.Log(damege + "のダメージ!! "); } } ここから省略 private int pow=10; public void Attack() { int pow=100000; Debug.Log(pow + "のダメージを与えた!! "); } 出力:100000 のダメージを与えた!! ローカル変数 thisがついていないとローカル変数の値が表示されてしまう! 11