【Git・GitHub】(自分的)覚えておきたい用語
Gitででコード管理したいのでGitについて学んでいこうと思います。
簡単に学んだことを自分なりにまとめていこ
Git
分散型バージョン管理システム
ソースコード等ファイルの変更履歴を追跡・管理することをバージョン管理という。Gitはその中の一つ。
Gitを使うことでいつ、どんな変更をしたかを記録することができ、必要に応じて過去のデータを復元することができる
システムは「集中型」「分散型」の2つに分けられます。
Gitは「分散型」です。
「集中型」=一つのリポジトリを複数人で共有し、オンラインで常に最新版を管理することができる
「分散型」=各個人のパソコンにリポジトリを持ち、オフラインでの作業が可能
このような違いがあります。
issues
プロジェクト内で発生した問題を管理する機能
問題が生じた際はissuesを作成して、その中でコメントしあいながらコードを修正していきます。
ワークツリー(worktree)
Gitの管理下に置かれたディレクトリのことで、ここで実際に作業することになります
README
README=各リポジトリに添付できるテキストファイル
リポジトリを訪れた人はREADMEを読むことで、どんなプロジェクトか確認す
ることができる
リポジトリ(repository)
ファイルやディレクトリの状態を記録する場所のことを指します。
分散型バージョン管理システムであるGitは、ローカルリポジトリとリモートリポジトリの2種類を扱います。
ローカルリポジトリ(Local repository)
=各ユーザのパソコン上に配置するリポジトリ
リモートリポジトリ(Remote repository)
=専用サーバー上に配置するリポジトリ
ステージ(stage)
ファイルとその変更内容をワークツリーからリポジトリへコミットするために、コミットしたいファイルを一度index(インデックス)と呼ばれる場所に移動させる必要があります。
この移動を「ステージング」といいます。
インデックス(Index)
ステージしたファイルの移動先
ここに登録されたファイルのみが、コミットの対象となります。
コミット(commit)
ローカルリポジトリにファイルの追加・変更を記録することをコミットという。過去のコミットがリポジトリに保管されているため、これを辿ることで過去の変更履歴や内容を確認できます。
プッシュ(push)
ローカルリポジトリにコミットしたファイルをリモートリポジトリにアップロードする作業
プッシュすることで、GitHub上で他のユーザーをファイルとその変更履歴を共有することができます。
ブランチ(branch)
コミットを分岐すること
同時並行で異なる作業を進めたい場合に使います。
お互いのファイルに影響を与えることなく、別々の作業をすることができます。
マージ(merge)
複数のブランチを合流させる作業のこと
別作業が行われたブランチ同士をマージすることで、それぞれの変更履歴が一つの履歴に結合されます。
プルリクエスト(pull request)
作業を行なっているブランチから、マージしたいブランチに対してマージを依頼することを指します。
プルリクエストの目的は、コードのレビューを作業工程に取り入れることです。
依頼を受けた開発者がコードレビューを行うことで、不具合を防ぐことができます。
最後に
後で見たときにわかるようにまとめてみました。
今夜実際にプッシュしてみようと思います。
【C#】参照関係
ゲームを作成していてそもそもC#の知識がなくかなり苦労したところが多々あったので1からC#を学んでいきたいと思います。
まずは基礎部分をしかと学んでいこうと思います!
今日から少しの間は学んだことをまとめていきます。
アプリケーションが動く土台になっている部分
特徴(カテゴリー)
・クラスライブラリ(部品群)があるので全て1から作るのではなく、クラスライブラリを組み合わせてC#で作っていける
・共通言語ランタイム(CLR)は複数のプログラミング言語で作成されたアプリケーションを、さまざまなシステム環境において、その環境に固有の特性を考慮するために再作成することなく実行できるようにする
最初はここら辺は気にしなくて大丈夫みたいです!
ソリューションとは…
「C#を作ろう!」となったらまずはソリューションを作る必要がある。
ソリューションが1番大きな単位
その中にプロジェクトを入れていく
参照関係をつけることで画面のプロジェクトから共通で使うclassライブラリの機能を参照したりができるようになる
プロジェクト間の参照関係のもたせ方
まず「新しいプロジェクト」を開きます。


プロジェクト名=どのようなプロジェクトかを入れる(画面関係だったら『ーUI』など自由につけてOKです)
ソリューション名=基本的には製品名を入れる
プロジェクト名=『〇〇Pro.UI』
ソリューション名=『〇〇Pro』
という感じにしておくと階層関係がわかりやすくていいかもです!
ここまでできたら「作成」ボタンをクリック
ソリューションエクスプローラーの中に
「ソリューション"〇〇Pro" 」
その下に「〇〇Pro.UI」が入っています。
ここからもう一つプロジェクトを作って参照関係について書いていきます。
ソリューション上で右クリック>追加>新しいプロジェクトを選択
今度は「クラスライブラリ(.NET Framework)」を選びます。

