public override void Process(uint seed) { RiverMeshes = new Mesh[1] { RiverMesh }; foreach (PathList river in TerrainMeta.Path.Rivers) { foreach (PathList.MeshObject item in river.CreateMesh(RiverMeshes, 0.1f)) { GameObject obj = new GameObject("River Mesh"); obj.transform.position = item.Position; obj.tag = "River"; obj.layer = 4; GameObjectEx.SetHierarchyGroup(obj, river.Name); obj.SetActive(false); MeshCollider meshCollider = obj.AddComponent <MeshCollider>(); meshCollider.sharedMaterial = RiverPhysicMaterial; meshCollider.sharedMesh = item.Meshes[0]; obj.AddComponent <RiverInfo>(); obj.AddComponent <WaterBody>(); obj.AddComponent <AddToWaterMap>(); obj.SetActive(true); } } }
public override void Process(uint seed) { if (RoadMeshes == null || RoadMeshes.Length == 0) { RoadMeshes = new Mesh[1] { RoadMesh }; } foreach (PathList road in TerrainMeta.Path.Roads) { if (road.IsExtraNarrow) { continue; } foreach (PathList.MeshObject item in road.CreateMesh(RoadMeshes, 0f)) { GameObject obj = new GameObject("Road Mesh"); obj.transform.position = item.Position; obj.layer = 16; GameObjectEx.SetHierarchyGroup(obj, road.Name); obj.SetActive(false); MeshCollider meshCollider = obj.AddComponent <MeshCollider>(); meshCollider.sharedMaterial = RoadPhysicMaterial; meshCollider.sharedMesh = item.Meshes[0]; obj.AddComponent <AddToHeightMap>(); obj.SetActive(true); } } }