56 lines
1.4 KiB
C#
56 lines
1.4 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Obi{
|
|
|
|
[CustomEditor(typeof(ObiRopeExtrudedRenderer)), CanEditMultipleObjects]
|
|
public class ObiRopeExtrudedRendererEditor : Editor
|
|
{
|
|
|
|
ObiRopeExtrudedRenderer renderer;
|
|
|
|
public void OnEnable(){
|
|
renderer = (ObiRopeExtrudedRenderer)target;
|
|
}
|
|
|
|
[MenuItem("CONTEXT/ObiRopeExtrudedRenderer/Bake mesh")]
|
|
static void Bake(MenuCommand command)
|
|
{
|
|
ObiRopeExtrudedRenderer renderer = (ObiRopeExtrudedRenderer)command.context;
|
|
|
|
if (renderer.actor.isLoaded)
|
|
{
|
|
var system = renderer.actor.solver.GetRenderSystem<ObiRopeExtrudedRenderer>() as ObiExtrudedRopeRenderSystem;
|
|
|
|
if (system != null)
|
|
{
|
|
var mesh = new Mesh();
|
|
system.BakeMesh(renderer, ref mesh, true);
|
|
ObiEditorUtils.SaveMesh(mesh, "Save rope mesh", "rope mesh");
|
|
GameObject.DestroyImmediate(mesh);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void OnInspectorGUI() {
|
|
|
|
serializedObject.UpdateIfRequiredOrScript();
|
|
|
|
Editor.DrawPropertiesExcluding(serializedObject,"m_Script");
|
|
|
|
// Apply changes to the serializedProperty
|
|
if (GUI.changed){
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|