プロジェクト名=『〇〇Pro.ClassLibrary1』
にして「作成」を選択します。

そうするとソリューションエクスプローラーに『〇〇.UI』
『〇〇Pro.ClassLibrary』
と2つプロジェクトがある状態です。
何故2つ作ったかというと
UIの方=起動する起点となるプロジェクトが始まる
(ここから始まるというようなファイルができる)プロジェクト
ClassLibraryの方=他から呼ばれる為だけの共通関数の集まりを作る為のプロジェクト
UIの方で画面を作って、実行ファイルで実行する
ClassLibraryの方で、共通関数とから別のところで集まってると作業がしやすい
自分以外のプロジェクトを参照したかったら
〇〇Pro.UI>参照を右クリック>参照の追加>プロジェクトを選択すると自分以外のプロジェクトが表示されるようになります。
そこにチェックマークを入れOKを押すとクラスライブラリが見られるようになります。


自分以外のプロジェクトを参照したかったら「参照設定」を入れる。
注意なのですが、
〇〇Pro.ClassLibraryを見たら〇〇Pro.UIは見られない。(循環参照というらしいです)
ぐるぐる回らないように片方ずつしか見れない仕組みになっています。
なので参照する側とされる側をきちんと決めて作っていきましょう!
【Asset Store】Unity Asset Storeの使い方
今回はトップページにキャラクターの立ち絵を表示させたく使用したAssetStoreの使い方をまとめていこうと思います。
(無料/有料とありますが、今回は無料のみを使用していこうと思います)
Asset Storeにアクセスします
プロジェクトを開きます。(新規作成でも大丈夫です。私は今回新規作成しました)
ウィンドウ>アセットストアを選択します。

選択するとChrome等で「Unity Asset Store」が開きました。
開いたら、アカウントにログインします。
(AssetStoreはUnityIDでログインしないとアセットのダウンロードはできない(閲覧のみ)仕様となっいるみたいです。)

ログインができたら好きな素材を探します。
「3D」などにカーソルをあてるとプルダウンで入っているものの詳細が見られます。

また、「3D」などを選択クリックすると絞り込みが表示されます。

今回はユニティちゃんを探したいので
「3D」と「キャラクター」と「無料アセット」にチェックマークを入れます。
人気順にしているからか上位に表示されました!(オレンジ枠のものです)
こちらをクリックします。

そうすると下記のページが開きます。
FREEって書いてあるので無料ですね(笑)
マイアセットに追加するをクリックします。

同意有無は「同意する」をクリックします。

あっという間に「Unity-chan!Modol」がダウウンロードされました!
ダウンロードが終わると下記のプルダウンが表示されます。
「Unityで開く」を選択します。

すると下記のポップアップが表示されます。
「ダウンロード」をクリックします。

ダウンロードが終わったら「インポート」をクリックします。

下記のダイアログが表示されましたが、同じく「インポート」を選択します。
しばらくするとAssetsの中に「unity-chan!」ができました。

このようにして無事ダウンロードができました。
最後に
ダウンロードができたものの、今回私が作るゲームでは使用しなかった...。
また使用するときに記事にしていこうと思います!
【ビルド】ビルドの方法
ここでは画面遷移時に実行ボタンをクリックしたら下記画像ようなエラーが出てきてしまいました。これはビルドしていないのが原因でした。
なので今回はビルドの方法を書いていこうと思います。

1,ビルドの設定画面を開きます
ファイル>ビルド設定を選択したらビルド設定画面が開きます。

2,「ビルドに含まれるシーン」にScenesを追加する
オレンジの枠(Assets>Scenes)から青枠の「ビルドに含まれるシーン」にドラック&ドロップします。

3,「ビルドして実行」でビルドをします
「ビルドに含まれるシーン」にビルドしたいシーンを追加できたら、赤枠の「ビルドして実行」をクリックします。

4,自動でエクスプローラーが開きます
エクスプローラーが開いたら「新しいフォルダーを作成」し、フォルダーに名前を付けます。(私は分かりやすく「ビルド」という名前にしました)
元からあったら作らなくて大丈夫です!
作成できたらビルドフォルダーを選択>フォルダーの選択をクリックします。

