あるScriptAを継承してScriptBを作成しています。
ScriptCからScriptAを参照していたところに、ScriptBでoverrideをしても、
ScriptCで参照する先がScriptAである場合は、ScriptAが実行し続けられてしまうと思います。
さらに、ScriptBにはScriptAの機能が継承されているためそれだけ残してScriptAは消してしまいたいのですが、
そうするとScriptCがNullを吐いてしまいます。
継承の仕組み上、そういったものなのだとは思うのですが、
もしScriptCのような、継承元(ScriptA)を参照するスクリプトが大量にある場合は
overrideした継承先(ScriptB)を参照するようにScriptC,D,E,F...と全て書き換えないといけないのでしょうか?
例えば下記のような状態です。
C#
1 2public virtual void MethodA(){ 3 Debug.Log("A"); 4}
C#
1 2public override void MethodA(){ 3 Debug.Log("override A"); 4}
C#
1 public ScriptA scriptA; 2 3 void Update(){ 4 Test(); 5 } 6 7 void Test(){ 8 scriptA.MethodA(); 9 }
目的としては、完成済みのプロジェクトをアセットで購入したのですが、
そのアセットのスクリプトはvirtualで書かれており、更新の際に自分で書いたスクリプトが上書きされないよう
できるだけ直接編集せず、継承して独自のスクリプトを書くよう推奨されています。
しかし、それだとアセット内で参照し合っているスクリプトの結びつきが強く、
自分で継承したスクリプトがその処理の間に入っていくことが非常に面倒です。(継承先のスクリプトを参照してくれるように全て書き換える必要があるため)
こういったシチュエーションで、元のスクリプトたちを直接編集せず、
自分のスクリプトを上手く処理の間に入れるにはどのようにするのが望ましいのでしょうか?
それとも、なにか継承元のスクリプトを参照していたスクリプトたちが
継承先のスクリプトを参照するように上手く置き換える仕組みがあるものなのでしょうか。
ややこしい質問ですみませんが、ご回答いただける方、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。