public static void MenuItemCreateMeshBuilder_RepeatingMesh() { var editorConfig = SplineEditorConfig.FindConfig(); var newGameobject = new GameObject("NewSplineMesh_RepeatingMesh"); var spline = newGameobject.AddComponent <Spline>(); spline.SetSplineSpace(Space.Self, false); spline.EditorAlwaysFacePointsForwardAndUp = true; var meshBuilder = newGameobject.AddComponent <SplineMeshBuilder_RepeatingMesh>(); meshBuilder.SplineReference = spline; meshBuilder.UseRepeatingMeshUVs = true; meshBuilder.use_splinepoint_rotations = true; meshBuilder.use_splinepoint_scale = true; var newMeshRenderer = newGameobject.AddComponent <MeshRenderer>(); newMeshRenderer.sharedMaterial = editorConfig.defaultMaterialForRenderers; // toggle to force register meshBuilder.enabled = false; meshBuilder.enabled = true; if (Selection.activeTransform != null) { newGameobject.transform.SetParent(Selection.activeTransform); } Selection.activeGameObject = newGameobject; }
public static void MenuItemCreateMeshBuilder_Cubey() { var editorConfig = SplineEditorConfig.FindConfig(); var newGameobject = new GameObject("NewSplinePrefabRepeater"); var spline = newGameobject.AddComponent <Spline>(); spline.SetSplineSpace(Space.Self, false); spline.EditorAlwaysFacePointsForwardAndUp = true; var meshBuilder = newGameobject.AddComponent <PrefabRepeater>(); meshBuilder.SplineReference = spline; // toggle to force register meshBuilder.enabled = false; meshBuilder.enabled = true; if (Selection.activeTransform != null) { newGameobject.transform.SetParent(Selection.activeTransform); } Selection.activeGameObject = newGameobject; }
public static SplineEditorConfig FindConfig() { var guids = AssetDatabase.FindAssets("t:SplineEditorConfig"); foreach (var guid in guids) { if (string.IsNullOrEmpty(guid)) { continue; } var assetPath = AssetDatabase.GUIDToAssetPath(guid); if (string.IsNullOrEmpty(assetPath)) { continue; } var result = AssetDatabase.LoadAssetAtPath <SplineEditorConfig>(assetPath); if (result == null) { continue; } return(result); } var newEditorConfig = SplineEditorConfig.CreateInstance <SplineEditorConfig>(); var newAssetPath = "Assets/SplineEditorConfig.asset"; AssetDatabase.CreateAsset(newEditorConfig, newAssetPath); AssetDatabase.SaveAssets(); var newAsset = AssetDatabase.LoadAssetAtPath <SplineEditorConfig>(newAssetPath); Debug.Log("[CorgiSpline] SplineEditorConfig was not found, so one has been created.", newAsset); return(newAsset); }