Esempio n. 1
0
        private static void FollowSpline()
        {
            PFollowSplineConfig config = PFollowSplineConfig.Instance;

            if (config.Spline == null || config.Water == null)
            {
                return;
            }
            GSplineCreator spline = config.Spline;
            PWater         water  = config.Water;

            List <GSplineAnchor> anchors = spline.Spline.Anchors;
            Vector3 sumPosition          = Vector3.zero;

            for (int i = 0; i < anchors.Count; ++i)
            {
                sumPosition += anchors[i].Position;
            }
            Vector3 avgPos = sumPosition / anchors.Count;

            water.transform.position = new Vector3(avgPos.x, config.WaterLevel, avgPos.z);

            List <PIndex2D> indices = new List <PIndex2D>();
            List <Vector4>  verts   = spline.GenerateVerticesWithFalloff();

            for (int i = 0; i < verts.Count; ++i)
            {
                PIndex2D index = water.WorldPointToTileIndex(verts[i]);
                indices.AddIfNotContains(index);
            }

            water.TileIndices = indices;
            water.ReCalculateBounds();
        }
Esempio n. 2
0
 private void OnSplineChanged(GSplineCreator creator)
 {
     if (creator == this.SplineCreator)
     {
         Apply();
     }
 }
Esempio n. 3
0
        private static void DrawCreateSplineGUI()
        {
            string label = "6. Create Roads, Ramps, Rivers, etc.";
            string id    = "wizard-spline";

            GEditorCommon.Foldout(label, false, id, () =>
            {
                EditorGUILayout.LabelField("Use Spline Tool to paint roads, make ramps and riverbeds, etc.", GEditorCommon.WordWrapLeftLabel);
                if (GUILayout.Button("Create Spline Tool"))
                {
                    GSplineCreator spline = GWizard.CreateSplineTool();
                    EditorGUIUtility.PingObject(spline);
                    Selection.activeGameObject = spline.gameObject;
                }
            });
        }
        public static void CreateSpline(MenuCommand menuCmd)
        {
            GameObject g = new GameObject("Spline");

            if (menuCmd != null)
            {
                GameObjectUtility.SetParentAndAlign(g, menuCmd.context as GameObject);
            }
            g.transform.localPosition = Vector3.zero;
            g.transform.hideFlags     = HideFlags.HideInInspector;
            GSplineCreator spline = g.AddComponent <GSplineCreator>();

            spline.GroupId = -1;

            Selection.activeGameObject = g;
            Undo.RegisterCreatedObjectUndo(g, "Creating Terrain Painter");
        }
        public static GSplineCreator CreateSplineTool()
        {
            GameObject root = GetTerrainToolsRoot();

            if (root == null)
            {
                root = CreateTerrainToolsRoot();
            }
            GameObject g = new GameObject("Spline");

            g.transform.parent     = root.transform;
            g.transform.position   = Vector3.zero;
            g.transform.rotation   = Quaternion.identity;
            g.transform.localScale = Vector3.one;
            g.transform.hideFlags  = HideFlags.HideInInspector;

            GSplineCreator spline = g.AddComponent <GSplineCreator>();

            return(spline);
        }