Cocos Creatorでのスクリプト間の相互呼び出し


以前Unityを使用して開発した場合、スクリプト間で相互に呼び出されるのはよくありましたが、一般的にGetComponent方式や単例のモード、あるいは静的方法で他のスクリプトの関数や変数を呼び出すことができます.
CocosCreatorでは、上記の方法で他のスクリプトの関数を呼び出すこともできます.
typescriptスクリプト
1.一例モード
単一スクリプト
const {ccclass, property} = cc._decorator;

@ccclass
export default class Singleton extends cc.Component {

   

   static readonly instance:Singleton=new Singleton();

  
    testA()
    {
        console.log("hello");
    }
   
}

このように書くのはこの変数宣言の後で直接instanceに1回だけ付与することができて、onLoadの中で付与することができません.利点は、単一の例がnewと付与されるのは一度だけです.
テストスクリプト:
const {ccclass, property} = cc._decorator;
import Singleton from './Singleton';
@ccclass
export default class Hello extends cc.Component 
{

  
   onLoad()
   {
     
     Singleton.instance.testA();
   
   }

2.Getcomponent方式による
スクリプトがメインカメラにかかっています
const {ccclass, property} = cc._decorator;
import Singleton from './Singleton';
@ccclass
export default class Hello extends cc.Component 
{

   @property (cc.Label)
   lable1:cc.Label=null;

   onLoad()
   {
    
     let scr=cc.find('Canvas/Main Camera').getComponent(Singleton);
     scr.testA();
   }
}