5.10导航系统

Nav Mesh Agent 自动寻路(添加在移动的物体上)

Off Mesh Link分离路面(添加在跳跃的起始点的其中一个点上)

Nav Mesh Obstacle动态障碍(添加在障碍物上)

运动的物体都不能设置为Static

usingUnityEngine;

usingSystem.Collections;

publicclassNavigationScript:MonoBehaviour{

private NavMeshAgent  agent;

public  Transform[ ]  targetTransform;

float time;

private  int  TargetIndex=1;

voidStart( ){

agent=GetComponent<NavMeshAgent>( );

}

voidUpdate( ){

//走到鼠标点击的位置

//if(Input.GetMouseButtonDown(0)){

//  agent.destination = targetTransform.position;


物体移动到鼠标点击的位置

//   RaycastHit   hit;

//if(Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition),out  hit)){

//if(hit.collider.name.Contains("Plane")){

////设置目标点

//agent.destination=hit.point;

//}

//}

//}

//if(Input.GetKeyDown(KeyCode.Alpha1)){

//agent.areaMask=9;

//GameObject.Find("Road2").SetActive(false);

//}

//if(Input.GetKeyDown(KeyCode.Alpha2)){

//agent.areaMask=17;

//GameObject.Find("Road1").SetActive(false);

//}



//巡逻

if(agent.remainingDistance==0){

time+=Time.deltaTime;

if(time>=3.0f){

TargetIndex++;

//目标点循环更改

TargetIndex=TargetIndex%targetTransform.Length;

//设置目标点

agent.destination=targetTransform[TargetIndex].position;

time=0.0f;

}

}else{

agent.destination=targetTransform[TargetIndex].position;

}

//if(Input.GetMouseButtonDown(0)){

//if(gameObject.name=="Player1"){

//agent.destination=targetTransform[1].position;

//}else{

//agent.destination=targetTransform[0].position;

//}

//}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 角色控制是游戏设计中必不可少的一个设计环节,这一节我们讲一讲如何制作基本的角色运动控制交互逻辑。 因为是简单实例教...
    shimmery阅读 13,219评论 5 20
  • 这是今天的成果吧,虽然还是没有全部完成,但是大致的功能已经实现,飞机的移动,限制移动范围,子弹的发射,消灭敌人,敌...
    Unity学习的路上阅读 7,871评论 1 2
  • 今晚流氓兔推荐的歌曲是《无赖》,郑中基。就当我也是一个无赖吧,实在不知道要听什么歌,英文歌不想听,中文歌首首都像情...
    佐恬阅读 1,904评论 0 0
  • 首次在简书跟大家分享,希望大家喜欢。 我认为自己是一个“假装喜欢读书”的人,折腾过各种阅读app,也算有点心得。今...
    al_young阅读 13,567评论 0 3