修正後のスクリプト
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が設定されていません。");
}
}
}
スクリプトの使い方
- このスクリプトをUnityプロジェクトに保存します(例:
URLButton.cs
)。 - Unityエディタで、Canvas、Panel、Buttonを作成します。
- 各Buttonにこのスクリプトをアタッチします。
- 各ButtonのInspectorで、
targetURL
に開きたいWebページのURLを入力します。 - 各ButtonのInspectorで、Buttonコンポーネントをアタッチします。
上記の手順で設定することで、複数のボタンでそれぞれ異なるURLを設定し、正常に動作することを確認しました。
補足
- 改善策を実施しても問題が解決しない場合は、他のスクリプトとの競合や、ボタンの親子関係が正しく設定されていない可能性があります。
- エラーメッセージが表示された場合は、コンソールを確認し、原因を特定してください。
ご不明な点がございましたら、お気軽にお問い合わせください。