リヨスケのチラシ裏

学んだことを書き留めていく自分のための技術メモです。

【Part1】Unityことはじめ【Unity勉強】

C#の勉強と並行してUnityの勉強も進めていきます。

というかUnityのためのC#勉強だったり。

 

プロジェクト作成

  1. Unity起動。
  2. 右上の「New」すでに起動している場合は左上の「File」→「New Project
  3. 「Project name」プロジェクト名を入力。これがゲーム名になる。
  4. 「Location」に保存先を入力。
  5. Project name欄の横で3Dゲームと2Dゲームどちらを作るか選べる。
  6. 入力が済んだら「Create project」ボタンを押す。
  7. 少し待つとUnityのエディタ画面が表示される。

 

シーンの保存

  1. 左上の「File」→「Save Scenes」
  2. シーン名を入力し、保存。(シーンとは「1面」などステージのこと)

 

 エディタのレイアウト設定

  1. 右上の「Layout」から選択できる。

 

Unityのインターフェース

Sceneビュー

製作中のゲームの世界が表示される。

視点を好きなように操作でき、自由な場所から自由な角度で見ることができる。

Gameビュー

実際の画面での視点。メインカメラが移す視点になる。

UIなどの操作はこの画面で行う。

Hierarchyビュー

シーン内に存在するオブジェクトの一覧。

シーンへのオブジェクトの配置や名前変更などができる。

オブジェクトの階層化などの操作もここで行える。

Projectブラウザ

プロジェクトに含まれるシーン、スクリプト、グラフィック、サウンドなどのデータを管理している。

ファイル管理のようなもので、インポートしたアセットの中身もここで確認できる。

Inspectorビュー

シーンの中で選択してるオブジェクトのパラメータなどを確認・編集できる。

座標(ゲーム世界での位置)や大きさ・向き、色や衝突判定、スクリプトなど様々な情報が表示される。

C#勉強(3)

基本的なことだけど一応メモ

 

■変数
▼ローカル変数
 メソッドの内部で宣言する。メソッドの処理が完了するまで有効であり、外部からは使用できない。

▼フィールド
 クラスの内部で宣言する。宣言を行ったクラスだけでなく、他のクラスからアクセスするようにできる(デフォルトはprivteなのでpublicやprotectedにする必要あり)。
 インスタンスが存在する限り有効。

 

C#は"var"を用いて暗黙の型を利用した変数の宣言ができる。
varで宣言した変数は、代入する値によってコンパイラーが自動的に型を決定する。
代入する値をもとに型を決定するため、変数の宣言と初期値の設定を分けて書くことはできない。

 

■定数
▼ローカル定数
 メソッド内で宣言する。読み取り専用のローカル変数。
 以下のように宣言する
  const データ型 ローカル定数名;

▼フィールド定数
 クラスや構造体の内部で宣言する。読み取り専用のフィールド。
 アクセス修飾子でスコープを設定できる。デフォルトはprivate。

 

■アクセス修飾子
 public : どこからでもアクセス可能
 internal : 同一のプログラム内からアクセス可能
 protected : フィールド定数を宣言したクラスまたは構造体と、派生したクラスまたは構造体からアクセス可能
 private : フィールド定数を宣言したクラスまたは構造体のみアクセス可能
 protected internal : protected + internalの範囲でスコープを許可。

 

演算子
 割愛

▼文字列の比較
 ==、!=
  2つの文字列が等しいか等しくないかを調べる。

 Stringクラスのメソッドを用いた文字比較
  Contains()
   判定する文字列の中に指定した文字が含まれているか判定する。(含まれている場合はTrue)
   大文字と小文字の区別あり。

  StartsWith()
   判定する文字列の先頭に指定した文字列が含まれているか判定する。(含まれている場合はTrue)
   大文字と小文字の区別あり。

 

  EndsWith()
   判定する文字列の末尾に指定した文字列が含まれているか判定する。(含まれている場合はTrue)
   大文字と小文字の区別あり。

 

■型変換
▼キャスト
 キャスト演算子"()"を用いて明示的にデータ型の変換を行う。
 大きいデータ型から小さいデータ型への変換、小さいデータ型から大きいデータ型への変換のどちらも可能。
 大きいデータ型から小さいデータ型への変換の際はデータの損失(小数点の丸め込み、符号の消失など)に注意。

▼暗黙的なデータ変換
 小さいデータ型から大きいデータ型への変換はキャスト演算子を用いなくても暗黙的に行われる。
 ソースコード上分かりやすくするために、暗黙的なデータ変換が可能な場面でもキャスト演算子で明示的に変換するのもあり。

▼Convertクラスのメソッドを用いた型変換
 多いので割愛。"ToXXX"というメソッド名(XXXの部分に入るデータ型に変換する)。

▼値型から参照型への変換(ボクシング)
 キャスト演算子を使う。参照型から値型への変換はアンボクシング。

 

C#勉強(2)

Visual StudioをDドライブにインストールできないかあがきましたが徒労に終わったので、ひとまず最小限の機能にとどめてインストールしました。

デスクトップアプリとコンソールアプリの開発はできるようになったのでこれでよしとします。

