• About Us
  • Contact
  • Blog
  • Visit Us

Unity クラス 分け

ニンニン ジャー たか は る, 夏祭り 連想 言葉, 交通違反 取り締まり 英語, アルインコ フィットネスプロ エアロバイク, 子守唄 ねんねんころりよ コード, 千 ヶ 滝 温泉 廃墟, ぬ 古語 否定, アルインコ ランニングマシン 比較,
良い資料なのでコチラでもメモ。 多分、こちらの登壇資料です。 peatix.com Unity開発で使える設計の話+Zenjectの紹介 from torisoup www.slideshare.net 大雑把に言えば、以下のような内容です。 クラス設計 SOILID原則 デザインパターン Zenject Unityを使用したC#の習得をサポートする連載「Unityで学ぶC#入門」です。第12回はクラスの基本的な使い方をご紹介いたします。クラスはプログラミングにおいて最も重要な考え方の一つですのでしっかりと理解しておきましょう。 というわけで、今年はどのようなクラス設計をしたのか。また、どうしてそういう設計になったのかを紹介したいと思います。 1.与えられた要件. Unity初心者の方でもわかりやすいようにC#のスクリプトの簡単な構造について解説しています。namespaceの使用方法とクラスや構造体の中に書かれるものについての説明しています。メンバと言う言葉はよく使うと思うのでぜひ覚えておきましょう。 今回はクラスの説明です。クラスは簡単にいうと設計図です。その設計図には関係のある変数とメソッドがまとめられています。「Player」が「int」や「string」の型のような役割をしているということですね。新しいことばかりだと思ってやだと思うかもしれませんが、これからのプログラミングを助けてくれるものだと考えれば、知ろうと思えます(ポジティブ)インスタンス作成には「クラス名 変数名 = new クラス名();」これで作成することができます。これで実体を作るという感じです。ここは「Player」クラス内で書かれています。メンバ変数を設定しています。これを使うと宣言したクラス以外でその変数にアクセスすることができなくなります。詳しくは「アクセス修飾子」と書いてある場所をご覧ください。あくまでクラスは設計図です。設計図をもとにしたものを作らないと意味がないし、使えません。【まとめ】ゲーム開発で使えるフリー素材<キャラクター・モンスター編>クラス作成です。「Player」クラスを作っています。「Player」の設計図ですから、この中にHPやら武器攻撃のメソッドを書いていきます。他にも「public」や「protected」というアクセス修飾子があります。サブクラスに関してはここで説明しません。とりあえずよく出てくる、「public」と「private」は覚えておいてください。このようにして「mainPlayer」という変数を使うことができます。おつかれさまでした。「これ役立つの?」と思えることばかりだったと思います。ただ、絶対に役立ちますし、Unityと合わせた使い方の記事も作っていきます。いつもと違うところがありますよね。なんかint型の前に「private」というものがついています。ここでまたなにかおかしいことがあります。「this」ってなんぞや。画像のようなゲームの作り方を販売しています。色々と応用できるチュートリアルとなっています。ぜひ、作ってみてください。「戦士のメソッドどれだっけ。あーこれか、あれ変数はどれ、これは魔法使いの変数だった」「戦士の変数とメソッドはここのクラスに書いてある」「賢者の変数やメソッドはここのクラスに書いてある」とわかりやすく管理できるようになるのです。もしクラスがなかった場合、こやつらの変数やメソッドをまとめるのは大変です。クラス→クラスをもとにインスタンス→インスタンス内のメソッドを呼び出すことをしめしています。「this」はクラス内のメンバ変数を使う場合につけるものです。(つける習慣があればエラーが少なくなりんす)例えば、「Test」クラス内から、「hp」変数にアクセスすることはできません。「Test」クラス内に「Debug.Log(hp);」を書いてみてください。エラーがでます。 の様に、Layer毎に描き分けを行い、後から修正しやすくします。 Unityでも、同じようにLayerを分けることで、描画の選択や、ライトの当て方、物体の衝突などを分ける事が出来ます。 クラスってなに? クラスの書き方が知りたい メンバ変数やメンバ関数ってなに? 初期化ってどうやるの? クラスは、オブジェクト指向を勉強するうえで欠かす事のできない要素です。c#も例外ではなく、クラスを使う事になります。 MonoBehaviourって便利ですよね。C#のスクリプト用意して、MonoBehaviourを継承したクラスを作ってGameObjectにアタッチするだけでUnityの様々なイベントを利用できるようになります。しかし、便利さの裏にはパフ UnityでC#スクリプトを作った時に「クラス名 : MonoVehaviour」と書いてあるのは、Unityに標準搭載されているMonoVehaviourクラスの機能を使わせてもらいますよということで、そのおかげで色々とUnity独自の便利機能が使えているわけです〜 ②継承の具体例(変数) ここからクラスについて理解が進むように複数の例を使用して解説していきます。特にUnityを使用することで目に見えて処理を確認することができますので、ぜひ色々なゲームやアプリを作成しながらクラスについて理解してみてください。もしよくわからない場合は配列について改めて確認してみてください。つまり、int型の変数xを定義したり、String型の変数nameを定義することと変わりなく定義することができます。ヒエラルキーウィンドウのCreateからUI→InputFieldを選択してください。「GameObject.Find(”〇〇”)」で実際のUnity上のオブジェクトを探してくれます。探してきたオブジェクトのコンポーネント、ここではInputFieldコンポーネントを「GetComponent<InputField>()」とすることで取得することができます。計算クラスでは簡単な四則演算を行うメソッドを作成して、メインクラスで呼び出して使用します。このMain.csを適当なオブジェクトに取り付けて使用します。数学の基礎的な計算を行うシステムをクラスを使用して作成していきます。配列の中身を参照してコンソールに出力するメソッド「PringInformations」のfor文の使い方についてよくわからない場合は以下記事をご参考ください。これで実際に実行できる状態になりました。実行して確認してみましょう。ここで定義したcalcに実体を持たせるためにインスタンス生成を15行目で行います。登録した情報が保存されてコンソールに出力される状態になりました。ヒエラルキーウィンドウのInputField→Placeholderを選択して、textの中身を「Enter Name…」に変更してください。ここではこの両方について詳しく解説はしませんが、どちらも外部からの入力を扱うために必要なものだと認識しておいてください。ヒエラルキーウィンドウのCreate→UI→Buttonを選択してください。次に名前を「Register」、Positionの値をX=0,Y=-40、Register下のTextを「Register」に変更してください。先ほど作成した登録ボタンを複製して、名前を「Print」、PositionをY=80、Print下のTextを「Print」に変更してください。ボタンは登録ボタン(Register)とコンソール出力ボタン(Print)の2つを作成します。InformationListクラスは先ほど作成したInformationクラスを管理するクラスです。この2つにコンストラクタを使用して値を渡します。つまり、インスタンス生成時に値を受け取って代入することでInformationインスタンスを生成します。これによってCanvasの下にInputField、それとは別にEventSystemが作成されました。Canvasとは入力フォームやボタンのようなUIを扱うために必要なオブジェクトです。EventSystemはキーボード入力やクリック入力などの処理を扱うために必要なオブジェクトです。構造はいたってシンプルで、InputManagerクラスとInformationListクラスをそれぞれ作成して、RegisterボタンとPrintボタンが押されたときのメソッドを記述しているだけです。このことからわかるように、クラスというのは自分で好きなように準備できる型という認識もできるかもしれません。クラスはプログラミングを学ぶにあたってとても重要な考え方の一つです。InputManagerクラスは入力フォーマットに関する情報を管理するクラスです。入力情報を管理するInputManagerクラスと登録された情報を管理するInformationListクラスをMainクラスで扱います。Informationクラスは個人情報そのものです。このInformationクラスをInformationListクラスで複数管理するイメージです。先ほどの計算を行うシステムに比べてかなり大きめですが、こちらの方がよりクラスの利用目的が明確です。コンストラクタでは格納できる情報の数を引数として渡します。処理としては、受け取った配列の上限を変数maxに格納、現在の配列の中身の個数(最初は0)を指定、最後にInformation型の配列の長さを指定してインスタンス生成しています。プライベートな変数であるということは、これらの変数は定義されたクラス内でのみ値を変更・参照する必要があります。また、個人情報はInformationクラスとしてあらかじめクラス定義しておきます。以上のようなことを含めて定義すると、一般的に以下のように定義します。情報を受け取って配列に格納するメソッド「SetInformation」では、現在の配列の中身の個数と最大値が同じ場合、これ以上格納できないためエラーを発しています。インスタンス生成は以下のように記述します。(インスタンスを生成したいクラス(Human)とそのクラスを呼び出すスクリプト(Main))特に難しく考える必要はありません。ただの変数です。基本的にこの変数はプライベートな変数として定義されます。ここでは空のオブジェクトを作成してMain.csをアタッチします。アタッチしたら、それぞれのボタンが押されたときの処理を設定します。以下のGIFを参考にボタンに処理を設定してみてください。クラスに関しては説明をどれだけ聞いても理解しづらい部分があります。いよいよオブジェクト指向プログラミングの肝であるクラスの考え方について学びます。また、配列に値を格納するためのメソッドと配列の中身を取り出してコンソールに出力するメソッドの2つを記述しています。これを利用することで、メンバーの値を参照したり、変更したりすることができます。具体的に以下のような処理を行うことができるシステムを作成します。Calcクラスはとてもシンプルな構造のクラスで、2つの整数を引数として四則演算を行うメソッドを持ったクラスです。先ほど作成した入力フォーマットを複製して、名前を「InputAddress」、PositionのY座標を「-40」、初期テキストを「Enter Address…」に変更してください。コンストラクタも難しく考えられがちですが、特別難しいものではありません。8〜20行目で名前とアドレスそれぞれのInputFieldの情報を取得します。このクラスをMainクラスの9行目のように記述することで定義することができます。また、17,18行目のように記述することで定義したinputNameとinputAddressとUnity上の入力フォーマットをリンクさせます。まずはとてもシンプルな作りのシステムで基本的な使い方を確認します。ヒエラルキーウィンドウでInputFieldを選択して、名前を「InputName」、Positionの値をそれぞれ0に変更してください。ここではクラスの定義方法を簡単にご紹介したあとに、複数の例を使用してクラスの使い方をできるだけ理解していただけるようにご紹介していきます。「using 〇〇;」とすることで、すでに準備されたクラスなどを利用することが可能になります。ここで少しUnityの知識が必要になりますが、とても簡単ですのでご安心ください。InputFieldクラスはすでにUnityが準備してくれているクラスで、プログラムの先頭で以下のように宣言することで使用することができます。簡易的な例と具体的な例の2つを中心に解説してきましたが、クラスは実際に自分で何か作成してみて理解できることの方が多いです。メソッドに関して、それぞれのメソッドでそれぞれのInputFieldからテキストを取得してきます。またこれらのメソッドはstring型を返すメソッドです。取得してきたテキスト情報を呼び出し元に返すことができます。次に個人情報を登録するシステムをクラスを使用して作成していきます。また、16,17行目の「this.〇〇」とは自分自身のメンバーを指定するときに使用するもので、コンストラクタの引数と区別して扱うことができます。つまり、設計したクラスを利用するためにはインスタンスと呼ばれる実体を生成する必要があります。Unityではボタンが押されたときに特定メソッドを呼び出すことが可能なため、わざわざここでメソッド化しています。ここでは詳しく触れませんが、このようにすることでInputFieldを扱える状態になりました。クラスの定義と同じように重要なことの一つがインスタンス生成です。Mainクラスは今まで記述してきたクラスを扱うコントローラー的なクラスです。それぞれのクラスの詳細説明は省きましたが、今までの「Unityで学ぶC#入門」を進めていただければ理解できるレベルですのでぜひチャレンジしてみてください。格納が可能なとき、Informationsの[number]番目にInformation型の値を格納します。この部分が少し難しく感じるかもしれませんが、Information型の値を新しく作成して、そのまま配列に格納しているだけですので難しく考える必要はありません。
Unity クラス 分け 2020