Files
Main/Assets/Editor/DIY/SkillEditor/EditorBaseObject.cs

99 lines
3.2 KiB
C#
Raw Normal View History

2025-01-25 04:38:09 +08:00
using Thousandto.Code.Logic;
using Thousandto.Code.Logic.WarningField;
using Thousandto.Core.Asset;
using Thousandto.Core.Base;
using Thousandto.SkillEditor;
using Thousandto.SkillEditor.DIY;
using Thousandto.SkillEditor.Support;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using UnityEditor;
using UnityEngine;
namespace Thousandto.SkillEditor.DIY
{
public enum EditorObjType
{
Player,
Monster,
SkillSimpleObj,
SkillObj,
}
//对象基类
public class EditorBaseObject
{
public static bool ShowSkillRange = true;
public Transform RootTrans { get; private set; }
public GameObject RootGo { get; private set; }
public GameObject WarningRoot { get; private set; }
public EditorObjType ObjType { get; private set; }
public Vector3 Position
{
get
{
return RootTrans.position;
}
set
{
RootTrans.position = value;
}
}
public void AddWarningField(FindTargetInfo findData)
{
if (!ShowSkillRange)
return;
WarningRoot.transform.localScale = new Vector3(1f / RootTrans.localScale.x, 1f / RootTrans.localScale.y, 1f / RootTrans.localScale.z);
RemoveWarningField();
switch (findData.AreaType)
{
case SkillTargetArea.Rectangle:
NewWarningFiled.AddRectWarningField(WarningRoot, findData.RectWidth, findData.RectHeight, findData.StartDis);
break;
case SkillTargetArea.FanShaped:
NewWarningFiled.AddFanShapedWarningField(WarningRoot, findData.SectorAngle, findData.SectorRadius, findData.StartDis);
break;
case SkillTargetArea.Round:
NewWarningFiled.AddRoundWarningField(WarningRoot, findData.RoundRadius, findData.StartDis);
break;
}
}
public void RemoveWarningField()
{
NewWarningFiled.DeleteWarningField(WarningRoot);
}
public EditorBaseObject(GameObject rootGo, EditorObjType objType)
{
RootGo = rootGo;
RootTrans = rootGo.transform;
ObjType = objType;
WarningRoot = new GameObject("[WarningRoot]");
WarningRoot.transform.parent = RootTrans;
UnityUtils.Reset(WarningRoot.transform);
WarningRoot.transform.localPosition = new Vector3(0f, 0.2f, 0f);
}
public EditorVFXScript PlayVFX(int vfxID, string slotName)
{
var resPath = AssetUtils.GetModelAssetPath(ModelTypeCode.SkillVFX, vfxID);
var slot = SlotUtils.GetSlotTransform(RootTrans, slotName);
var vfx = EditorVFXPlayer.Instance.PlayVFX(resPath, slot);
return vfx;
}
public EditorVFXScript PlayVFX(int vfxID)
{
var resPath = AssetUtils.GetModelAssetPath(ModelTypeCode.SkillVFX, vfxID);
var vfx = EditorVFXPlayer.Instance.PlayVFX(resPath, null);
return vfx;
}
}
}