unity3d 脚本拷贝地形
2013-09-02 14:12
211 查看
遇到一个问题,解决方法是从创建好的地形拷贝一份新的地形,但是在拷贝的时候发现新地形和老地形实际使用的一份地形数据,在修改老地形数据的时候,新地形的数据也会相应变化。在网上搜索了一下从脚本创建地形的例子,稍微修改,可以满足我的需求,放在此处记录。
老地形的Terrain部分的变量叫做_terrain。
老地形的Terrain部分的变量叫做_terrain。
TerrainData terrainData = new TerrainData(); terrainData.heightmapResolution = _terrain.terrainData.heightmapResolution; terrainData.size = _terrain.terrainData.size; terrainData.wavingGrassAmount = _terrain.terrainData.wavingGrassAmount; terrainData.wavingGrassSpeed = _terrain.terrainData.wavingGrassSpeed; terrainData.wavingGrassStrength = _terrain.terrainData.wavingGrassStrength; terrainData.wavingGrassTint = _terrain.terrainData.wavingGrassTint; terrainData.detailPrototypes = _terrain.terrainData.detailPrototypes; terrainData.treeInstances = _terrain.terrainData.treeInstances; terrainData.treePrototypes = _terrain.terrainData.treePrototypes; terrainData.alphamapResolution = _terrain.terrainData.alphamapResolution; terrainData.baseMapResolution = _terrain.terrainData.baseMapResolution; terrainData.splatPrototypes = _terrain.terrainData.splatPrototypes; float [,] heights = _terrain.terrainData.GetHeights(0, 0, _terrain.terrainData.heightmapWidth, _terrain.terrainData.heightmapHeight); terrainData.SetHeights(0, 0, heights); float[,,] alphaMap = _terrain.terrainData.GetAlphamaps(0, 0, _terrain.terrainData.alphamapWidth, _terrain.terrainData.alphamapHeight); terrain.terrainData.SetAlphamaps(0, 0, alphaMap); _newTerrainObj = Terrain.CreateTerrainGameObject(terrainData); _newhTerrainObj.name = "TerrainNew";
相关文章推荐
- Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本]
- Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本]
- [脚本] Unity3d 实现鼠标左键点击地形使角色移动到指定地点
- Unity3D 之 C# 脚本
- unity3d 脚本学习系列
- 关于Unity3D 游戏音频控制脚本C#代码
- Unity3D脚本中文系列教程(十四)
- Unity3D计算角色与物体之间的距离来触发动画【脚本】
- UNITY3D c#脚本中处理类与结构体的区别
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
- Unity3d 角色转身在向前走的脚本
- Unity3D中脚本的执行顺序和编译顺序
- 用shell脚本挂载linux主机拷贝相应文件copy.sh
- 【U3D】Unity3D的脚本-script入门
- Unity3D 导入脚本のAnimation动画切割
- Unity3D地形的制作
- unity3d学习GUIFly脚本
- Unity3D之触摸输入实现在指定地形上拖拽物体
- unity3d 中让JS访问C#脚本的方法
- windows下一键拷贝文件脚本