base キーワードは、子クラス内から親クラスのメンバーにアクセスするために使います。
子クラスのメソッドにおいてオーバーライドを行う場合に、親クラスに記述されているメソッドの内容を参照し、それを子クラスで利用したい場合には以下の書式を用います。
base.オーバーライドするメソッド名(引数);
今回のケースでは、親クラスで実装しているOnCollisionEnter2Dメソッドの内容に加えて、子クラスではさらに追加の処理を記述する、という形式になっています。
オーバーライドする際にはこのように、親クラスの処理を使うのか、あるいは使わないのかを選択することが出来ます。
base.キーワードを使用する場合には、処理の順番にも気を付けてください。
子クラスで実装したい処理よりも上に書けば、最初にbaseの処理(親クラスで実装している処理)が実行されますし
子クラスで実装する処理よりも下に書けば、子クラスの処理の後に親クラスで実装している処理が実行されます。
子クラス内で base.OnCollisionEnter2D(col); を実装していますので、記述は1行ですが、実際には以下の親クラスで実装している処理が実装されていることになります。
baseで参照しているメソッドの内容
protected virtual void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "Liner")
{
return;
}
if (col.gameObject.tag == "CharaBall")
{
if (col.gameObject.TryGetComponent(out CharaBall charaBall))
{
BeforeTriggerEffect(charaBall);
Sequence sequence = DOTween.Sequence();
sequence.Append(charaBall.transform.DOLocalRotate(new Vector3(0, 0, 720), 0.5f, RotateMode.FastBeyond360).SetEase(Ease.Linear));
AfterTriggerEffect(charaBall);
}
}
}
参照サイト
MicroSoft C# リファレンス
base キーワード
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...