まあ、C#の文法とかを勉強するためなのでモバイルアプリとかは作れなくても今のところは問題ありません。

 

以下、勉強メモ

 

■using
 名前空間の指定。任意の名前空間に属するクラスをクラス名だけで呼び出し可能にする。
Javaでいうimport。

 

■namespace
 名前空間を宣言する。

 

■class
 クラスを宣言する。

 

 名前空間は複数のクラスをまとめておくことができるクラスのフォルダのようなものらしい。C#ではクラスを使用する場合は必ず名前空間を指定しなければならない。

 名前空間を指定する方法は複数ある。

 1.名前空間.クラス.メソッドのように"."でつなぐ(完全修飾名)
  例)System.Console.WriteLine("hoge");

 2.usingを用いる
  例)using System;
  ※以降、名前空間System内にあるクラスは完全修飾名を書かなくて済む。

 

■メソッド
 プログラムの中に単独で記述することはできないので、クラスの中に記述する。
C#のプログラムはMain()から始まるので、必ず1つのMain()メソッドが存在する。
C#はメソッド名は大文字で始める。

 

■データ型
 標準定義データ型
 ▼値型
  byte
  ushort
  uint
  ulong
  sbyte
  short
  int
  long
  float
  double
  decimal
  bool
  char

 ▼参照型
  string
  object

 

 ユーザ定義テータ型

 ▼値型
  構造体
  列挙型
 ▼参照型
  配列
  クラス
  デリゲート
  インターフェイス

 

■スタック、ヒープ、スタティック
 ▼スタック
  メソッド内で使用される変数のデータを格納するための領域。
  値型のデータを格納する。
 ▼ヒープ
  参照型のデータを格納するための領域。
 ▼スタティック
  静的変数のデータを格納するための領域。

 スタックができる限り上位のアドレスを起点に、下位のアドレスに向かって確保されていくのに対し、
スタティックは下位のアドレスから上位のアドレスに向かって確保されていく。
スタック領域に展開されたデータ(値型)はメソッド終了と同時に破棄されるのに対し、
ヒープ領域に展開されたデータ(参照型)はガベージコレクターによって解放される。

Visual Studioさんに四苦八苦

先日はVisual Studio Uninstallerがうんともすんとも言わずに困ったことになりましたが、あの後強制終了してからもう一度試したらすんなりいきました。

 

再起動と再クリーンを2セットほど繰り返したらCドライブがすっきり。うれしや。

 

ところが。。。

 

インストール先をDドライブに指定してインストールしようとしても、なぜかCドライブに大容量のデータをインストールしようとしよる・・・。

 

なんでだ(´;ω;`)

C#勉強始めました。

基礎からしっかり学んでいこうと思います。

とりあえずVisual Studioとセットで勉強したメモ。

 

Visual Studioで開発できるもの

・デスクトップアプリ
  Windowsのデスクトップで動作する。GUIを持つ。
・UWPアプリ
  Windows10が搭載されたハードで同じように動く。
WPFアプリ
  XAMLで画面を構築するデスクトップ型アプリ。
・Win32アプリ
  C++のみで開発可能。
 

.NET Frameworkとは?

Visual Studioで構築されたデスクトップアプリを実行するための実行環境

・主要なソフトウェア

  - Windowsフォーム

    デスクトップアプリのUI部品。

  - クラスライブラリ

  - ASP.NET

    Webアプリを開発するためのクラスライブラリ。ドラッグ&ドロップで開発可能。

  - ADO.NET

    データベースを操作するためのクラスライブラリ。

・構造

  - クラスライブラリと共通言語ランタイム(CLT)で構成される。

  - 各言語をMSILコード(中間言語)にコンパイルしたものをCLRによりネイティブコードにコンパイルする。

  - CLRに含まれるもの

    1. JITコンパイラ

      MSILコードをネイティブコードにコンパイルするソフトウェア。

      必要な時に都度コンパイルを行うので、短期間で起動でき、インタプリタよりも実行速度を高めることができる。

    2. クラスローダー

      クラスをメモリ上に展開するソフトウェア。

    3. ガベージコレクター

      メモリ管理をするソフトウェア。不要になったメモリ領域の解放を行う。

    4. セキュリティ

      コードベースのセキュリティを行う。プログラムコードの信頼度とコードが実際に実行する処理を事前にチェックし、実行有無を制御する。

 
 
早速Visual Studio 2017をインストールしようとしたらCドライブの容量が足りず、Dドライブに変えようとしたらパスが変更できないという・・・。
一旦アンインストールするか、と思ったら消さなきゃいけないものがたくさんあるのに付属のアンインストーラーは全部消してくれない(--;)
なぜ・・・。
 
で、なんかうまくアンインストールしてくれる「Visual Studio Uninstaller」というツールがあったので使ってみました。
 
 が、起動してから1時間以上経過してますが一向に終わりません(--;)
プロンプト上で動きがないので、ちゃんと消してくれてるのか詰まってるのかも分からず。
これ仮に詰まってたとしても、強制終了しても大丈夫なのでしょうか。
うーん・・・幸先悪い・・・。