83 lines
2.4 KiB
C#
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;
|
|
}
|
|
}
|