OvertakingLegend/Assets/Script/Tool/CommonMethodsManager.cs

83 lines
2.4 KiB
C#

using BX;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 常用方法
/// </summary>
public class CommonMethods:SingletonManager<CommonMethods>
{
/// <summary>
/// 手机震动
/// </summary>
public void CellPhoneShank()
{
//BXSdk.Instance.Shake();
}
/// <summary>
/// 删除所有子对象
/// </summary>
/// <param name="node">父节点</param>
public void DeleteChildObjects(Transform node)
{
for (int i = 0; i < node.childCount; i++)
{
Object.Destroy(node.GetChild(i).gameObject);
}
}
/// <summary>
/// 欧拉角转换Instector的rotation值
/// </summary>
/// <param name="up"> GameObject 的transform.up</param>
/// <param name="eulerAngle">GameObject 的transform.eulerAngle</param>
/// <returns> 返回已经转换的值</returns>
public Vector3 EulerAngles2InspectorRotation(GameObject obj)
{
Vector3 resVector = obj.transform.eulerAngles;
if (Vector3.Dot(obj.transform.up, Vector3.up) >= 0f)
{
if (obj.transform.eulerAngles.x >= 0f && obj.transform.eulerAngles.x <= 90f)
{
resVector.x = obj.transform.eulerAngles.x;
}
if (obj.transform.eulerAngles.x >= 270f && obj.transform.eulerAngles.x <= 360f)
{
resVector.x = obj.transform.eulerAngles.x - 360f;
}
}
if (Vector3.Dot(obj.transform.up, Vector3.up) < 0f)
{
if (obj.transform.eulerAngles.x >= 0f && obj.transform.eulerAngles.x <= 90f)
{
resVector.x = 180 - obj.transform.eulerAngles.x;
}
if (obj.transform.eulerAngles.x >= 270f && obj.transform.eulerAngles.x <= 360f)
{
resVector.x = 180 - obj.transform.eulerAngles.x;
}
}
if (obj.transform.eulerAngles.y > 180)
{
resVector.y = obj.transform.eulerAngles.y - 360f;
}
if (obj.transform.eulerAngles.z > 180)
{
resVector.z = obj.transform.eulerAngles.z - 360f;
}
Debug.Log(" Inspector Rotation: " + " x=" + Mathf.RoundToInt(resVector.x * 1000) / 1000f + " , y=" + Mathf.RoundToInt(resVector.y * 1000) / 1000f + " , z=" + Mathf.RoundToInt(resVector.z * 1000) / 1000f);
return resVector;
}
}