MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

Unityで自作クラスを書く&活用する(MonoBehaviour継承クラス編)

コメント

Unityである程度の知識が身につくと、自作のクラスをつくってより自由な機能付加、チーム開発でも使いやすい環境づくりがしたくなってくる・・・ということで自作クラスを作ってインポートしてメソッド活用するところまでを記録しています

GUIコンソール上の留意点

f:id:k_mawa:20180215001215j:plain とりあえず、ヒエラルキーのオブジェクトにくっつけないと使えないので、Cubeに自作クラスのDice(サイコロ機能)をつくって、さらにDiceを利用するためのC#スクリプトUseDiceをくっつけました。

コードの解説

↓サイコロのクラス↓
Dice.cs

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

public class Dice : MonoBehaviour {

    const int diceNumber = 6;
    //最初から値を決めたいたときはconstと書くとできます
    public int smallestNum;
    //publicと書けばコンソール上で数値変更できます
    private int result;
    //privateではコンソールからいじれません

    // Use this for initialization
    void Start () {

    //オブジェクトを動かすわけではないので今回は使いません。

    }
    
    // Update is called once per frame
    void Update () {

    //オブジェクトを動かすわけではないので今回は使いません。
        
    }
    //Diceの面(想定)を返すメソッド
    public int ShowDiceNum() 
    {
        return diceNumber;
    }
    //サイコロを投げて値を返すメソッド
    public int ThrowDiceNum()
    {
        //コメントアウト部分。これだとUnityではエラー(.NETならOK)
        //Random rnd = new Random(); 
        //int result = rnd.Next(smallestNum, diceNumber); 

        //Unityならこうかく(Unity限定!)
        int result = Random.Range(smallestNum, diceNumber);
        return result;
    }
}

↓サイコロを実際にStart時に一回振るというスクリプト
UseDice.cs

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

public class UseDice : MonoBehaviour {

    // Use this for initialization
    void Start () {
        //注意
        //Dice dice = new Dice();だと
        //class Dice : MonoBehaviourでMono~を継承しているのでwarnigがでます
        //Find("オブジェクト名").GetComponent<くっついてるスクリプト名>()で指定します
        Dice dice = GameObject.Find("Cube").GetComponent<Dice>();
        
        Debug.Log(dice.ShowDiceNum());

        Debug.Log(dice.ThrowDiceNum());

    }
    
    // Update is called once per frame
    void Update () {
        
    }
}

参考にさせていただいた記事

zzyyrara.blogspot.jp

mokeinunity.blogspot.jp

ufcpp.net

【UNITY5】MonoBehaviourを継承したクラスをnew使うと怒られる UNITY5の備忘録

UnityのC#で乱数を生成する。 « GONZNOTE