public IEnumerator GenerateRandomEvent(EventType eventType, Action <Event> eventHandler)
    {
#if !UNITY_EDITOR && UNITY_WEBGL
        using (var req = UnityWebRequest.Get(GET_RANDOM_EVENT_URL + $"?eventType={eventType.GetDirectoryName()}"))
        {
            yield return(req.SendWebRequest());

            if (req.isNetworkError || req.isHttpError)
            {
                throw new Exception("HTTPリクエストエラー");
            }
            GameObject gameObject = new GameObject("Event");
            Event      evt        = gameObject.AddComponent <Event>();
            evt.InitFromScriptText(req.downloadHandler.text);
            eventHandler(evt);
        }
#else
        Debug.Log($"{Application.dataPath}/Datas/Events/{eventType.GetDirectoryName()}");
        DirectoryInfo dir        = new DirectoryInfo($"{Application.dataPath}/Datas/Events/{eventType.GetDirectoryName()}");
        FileInfo[]    files      = dir.GetFiles("*.script");
        int           index      = UnityEngine.Random.Range(0, files.Length);
        GameObject    gameObject = new GameObject("Event");
        Event         evt        = gameObject.AddComponent <Event>();
        evt.Init(eventType, files[index].Name);
        eventHandler(evt);
        yield return(null);
#endif
    }
    public IEnumerator GenerateSpecificEvent(EventType eventType, string eventFileName, Action <Event> eventHandler)
    {
#if !UNITY_EDITOR && UNITY_WEBGL
        Debug.Log("GenerateEvent");
        var eventName = eventFileName.Split('.')[0];
        using (var req = UnityWebRequest.Get(GET_EVENT_URL + $"?eventType={eventType.GetDirectoryName()}&eventName={eventName}"))
        {
            Debug.Log("Request start");
            yield return(req.SendWebRequest());

            Debug.Log("Request end");
            if (req.isNetworkError || req.isHttpError)
            {
                throw new Exception("HTTPリクエストエラー");
            }
            GameObject gameObject = new GameObject("Event");
            Event      evt        = gameObject.AddComponent <Event>();
            evt.InitFromScriptText(req.downloadHandler.text);
            eventHandler(evt);
        }
#else
        GameObject gameObject = new GameObject("Event");
        Event      evt        = gameObject.AddComponent <Event>();
        evt.Init(eventType, eventFileName);
        eventHandler(evt);
        yield return(null);
#endif
    }
예제 #3
0
 private void ReadEvent(EventType eventType, string eventFileName)
 {
     this.ReadEvent($"{eventType.GetDirectoryName()}/{eventFileName}");
 }