そうすると、自動でビルドしてくれ表示実行されます。
最後に
ビルド=プログラミング言語で書かれたソースコード等を元に実行可能ファイルなどを作成する処理のことです。
エラー出るとドキッとしますが頑張って乗り越えていきたいと思います。
【画面遷移】タイトル画面からトップページに遷移
ここでは【画面遷移】シーン移動
タイトル画面でボタンをクリックしたらTOP画面にいくやつです!
そのやり方をまとめたいと思います!

1,タイトル画面とTOPページを作成します
Projectウィンドウ>Assets>Scenes>右クリック>作成>シーン
上記の方法で遷移元のシーンと遷移先のシーンを作成します。
ここでは
遷移元=「title」
遷移先=「top」としています。
2,titleシーンにボタンを配置します
前回のブログに作成方法が載っています。
簡単に説明すると
Hierarchyウィンドウ>UI>Button-TextMeshPro
そうすると、Hierarchyウィンドウの中のcanvasの中にButton(TMP)が配置されます。
3,スクリプトを書きます
先ほど配置したボタンに、title→topに遷移する処理を書きます。
今回はファイルが多くはないので
名前は「titleScript」にしました。

[コード]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//usingはシーン遷移に必要なパッケージ
using UnityEngine.SceneManagement;
public class titleScript : MonoBehaviour
{
//inspectorで「sceneName」は設定
public string sceneName;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void LoadScene()
{
//inspectorで「sceneName」は設定
SceneManager.LoadScene(sceneName);
}
}
赤が今回追加したコードです。
(私がわかりやすいようにメモのコメントが多いです...💦)
public=「型と型のメンバーを示すアクセス修飾子。
制限の無いアクセスレベルとする場合に利用します」
4,スクリプトをアタッチします
作成したボタンにtitleScript.csをドラック&ドロップでアタッチします。
するとButtonのinspectorにスクリプトが追加されているのがわかります。
その下に「Scene Name」があります。(さっきスクリプトで書いたのと同じですね!)
そこに遷移先のシーン名(top)を記載します。

inspectorウィンドウの「クリック時()」の部分の+ボタンをクリックします。
下記のものが出てきました。
・「なし(オブジェクト)」の部分にButtonオブジェクトをドラック&ドロップします。

・No Functionの部分にtitleScript>LoadShceneを選択します。(下記参照)

このようにできたでしょうか?

全て設定できたら実行ボタンをクリックします。

「できた!」と思ったらエラー...。
ビルドしていないのが原因でした。
ビルドの方法についてはこちらに記載させていただきました。
ビルドをしていた場合は実行ボタンをクリックしたら画面が遷移できたと思います。
最後に
で作成したのも(私はタイトル画面/TOP画面/選曲画面/リザルト)に各遷移ボタンを付けたら成長を実感できました(笑)
記事が参考になったら嬉しいです。
【ホーム画面】Unityでホーム画面を作成
今回はUnityでUIを作成したいと思います。
まずはCanvasを作成します。
CanvasがないとUGUI(Unity Graphical User Interface)が見えない状態になってしまうそうです。
1,UI作成
[手順]
Hierarchyウィンドウで右クリック→UI→Canvas

シーンビュー上に(↓)四角い枠が出てきました。

動画(↑)のように白い四角はゲームの解像度によって大きさが変わります。
プレイヤーの持っているデバイス(PC/IOS/android)などによって解像度は変わるので、この白い四角の中に絵やテキストを入れていくと思うと思いますがちょっとだけ違うので一旦表示だけさせて枠は無視しておきましょう。
次にUIの中身を作成していきます!
Canvasの上で右クリック→UI→Imageをクリックします。

UGUIはCanvasの子オブジェクトになっていないと表示されないので注意が必要です!

親子オブジェクト

image画像
白い箱のようなものが出てきました。
次に表示させたいものを作成します。
自分で描いた絵でも、素材でもなんでも大丈夫です。
私はCanvaという無料のデザインツールで画像を作成しました。

ゲームのTOPページの背景になるのでシンプルな感じにしました。
作成したものを.jpgまたは.pngで保存しておきます。
保存をしたらそのファイルをUnityのProjectウィンドウにドラック&ドロップをします。そうするとProjectの中に素材が追加されました。

Projectウィンドウで追加した素材を選択したままInspectorを見ます。
すると追加した素材のパラメーターがたくさん出てくるのですが、上の方にあるTextureTypeをSprite(2D and UI)に変更します。できたら下記画像のオレンジで囲った部分のApplyというボタンをクリックします。
基本的にパラメーターを変更した時はApplyをクリックするまでは反映されないのできちんと押しましょう。

押し忘れてほかの作業をしてしまいそうになったら下記のようなダイアログが出てきます。

