纳金网
标题: Unity中使用NavMeshAgent使该对象更加贴合地面 [打印本页]
作者: may 时间: 2019-7-29 23:26
标题: Unity中使用NavMeshAgent使该对象更加贴合地面
Unity中如何实现对象在自动寻路的时候和接触面贴合(始终是垂直接触面的),比如坦克爬坡问题:
1.先创建一个Cube 把它拉成长方体,给cube添加rigidbody刚体组件,把useGravity和Is Kinematic属性勾选,选择Terrain地形,设置它的Layer层为Terrain,接着给Cube添加CubeCtrl.cs脚本。
代码:
- public class CubeCtrl:MonoBehaviour
- {
- void Update()
- {
- RaycastHit hit;
- int ramk=LayerMask.GetMask(“Terrain”);
- Vector3 point_dir=transform.TransformDirection(Vector3.down);
- If(Physics.Raycast(transform.postion,point_dir,out hit,50.0f,rmask))
- {
- Quaternion nexRot=Quaternion.LookRotation(Vector3.Cross(hit.normal,Vector3.Cross(transform.forward,hit,normal)),hit.normal);
-
- GetCompent<Rigidbody>().MoveRotation(Quaternion.Lerp(transform.rotation,nexRot,0.1f));
- }
- }
- }
复制代码
欢迎光临 纳金网 (http://go.narkii.com/club/) |
Powered by Discuz! X2.5 |