【m】11.PointCloudTools 上传
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Main;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
[CreateAssetMenu(fileName = "PointGatherData", menuName = "Evo/Create PointGatherData")]
|
||||
public class PointGatherData : SerializedScriptableObject
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 碰撞盒是否渲染
|
||||
/// </summary>
|
||||
public bool isGizmo = false;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
|
||||
[Button("一键生成坐标数据")]
|
||||
public void CreatPosData()
|
||||
{
|
||||
ZoneController[] zoneControllers = FindObjectsOfType<ZoneController>(true);
|
||||
PointController[] pointControllers = FindObjectsOfType<PointController>(true);
|
||||
for (int i = 0; i < ZoneDatas.Count; i++)
|
||||
{
|
||||
ZoneData zoneData = ZoneDatas[i];
|
||||
|
||||
foreach (var zoneController in zoneControllers)
|
||||
{
|
||||
if (zoneController.name == zoneData.name)
|
||||
{
|
||||
zoneData.transformData.position = zoneController.transform.localPosition;
|
||||
zoneData.transformData.rotation = zoneController.transform.localEulerAngles;
|
||||
zoneData.transformData.scale = zoneController.transform.localScale;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (int j = 0; j < zoneData.pointDatas.Count; j++)
|
||||
{
|
||||
PointData pointData = zoneData.pointDatas[j];
|
||||
|
||||
|
||||
foreach (var pointController in pointControllers)
|
||||
{
|
||||
if (pointController.name == pointData.name)
|
||||
{
|
||||
pointData.colliderData.position = pointController.transform.localPosition;
|
||||
pointData.colliderData.rotation = pointController.transform.localEulerAngles;
|
||||
pointData.colliderData.scale = pointController.transform.localScale;
|
||||
|
||||
var collider = pointController.transform.Find("collisionbox");
|
||||
pointData.colliderData.colPosition = collider.localPosition;
|
||||
pointData.colliderData.colRotation = collider.localEulerAngles;
|
||||
pointData.colliderData.colScale = collider.localScale;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EditorUtility.SetDirty(this);
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
public List<ZoneData> ZoneDatas;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 区域数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class ZoneData
|
||||
{
|
||||
public string id;
|
||||
public string name;
|
||||
[BoxGroup("坐标数据"), HideLabel][ReadOnly] public TransformData transformData;
|
||||
|
||||
|
||||
//[HideLabel] public ColliderData colliderData;
|
||||
|
||||
|
||||
public List<PointData> pointDatas;
|
||||
|
||||
public ZoneData()
|
||||
{
|
||||
transformData = new TransformData();
|
||||
pointDatas = new List<PointData>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点位数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class PointData
|
||||
{
|
||||
public int order;
|
||||
public string id;
|
||||
public bool isTigger = true;
|
||||
public string name;
|
||||
[HideLabel][ReadOnly] public ColliderData colliderData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点位数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public struct TransformData
|
||||
{
|
||||
public Vector3 position;
|
||||
public Vector3 rotation;
|
||||
public Vector3 scale;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点位数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public struct ColliderData
|
||||
{
|
||||
[BoxGroup("碰撞点坐标数据"), HideLabel] public Vector3 position;
|
||||
[BoxGroup("碰撞点坐标数据"), HideLabel] public Vector3 rotation;
|
||||
[BoxGroup("碰撞点坐标数据"), HideLabel] public Vector3 scale;
|
||||
[BoxGroup("包围盒数据"), HideLabel] public Vector3 colPosition;
|
||||
[BoxGroup("包围盒数据"), HideLabel] public Vector3 colRotation;
|
||||
[BoxGroup("包围盒数据"), HideLabel] public Vector3 colScale;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 79b808b96820ad546951a6859e2a99be
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user