公式チュートリアル
https://learn.unity.com/project/2d-roguelike-tutorial
アセットストア
https://assetstore.unity.com/packages/essentials/tutorial-projects/2d-roguelike-29825?locale=ja-JP
総合的に勉強できるとても良いassetだった。
animator,sprite画像の扱いなども含めて全体的に一気に勉強できる。
これのoverrideやabstract,<>のようなジェネリクスの使い方がわからないため独習C#も読んだが合わせてやるとより効果的だった。
ゲームとして実際に組み込むにはいくつか問題があるので追加は必要かも?
UnityLearn勉強ノート3
C# Interfaces C# Action
C# Interfaces
https://learn.unity.com/tutorial/c-interfaces?language=en
前半はインターフェースのプロパティについて
後半はジェネリクスの話,インターフェース側でメソッドの引数をTにするとそれを継承して使う側は柔軟にint型にしたりGameObject型にしたりできて柔軟性があるよという話。
C# Action
https://learn.unity.com/tutorial/c-actions?language=en
Player.csの中
using System;
...
public class Player : MonoBehaviour
{
//delegate型で宣言メソッドの中身はここでは定義しないのでnull
//delegate型のみで使うには中身を定義しないといけない
//EX) public OnDamageReceived method_1 = delegate {};
// method_1 += method;
// private method(){
// //実行したい処理
// }
public delegate void OnDamageReceived(int currentHealth);
pubic static event OnDamageReceived onDamage;
//eventはクラス内でしか定義できない、実行はクラス内のメソッドからしか行えないdelegate型のこと
// public static Action onComplete;
//Actionは返り値がvoidのdelegate,返り値を指定する場合は
//Action<返り値の型>と書かないと行けない
public int Health{get;set;}
...
void Damagge(){
Health--;
if(onDamage != null)
onDamage(Health);
}
}
これを別のところで呼び出すとき
[Read More]UnityLearn勉強ノート2
C# Properties
C# Properties
https://learn.unity.com/tutorial/c-properties?uv=2019.3
- Properties
Vector3 Transform.position{get;set;}
このgetとsetは自分のポジションの位置を手に入れることもできるしセットすることもできるよという意味。
float Time.deltaTime{get;}
これはfloat型の数字をゲットはできてもセットはできないよという意味。
UnityLearn勉強ノート1
C#Survival Guide オブジェクト指向、データベース、継承、オーバーライド
C#Survival Guide
https://learn.unity.com/project/c-survival-guide-classes?language=en&utm_source=learn_recommendation
OOP(オブジェクト指向プログラミング)について
ちゃんと機能別に分ける。
EX)
プレーヤークラス、レーザークラス。プレーヤー内で発射するレーザーの挙動を書かない。
動画内ではplayerクラスではmovement(),shoot()を定義。
laserクラスではmovement()で弾の挙動を制御する。
武器はweaponStatsで定義。この動画ではplayerクラスの中に定義してる。
weaponStatsで武器の名前は弾の速度、弾の数を定義できる変数を用意。
playerクラスでweaponStatsインスタンスを武器の種類分作って定義。
武器の種類分毎回playerクラスのstart()内に書くのは大変なのでWeaponStatsクラス内にメソッドを用意。このメソッドをコンストラクタという。