Unity与JavaScript之间的相互调用

一 、Unity 调用 Js

1、在Unity工程中新建一个后缀名为:.jslib文件
在这里插入图片描述
在这里插入图片描述
2、在.jslib文件中编写unity调用js代码,多个方法之间记得使用,号隔开,要不然打包的时候会报错。

mergeInto(LibraryManager.library,{
    
    
	UpdateDatabaseScore:function(score1,score2,score3,score4,score5,score6,totalscore)
	{
    
    
		// js端写好的函数
	    updateStudentScore(score1,score2,score3,score4,score5,score6,totalscore);
	},
	
	H5TTS:function(content){
    
    
	    // 在Unity中向js传递字符串时需要在js中使用Pointer_stringify(str)进行转换。
	    h5Tts(Pointer_stringify(content));
	}
	
});

3、在c#代码中调用

    [DllImport("__Internal")]
    public static extern void UpdateDatabaseScore(float score1,float score2,float score3,float score4,float score5,float score6,float totalscore);
    [DllImport("__Internal")]
    public static extern void H5TTS(string content);

	/// <summary>
    /// unity 调用js 端进行更新数据
    /// </summary>
    /// <param name="score1"></param>
    /// <param name="score2"></param>
    /// <param name="score3"></param>
    /// <param name="score4"></param>
    /// <param name="score5"></param>
    /// <param name="score6"></param>
    /// <param name="totalscore"></param>
    public void UpdateDBScore(float score1,float score2,float score3,float score4,float score5,float score6,float totalscore)
    {
    
    
#if !UNITY_EDITOR
        UpdateDatabaseScore(score1,score2,score3,score4,score5,score6,totalscore);
#endif
    }

    /// <summary>
    /// 由于Unity在webgl平台下请求百度token时会出现跨域问题,故在h5端进行语音合成
    /// </summary>
    /// <param name="content"></param>
    public void SendTTS(string content)
    {
    
    
        Debug.Log("Send txt"+content);
#if !UNITY_EDITOR
        H5TTS(content);
#endif
    }

二、Js 调用 Unity
1、在js中调用C#代码

gameInstance.SendMessage("GameCtrl","OnTTSComplete",allTime);

2、C#中执行的代码

	/// <summary>
    /// 语音合成结束的H5端调用
    /// </summary>
    /// <param name="isSuccess"></param>
    public void OnTTSComplete(float time)
    {
    
    
        Debug.Log("js调用成功:"+time);
        EventCenter.Broadcast<float>(EventDefine.OnTTSComplete,time);
    }

猜你喜欢

转载自blog.csdn.net/weixin_41743629/article/details/117127583