「技術」カテゴリーアーカイブ

【Unity】一括ボタン処理を実装

本日の進捗。

一画面に表示される畑の数を4つに変更し、

一括ボタンの位置を移動、

タッチ時の処理とか、有効無効を切り替えたりの処理を実装しました。

もっと良い実装方法とかあるのかなとか考えたりしますが、

まぁ、必要なときその都度考えたりして、

まずはUnityに慣れていこうと思います。

【Unity】ボタンが反応しない問題。

本日の進捗。

種ウィンドウを閉じるときに表示させていたコントロールやCanvasのテキストを削除するようにしました。

種ボタン処理を実装しました。

実装して気がついたこと。

種ボタンの上にCanvasのテキストがあると、それが邪魔してボタンが反応しない。

たぶん、ラジオボタンのようなものにデザインを変更してテキストが邪魔にならない様に配置しないといけない。

うーん、めんどくさい。

【Unity】種ウィンドウの実装

今回やったこと。

お手入れボタン、水やりボタンの処理を実装しました。

畑をタップで種ウィンドウを表示させました。

種ウィンドウ表示中はバックのボタン操作を行えないようにしました。

決定・キャンセルボタンタップで種ウィンドウを閉じるようにしました。

【Unity】プレハブのボタンタッチ処理

タッチする事自体は問題無いのですが、

一番ハマったのは画像の差し替えでした。

二つの画像を重ねるように配置し、レイヤーの切り替えで表示を切り替えようと思ったのですが、

どうも上手くいかないみたいで。

レイヤグループとか美味く使えていれば良かったのかもしれないですけど。

こちらのサイトにスプライトを差し替える方法が書いてありました。

https://qiita.com/motsat/items/927a4d2682765555b80d

    public void TouchCare()
    {
        farmData.care = true;
        var r = CareButton.GetComponent<SpriteRenderer>();
        r.sprite = ClickSprite;
    }

見た目全く問題なし。

これで行きましょう。

【Unity】プレハブのスクリプトにパラメータを渡す。

プレハブにこんな感じのスクリプトを作成して、プレハブのオブジェクトにアタッチ。

    public void Create(Farm farm)
    {
        farmData = farm;
    }

プレハブの使用元ではこんな感じでパラメータを渡せる。

            GameObject farm = Instantiate(prefabObj, new Vector3(xPosition, yStartPosition - yPositionInterval * count , 0), Quaternion.identity);
            var c = farm.GetComponentInChildren<FarmTouchController>();
            c.Create(f);

GetComponentInChildren<>を使用するのがポイントだと思う。

この動作が決まったときはガッツポーズしてしまったよ。