unity3d 怪物的简单ai
2013-10-14 16:27
323 查看
我们想让怪物知道自己的攻击目标(当然指的是玩家)然后转向和移动来攻击玩家,因此我们先声明需要用到的变量,首先我们需要一个transform类型(transform组件决定了场景中所有物体的方位,旋转和缩放。每个物体都有一个变换组件)来记录目标的状态,然后定义两个int类型来设置移动速度跟旋转角度。
定义一个私有变量mytransform用来记录当前怪物的方位。然后在Awake函数中将transform赋给mytransform变量这样做的好处是通过建立缓存将他保存到mytransform变量里 这样就不用每次去取transform的值可以让运算变得更快捷。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled
== true的情况下执行。
接着通过Gameobject的FindGameObjectWithTag得到目标对象 将transform赋值给target。
现在已经获得了目标和自身的transform 我们可以试着在他们之间连条线 通过debug的drawline可以很轻松的做到
定义一个私有变量mytransform用来记录当前怪物的方位。然后在Awake函数中将transform赋给mytransform变量这样做的好处是通过建立缓存将他保存到mytransform变量里 这样就不用每次去取transform的值可以让运算变得更快捷。简单说明一下,Awake在MonoBehavior创建后就立刻调用,Start将在MonoBehavior创建后在该帧Update之前,在该Monobehavior.enabled
== true的情况下执行。
接着通过Gameobject的FindGameObjectWithTag得到目标对象 将transform赋值给target。
public class EnemyAI : MonoBehaviour { public Transform target; public int movespeed=0; public int rotationspeed=0; private Transform myTransform; void Awake() { myTransform=transform; } // Use this for initialization void Start () { GameObject player=GameObject.FindGameObjectWithTag("Player"); target=player.transform; }
现在已经获得了目标和自身的transform 我们可以试着在他们之间连条线 通过debug的drawline可以很轻松的做到
void Update () { Debug.DrawLine(target.position,myTransform.position,Color.yellow); }
相关文章推荐
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
- Unity3d 2017.3 AI(1) 简单的小兵
- 【Unity3D自学记录】游戏开发之怪物AI
- Unity3DAI行为------避开障碍物简单实现
- Unity3d之怪物AI接口规范
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
- MFC学习笔记之三(粒子系统+怪物简单AI+碰撞检测)
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
- 实现敌人(怪物)的简单AI(自动巡逻、看到玩家攻击玩家、玩家离开恢复自动巡逻)
- Unity3D怪物基本AI
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
- [Unity3D]Unity3D游戏开发之怪物AI
- unity3d学习(三)制作敌人简单AI和发射火球
- unity3d简单的AI
- [Unity3D]Unity3D游戏开发之怪物AI
- 功夫小子实践开发-具有简单AI的怪物类的分析和实现
- 简单3d RPG游戏 之 003 怪物AI
- Unity3d制作一个简单的打开保存对话框-按钮2
- 设计模式——状态机(AI)(Unity3D中的应用)
- Unity3d中最简单物体的旋转移动