Unity3d实时获取当前位置的地形高度
分类:Unity3d
来源:网络
时间:2017-09-02 23:49:17
如果要把一个游戏对象放置在地形的某个固定的位置,代码里面直接写死也是可以的。但这样很不方便,
其一、要经过多次的调试才能放到指定位置,特别是y坐标,太大了太小了得到的效果都不是很逼真;
其二、对于运动的物体(例如一直往前走的人物角色),由于地形高度不是一样的(除非是一个平面),当走到高山的时候脚就被埋了,当走到低洼的地方脚就浮起来了;
要解决这种问题,就有必要实时获取当前地形的高度,unity3d提供了Terrain.activeTerrain.SampleHeight()函数用来获取指定点的地形高度,其原型为:
public float SampleHeight(Vector3 worldPosition);
参数worldPosition表示当前位置,由于要实时获取地形高度,所以这个参数也要实时获取,因此应该写在Update方法中,示例代码如下:
void Update () {
Vector3 pos = transform.position; // 获取当前游戏对象的位置
pos.y = Terrain.activeTerrain.SampleHeight(pos); // 获取当前位置的地形高度
transform.position = pos;
}
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)