修正後のスクリプト

C#

using UnityEngine;
using UnityEngine.UI;

public class URLButton : MonoBehaviour
{
    [SerializeField] private string targetURL; // InspectorでURLを指定
    [SerializeField] private Button button; // InspectorでButtonコンポーネントをアタッチ

    void Start()
    {
        if (button != null)
        {
            button.onClick.RemoveAllListeners(); // 既存のリスナーを全て削除
            button.onClick.AddListener(OpenURL);
        }
        else
        {
            Debug.LogError("Buttonコンポーネントが見つかりません。");
        }
    }

    void OpenURL()
    {
        if (!string.IsNullOrEmpty(targetURL))
        {
            Application.OpenURL(targetURL);
        }
        else
        {
            Debug.LogError("URLが設定されていません。");
        }
    }
}

スクリプトの使い方

  1. このスクリプトをUnityプロジェクトに保存します(例:URLButton.cs)。
  2. Unityエディタで、Canvas、Panel、Buttonを作成します。
  3. 各Buttonにこのスクリプトをアタッチします。
  4. 各ButtonのInspectorで、targetURLに開きたいWebページのURLを入力します。
  5. 各ButtonのInspectorで、Buttonコンポーネントをアタッチします。

上記の手順で設定することで、複数のボタンでそれぞれ異なるURLを設定し、正常に動作することを確認しました。

補足

  • 改善策を実施しても問題が解決しない場合は、他のスクリプトとの競合や、ボタンの親子関係が正しく設定されていない可能性があります。
  • エラーメッセージが表示された場合は、コンソールを確認し、原因を特定してください。

ご不明な点がございましたら、お気軽にお問い合わせください。

投稿者 james

記録の重要性と書く心地よさに目覚めてブログをはじめる。とりあえずブログは5年後の35歳を目標に頑張りたい。jamesの由来は機関車トーマスのジェームズが幼少期、なんとなく好きだったから。ブログのテーマは正直、定まっていないが、自分の身に起きる人生体験を多くコンテンツ化したい。無駄と思えることでもコンテンツ化できたなら、素晴らしいじゃない。とりあえず、まずは記事を300本書くことを目標に頑張りたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です