Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Artist placed control points.
#3
Hi Jake,

I don't really know what Unity Editor alphasort means.  
The empty nodes that my artist gave me are already sorted correctly when i brought them into Unity.
You second idea and link to other thread has given me the idea how to solve my problem. Thank you.

For everyone else benefit.
I have created a new menuItem (along the top of the menus) to clone the hierarchy of the gameObjects that represent the spline.





Code:
[MenuItem ("MyMenu/Create Curvy from GameOject")]
static void CreatCurvyFromGO()
{
// Get the active selected GameObject.
GameObject node = Selection.activeGameObject;
if (node != null)
{
// Get the number of children.
int childCount = node.transform.childCount;
if (childCount > 0)
{
// Create a new GameObject to host CurvySpline..
GameObject newSpline = new GameObject("Curvy "+node.name);
// Add CurvySpline to new GameObject
CurvySpline cs = newSpline.AddComponent<CurvySpline>;();

// Here you can apply some sorting here if required.
// My nodes already sorted correctly, so no sorting is required for me.
for (int i=0; i<childCount; i++)
{
Transform trans = node.transform.GetChild(i);
CurvySplineSegment css = cs.Add();
css.transform.position = trans.position;
css.transform.rotation = trans.rotation;
}
}
else
{
Debug.Log ("There is no child. No curvy spline created.");
}
}
else
{
Debug.Log ("There is no GameObject selected. No curvy spline created.");
}
}
(sorry the formatting is out of wack. I have wrap it around a code tag but still not showing correctly).


I believe you can just paste the code any where in your code (within a Monobehaviour class, and include "using UnityEditor" at the top) and Unity will just picked it up. 
(not 100% sure. it's the first time I did something with MenuItem).
 

 

 

 

Just found out I can just paste the code here. But my color scheme in MonoBehavour is dark, so the colors wont show up nicely here. 


[MenuItem ("MyMenu/Create Curvy from GameOject")]
    static void CreatCurvyFromGO() 
    {
        // Get the active selected GameObject.
        GameObject node = Selection.activeGameObject;
        if (node != null)
        {
            // Get the number of children.
            int childCount = node.transform.childCount;
            if (childCount > 0)
            {
                // Create a new GameObject to host CurvySpline..
                GameObject newSpline = new GameObject("Curvy "+node.name);
                // Add CurvySpline to new GameObject
                CurvySpline cs = newSpline.AddComponent<CurvySpline>;();

                // Here you can apply some sorting here if required.
                // My nodes already sorted correctlyso no sorting is required for me.
                for (int i=0i<childCounti++)
                {
                    Transform trans = node.transform.GetChild(i);
                    CurvySplineSegment css = cs.Add();
                    css.transform.position = trans.position;
                    css.transform.rotation = trans.rotation;
                }
            }
            else
            {
                Debug.Log ("There is no child.  No curvy spline created.");
            }
        }
        else
        {
            Debug.Log ("There is no GameObject selected. No curvy spline created.");
        }
    }

 

 
Reply


Messages In This Thread
Artist placed control points. - by kimc - 06-30-2014, 12:07 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  snap to the curve created by the curvy splines segment points ShiroeYamamoto 3 11 04-02-2024, 02:24 PM
Last Post: _Aka_
  Get position of all control points for a spline gekido 1 6 03-28-2024, 10:08 PM
Last Post: _Aka_
  Avoiding runtime GC allocations on control point position change Ell223 8 18 02-24-2024, 10:43 AM
Last Post: _Aka_
  Does CurvySplines support displaying handles and points during runtime? niuage 1 7 12-11-2023, 12:01 PM
Last Post: _Aka_

Forum Jump: