// 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; } }
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"); } ; } } }
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); } } }
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"); }
public void Pop() { devLog.SendLog("Flutterさんpopしてください"); UnityMessageManager.Instance.SendMessageToFlutter("pop"); }