// nextを送る際のトリガーをセッティング
    public void SetTrigger(string trigger)
    {
        switch (trigger)
        {
        // 中心に捉えた時
        case "Find":
            devLog.SendLog("オブジェクトを中心に捉えたときにnextを送ります");
            nextController.trigger = "Find";
            // 拾うボタンを非表示
            centerRay.showPickUpButton = false;
            break;

        // 拾った時
        case "PickUp":
            devLog.SendLog("拾ったときにnextを送ります");
            nextController.trigger = "PickUp";
            // 拾うボタンを表示
            centerRay.showPickUpButton = true;
            break;

        default:
            devLog.SendLog($"未知のトリガーを設定しようとしました。登録されているか確認してください\ntrigger: {trigger}");
            break;
        }
    }
Beispiel #2
0
    void Update()
    {
        if (chasers.Length != 0)
        {
            float   step      = Time.deltaTime * speed;
            Vector3 cameraPos = Camera.main.GetComponent <Transform>().position;
            Vector3 target    = new Vector3(cameraPos.x, objectController.planeY, cameraPos.z);

            for (int i = 0; i < chasers.Length; i++)
            {
                GameObject chaser          = chasers[i];
                Transform  chaserTransform = chaser.GetComponent <Transform>();

                // ユーザーの足元をむく
                chaserTransform.forward = target - chaserTransform.position;
                // ユーザーの足元を追いかける
                chaserTransform.position = Vector3.MoveTowards(chaserTransform.position, target, step);

                // 捕まえたか評価
                if (Vector3.Distance(chaserTransform.position, target) <= collider)
                {
                    devLog.SendLog("プレイヤーと衝突しました");
                    chasers  = new GameObject[0];
                    speed    = 0;
                    collider = 0;
                    UnityMessageManager.Instance.SendMessageToFlutter("next");
                }
                ;
            }
        }
    }
Beispiel #3
0
    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(center);

        if (Physics.Raycast(ray, out hit, distance))
        {
            // オブジェクトと当たった場合
            string tag = hit.collider.tag;

            // 状態が変わったとき
            if (showGauge && gauge <= 1 && state != tag && tag != "Untagged")
            {
                IncreaseFind(tag);
            }
        }
        else
        {
            // オブジェクトと当たらなかったとき
            if (state != "")
            {
                state = "";
                devLog.SendLog("オブジェクトを見失いました");
                pickUpController.TogglePickUpButton(
                    active: false,
                    newTargetTag: "");
            }

            // ゲージをゼロに
            if (gauge != 0)
            {
                gauge = 0;
                findGauge.GetComponent <Image>().fillAmount = 0;
            }
        }
    }
    // Assetを取得・設置
    IEnumerator LoadAsset(string uri, string name, Vector3 cameraPos, uint crc, int number, float space)
    {
        using (UnityWebRequest uwr = UnityWebRequestAssetBundle.GetAssetBundle(uri, 0, crc)) {
            yield return(uwr.SendWebRequest());

            if (uwr.isNetworkError || uwr.isHttpError)
            {
                devLog.SendLog($"AssetBundleのダウンロードに失敗しました: {uwr.error}");
            }
            else
            {
                // ダウンロード成功
                devLog.SendLog("AssetBundleのダウンロードに成功");
                assetBundle = DownloadHandlerAssetBundle.GetContent(uwr);
                var prefab = assetBundle.LoadAssetAsync(name);
                assets[name] = prefab.asset;
                InstantiateObject(prefab.asset, cameraPos, number, space);
            }
        }
    }
Beispiel #5
0
    public void SetAnim(string strData)
    {
        var data = JsonConvert.DeserializeObject <Dictionary <string, string> >(strData);
        int num  = int.Parse(data["num"]);

        devLog.SendLog($"アニメを {data["num"]} に設定します");
        GameObject[] targets = GameObject.FindGameObjectsWithTag("Object");
        foreach (GameObject target in targets)
        {
            target.GetComponent <Animator>().SetInteger("Animation", num);
        }
        UnityMessageManager.Instance.SendMessageToFlutter("next");
    }
Beispiel #6
0
 public void Pop()
 {
     devLog.SendLog("Flutterさんpopしてください");
     UnityMessageManager.Instance.SendMessageToFlutter("pop");
 }