Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unity/CSharp 1 - pptx

251 views

Published on

長崎大学マルチメディア研究会「Unity/C#講座」で使用したスライドです。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Unity/CSharp 1 - pptx

  1. 1. Unity(C#)講座 Version1.2 (2019.06.25)
  2. 2. 自己紹介 名前: Boltz 所属: 長崎経済大学3年 好きな性: 多態性(Polymorphism) UnityC#講座のスライドを クラウドとブロックチェーンとIoTで インタラクティブに生成する超高性能AI たまにスライド生成に失敗する, 助けてくれ!!!
  3. 3. 目次 •概要と目的 •Unityにプログラムを書くには •C#について •C#文法事項の学習(別資料) •演習
  4. 4. 到達地点と概要
  5. 5. 前提条件 •環境: Unity 2018.4.0.f1 • Unityはバージョンで挙動がかなり異なることも • 間違えずにダウンロードしてください • また、必須ではないがUnityHub経由の利用が便利 •エディタ: VisualStudio2017 • VimでC#を書いている人は我慢してくれ • 2019とかでも大して動作は変わらない(はず)
  6. 6. 前提条件 •C言語について理解がある • 構造化プログラミングの説明は速を上げます • C言語との差分を埋める説明の仕方をします •基本的な情報科学の知識がある • 基本情報技術者が体系的に学べていい感じ • ネットワーク, データベース(SQL), アルゴリズム, データ構造, ハードウェアの分野(大雑把)
  7. 7. 到達地点 •自分の思い描くゲームを作れるように なる • そのために、必要な処理を他から持ってくることが できる or 自分で実装できるようになる) • たとえ他から持ってきた処理でも、ある程度までは 中身が解読できる
  8. 8. 到達地点 •Unityチュートリアルをやっていく • ただしコードの写経はしないように • Unityの操作方法を学ぶためだけの教材ではない ので!!! •その前にC#のコードの意味を学習す る
  9. 9. 講座の流れ •C#の書き方 •玉転がしゲーム •シューティングゲーム •リズムゲーム(?)
  10. 10. Unityにプログラムを 書くには
  11. 11. 新規作成を押す
  12. 12. 基本的に3Dでやっていきます
  13. 13. ヒエラルキー右クリック >Create Empty
  14. 14. 作られたゲームオブジェクトが対象のインスペク タで、 Add Component > New Script
  15. 15. Scriptが作られました (Assetフォルダに追加された + GameObject にアタッチされた)
  16. 16. Script右クリック >Edit Script VSが開いてコードをいじれます
  17. 17. Windows版
  18. 18. Mac版
  19. 19. まとめ •UnityでC#を書くまでの過程を紹 介した •Unityシーン上のオブジェクトにス クリプトがアタッチされている必 要がある
  20. 20. 補足: Save Ctrl+Sで保存しよう!大事!
  21. 21. C#について
  22. 22. C#とは •C++++だよ(暴論) •C言語に色々加わったものという認識 で多分大丈夫 •オブジェクト指向言語 • ObjectとObject間の関係を記述する
  23. 23. C#とは •C言語と違う点 •C言語と似ている点 •実際のプログラム
  24. 24. C言語と違う点
  25. 25. こいつらは何!!? 1 2 3 4
  26. 26. C言語と違う点 •1. Usingディレクティブ • プログラムを書く上での補助機能 • 今は気にしないで大丈夫 •2. Class Practice • {}内部がPractice Classの内容と定義して いる • : MonoBehaviorについてはあとで説明
  27. 27. C言語と違う点 •3. 戻り値voidの Start関数 • Update前に最初の1回だけ実行される • 実行してほしい内容を中に書く •4.戻り値voidの Update関数 • 1フレームに1回実行される • 実行してほしい内容を中に書く • 今はとりあえず内部がずっと無限ループし てるみたいなイメージで...?
  28. 28. 1回だけ実行させてみよう • Debug.LogはUnityコンソールに文章を出力する 関数 • Debugはクラス名, Logは関数名 • Debugクラスの中のLog関数を呼んでる • 引数はobject型(intとかstring含む)
  29. 29. プログラムを書き終わったら|>Unityにアタッチ
  30. 30. 実行して問題なかったら■で停止しよう
  31. 31. オッ オッ2
  32. 32. 補足: 文字列の連結と計算 • Debug.Logの中で計算してみよう • 演算子は基本的にCと同じ感覚で使える • (構造体アクセスの)アロー演算子はない けど
  33. 33. 補足: 文字列の連結と計算 • 文字列リテラル(""部分)後に+演算子を配置した ら、後に続く要素と連結される • 続けて連結できる • Debug.Log("なるほど" + "シベリア" + "送りだ");
  34. 34. クラスとは •C言語にはなかった機能 • C++(C with classes)にはある •なぜクラスがあるのか? •歴史的経緯が存在する
  35. 35. C言語のころまで 変数 関数(メソッド) 関数(メソッド) 変数 変数 関数(メソッド)
  36. 36. 関連性のあるものをまとめた 変数 関数(メソッド) 変数 変数 関数(メソッド) 関数(メソッド) クラスA クラスB
  37. 37. オブジェクト指向(C#) 変数 関数(メソッド) 変数 変数 関数(メソッド) 関数(メソッド) クラスA クラスB
  38. 38. 具体的な例 年齢 吠える 年齢 にゃ〜んする かみつく いぬ ねこ かわいい度
  39. 39. クラスとは •関数や変数などはクラスに内包される ようになった •クラスは設計図、インスタンスとして 実体化させて使用する
  40. 40. 実体をつくる 年齢 わらう 真顔になる Person Person perA = new person(); Person perB = new person(); メモリ空間
  41. 41. 継承で機能を引きつぐ 年齢 わらう 真顔になる Person 細長さ RedLongPerson : Person 年齢(変数), わらう(関数), 真 顔になる(関数)も利用でき る! 赤くなる
  42. 42. MonoBehaviorクラスの継承 •Start, UpdateなどはMonoBehaviorで定義さ れている •Unityで使用する便利な機能を使うために 引き継いでいる • StartやUpdateなど
  43. 43. 簡単なアクセス修飾子 privateprotectedinternal public MethodM M MアセンブリA public アセンブリB M 別のクラス 派生クラス M
  44. 44. クラスまとめ •関数や変数などはクラスに内包される •クラスはインスタンスで実体化させる •クラスは継承ができる • 実装における約束を定めたインター フェースの追加も継承と同じ手順 •アクセス修飾子が存在する
  45. 45. C言語と似ている点 •変数や関数周りの文法 •if文の文法(ちょっとだけ違いあり) •基本的なswitch-case文とラベル •for文やwhile文の文法
  46. 46. 変数や関数周りの文法 • 型名 変数名 = 代入; ができる • 関数名(引数...); ができる • 関数呼び出しは先ほどやった • public, privateなどおまけがつくことはある けど、基本的に一緒
  47. 47. 変数についての学習
  48. 48. 変数についての学習
  49. 49. クラスのほかにも色々な型が 組み込み型 ユーザー定義型 他の型から合成 値型 Value Type 単純型 (int, bool, float) 構造体(struct) 列挙型(enum) Null許容型 参照型 Reference Type 文字列型(string) オブジェクト型 (object) クラス インタフェース デリゲート 配列
  50. 50. C#に登場する型 組み込み型 ユーザー定義型 他の型から合成 値型 Value Type 単純型 (int, bool, float) 構造体(struct) 列挙型(enum) Null許容型 参照型 Reference Type 文字列型(string) オブジェクト型 (object) クラス インタフェース デリゲート 配列
  51. 51. C言語と似ている点 •変数や関数周りの文法 •if文の文法(判断するのはbool型だけど) •基本的なswitch-case文とラベル •for文やwhile文の文法
  52. 52. C#文法事項の学習 •KMC2017 C#でゲームを作ろう 1 •System.Console.WriteLineはDebug.Logに 置き換えて読む •System.Console.ReadLineはUnityの場合 別の方法で入力した方がいい • 手っ取り早いのはコード上で変数に直接代 入か
  53. 53. コーディング練習 •ABC 089 A問題 https://atcoder.jp/contests/abc089/tasks/abc089_a •ABC 089 B問題 https://atcoder.jp/contests/abc089/tasks/abc089_b •どちらもC#(Mono4.6.2)で解こう
  54. 54. 次回 •Unity2018.0.f1を確実にインストール してくるように • Unityのユーザー登録もお願いします •Visual Studio(Codeではない)の有効かと ユーザー認証を済ませておく • 認証は大学のアカウントでいいと思う
  55. 55. 参考文献 • 大槻 有一郎「UnityではじめるC#」2016,エ ムディエヌコーポレーション • 五十嵐 祐貴, 岩永 信之「スラスラわかるC# 第2版」2018, 翔泳社

×