using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using UnityEngine;
namespace Funique
{
///
/// Extensions: Unclassified
/// ------------------------------------------------
/// 擴充: 未分類
///
public static class UtilityExtensions
{
public static string GetSelfIPAddress()
{
IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress item in IpEntry.AddressList)
{
//AddressFamily.InterNetwork ipv4
//AddressFamily.InterNetworkV6 ipv6
if (item.AddressFamily == AddressFamily.InterNetwork)
{
return item.ToString();
}
}
return null;
}
public static string[] GetSelfIPAddresses()
{
IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName());
List items = new List();
foreach (IPAddress item in IpEntry.AddressList)
{
//AddressFamily.InterNetwork ipv4
//AddressFamily.InterNetworkV6 ipv6
if (item.AddressFamily == AddressFamily.InterNetwork)
{
items.Add(item.ToString());
}
}
return items.ToArray();
}
public static void ResetCalculation(this GameObject targetObj, float len)
{
targetObj.transform.parent = null;
GameObject headSet = null; //Singleton.Instance.HeadSet;
GameObject gameObject = new GameObject();
gameObject.transform.position = headSet.transform.position;
Vector3 eulerAngles = headSet.transform.rotation.eulerAngles;
eulerAngles.x = 0f;
eulerAngles.z = 0f;
gameObject.transform.eulerAngles = eulerAngles;
Vector3 vector = headSet.transform.position + gameObject.transform.forward * len;
targetObj.transform.position = new Vector3(vector.x, vector.y - 0.5f, vector.z);
UnityEngine.Object.Destroy(gameObject);
targetObj.transform.rotation = Quaternion.LookRotation(headSet.transform.right);
targetObj.transform.eulerAngles = new Vector3(0f, targetObj.transform.eulerAngles.y - 90f, 0f);
}
}
}