本文主要是介绍unity3d人工智能学习(2)——操控行为的实现(避开障碍),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
操控行为的实现(避开障碍)
- 描述
- 实现过程
- 结果
描述
避开障碍行为是指操控AI角色,避开路上的障碍物。当AI角色在行进路上发现障碍时,产生一个排斥力,使AI角色远离障碍。
实现过程
- 创建球体作为障碍物,球体尺寸设置为8。新建‘obstacle’的tag,将球体的tag设置为obstacle。
- 为了有更明显的效果,为球体添加颜色变化。
当AI角色可能会与球体发生碰撞时,球体变黑。
当AI角色改变线路,不再可能与球体碰撞时,球体变白。
当AI角色与球体发生碰撞时,球体变红。
当AI角色不再与球体发生碰撞时,球体变灰。
为球体添加ColliderColorChange脚本。
public class ColliderColorChange : MonoBehaviour
{void Start () {} void Update () {}void OnTriggerEnter(Collider other){print("collide0!");if (other.gameObject.GetComponent<Vehicle>()!= null){print("collide!");this.renderer.material.color = Color.red;}}void OnTriggerExit(Collider other){this.renderer.material.color = Color.white;}
}
-
为球体添加刚体,选择IS Kinematic。将球体作为预制体,搭建一个多障碍物的场景。
-
设置一个cube作为AI角色的目标,去掉collider组件。
-
AI角色添加character controller组件,添加AILocomotion脚本、SteeringForCollisionAvoidance脚本、SteeringForArrive脚本。脚本配置如图。(脚本可以在《unity3d人工智能编程精粹》代码的Chapter2中寻找)
结果
这篇关于unity3d人工智能学习(2)——操控行为的实现(避开障碍)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!