建立一個靜態類別來取得本機 IPv4 位址,可以從專案中的任何位置呼叫
- 建立一個名為 的新 C# 腳本
NetworkUtils
。 - 實作靜態程式方法來取得本機 IPv4 位址。
using System.Net;
using System.Net.Sockets;
public static class NetworkUtils
{
/// <summary>
/// Gets the local IPv4 address of the machine.
/// </summary>
/// <returns>Local IPv4 address as a string.</returns>
public static string GetLocalIPv4Address()
{
string localIP = string.Empty;
try
{
foreach (var ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
localIP = ip.ToString();
break;
}
}
}
catch (SocketException ex)
{
UnityEngine.Debug.LogError("SocketException: " + ex.ToString());
}
catch (System.Exception ex)
{
UnityEngine.Debug.LogError("Exception: " + ex.ToString());
}
return localIP;
}
}
在 Unity 專案中使用的方法:
- 需要本機 IPv4 位址的腳本中,呼叫靜態方法
GetLocalIPv4Address()
。
範例:
using UnityEngine;
public class ExampleUsage : MonoBehaviour
{
void Start()
{
string ipAddress = NetworkUtils.GetLocalIPv4Address();
Debug.Log("IPv4 Address: " + ipAddress);
}
}
解釋
- 靜態類別和方法:
- 該類別
NetworkUtils
被標記為static
,這意味著它不能被實例化並且僅包含靜態成員。 - 該方法
GetLocalIPv4Address
也被標記為static
,允許在沒有 實例的情況下呼叫它NetworkUtils
。
- 該類別
- 異常處理:
- 與前面的腳本一樣,它處理
SocketException
一般情況Exception
,將任何錯誤記錄到 Unity 控制台。
- 與前面的腳本一樣,它處理
- 用法:
- 可以從任何其他腳本呼叫靜態方法
NetworkUtils.GetLocalIPv4Address()
,從而提供一種簡單且可重複使用的方式來取得本機 IPv4 位址。
- 可以從任何其他腳本呼叫靜態方法
透過將實用程式類別設定為靜態,確保可以在整個專案中全域存取該方法,而無需將其附加到 GameObject 或建立實例,從而使程式碼更加簡潔和模組化。