ダイアログ
Apply(適応する)/Revert(破棄する)/Cancel(キャンセル)が出でくるので、今回はApplyを選択し、変更を適応させましょう。
次にHierarchyウインドウでimageを選択しinspectorを確認します。
Imageの中Source Imageのオレンジの四角の部分に先ほどの素材をドラック&ドロップします。

そうすると、先ほどの素材がゲーム画面で表示されると思います。

上記のように大きさを簡単に変えることができます。
2,Textを使って文字を表示させていきます!
次にTextを使って文字を表示させていきます!
Cavasの上で右クリック>UI>Text-TextMesh Proをクリック

するとシーンビューに「New Text」と表示されます。
HierarchyウィンドウでText(TMP)を選択した状態で、inspectorを見ます。
「New Text」という文字がTextInputの中に記入してあることがわかります。

試しに文字を変えてみます。

「New Text」から「ABCABCABC」になったと思います。
ここで注意なのですが、Text-TextMesh Proだと下記画像のように日本語表記が「□□□」になってしまします。
なので次のブログで日本語表記のやり方を書いていきたいと思います。

3,Buttonを使ってボタンを作っていきます!
最後にButtonを使ってボタンを作っていきます!
Cavasの上で右クリック>UI>Button-TextMesh Proをクリック

するとシーンビューに「Button」というボタンが表示されます。

ボタンはボタンの子オブジェクトにTextがついてきているので、ボタンの上に「Button」をいう文字が表示されます。
![]()
またこちらの、TextがText-TextMesh Proなので日本語表記が「□□□」になってしまします。
実行ボタン(下記画像のオレンジで囲った△マーク)を押下するとボタンっぽくプッシュできると思います!

補足、スクリプトを書いてみました
下記はやらなくても大丈夫なのですが、補足程度にまとめていきます!
簡単にスクリプトを書いて、ボタンを押下したときにメソットを呼び出すという処理を書いていこうと思います!
Project>Assets>作成>C#スクリプトをクリック

するとAssetsの中に「NewBehaviourScript」ができます。

ダブルクリックをするとVisualstudioが開きます。
(先にインストールをしておく必要があります)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void testclick()
{
Debug.Log("クリックされました!");
}
}
赤の部分が今回書いたスクリプトです。(本当に少しだけ...笑)
簡単に説明すると
Public=「公開する」
Publicを付けることによってこのメッソドはこのスクリプトの外から呼び出せるようになりました
(メソッド=オブジェクトの操作を定義したもの)
スクリプトを書いたら新たにGameObjectを一つ作成します。

ここにドラック&ドロップでスクリプトをアタッチします。
ButtonのinspectorのOnClickとなっているところの+ボタンをクリックします。

上記のようになったと思います。
次に、None(object)とあるところに先ほどスクリプトをアタッチしたGameObjectをHierarchyからドラック&ドロップをします。
次に、No Functionとなっているところの横の▼を押下します。
すると先ほど作ったスクリプト名>TastClickを選択します。
ここまで出来たら実行ボタンを押下し、ボタンをクリックしてみてください。
ボタンが押され、Consoleにメソッドが呼び出されているのがわかるようになりました!
最後に
私は上記を使用して
┗タイトル画面
┗TOP画面
┗選曲画面
┗リザルトを作れました!
参考になったら嬉しいです。
次はボタンをタップして画面遷移について書いていこうと思います。
【初心者】Unityで1から音ゲーを作りたいと思います。
はじめまして。
初心者なのですかUnityで音ゲーを作りたく、作る工程と覚えた内容を備忘録として残すためにブログをはじめました。
【作ろうとしているもの】
プロセカのようなものをイメージしています
◇タイトル画面
┗ゲームスタート「TAP TO START」
◇インゲーム(メイン)
┗曲選択画面
┗・ここでは選択した音楽が流れるようにする
・「Normal」と「Hard」を選べるようにする
┗スタート押下後インゲーム開始
┗・「Good」「Miss」の2段階評価
・判定ラインは3つ
・成功ラインを設定
┗何曲かSDキャラ踊れるように設定
┗最初に戻るボタン
◇リザルト
┗「Good」「Miss」のポイント表示
┗ポイントは加算式(前回のポイントも表示)
┗何度成功したか表示
◇ポイント交換
┗ポイントで衣装?と交換予定
◇ホーム画面(1枚)
┗TIPS表示(使い方バナー)
┗ランク表示
┗インゲームボタン
┗総合ポイント表示
┗タイトルに戻るボタン
┗Asset Storeからまずは無料のものをセット
◇背景