跟随玩家

using UnityEngine;
using System.Collections;

public class EnemyAI : MonoBehaviour
{
    public int moveSpeed = 1;//怪物移动速度
    public int rotationSpeed = 5;//怪物转身数独

    private Transform target;//目标玩家
    private Transform myTransform;//目标怪物
    private Vector3 targetPosition;//目标玩家的坐标
    private float maxDistance;//玩家跟怪物间的距离

    void Awake()
    {
        myTransform = transform;//当前怪物的transform付给myTransform
    }

    void Start ()
    {
        GameObject player = GameObject.FindGameObjectWithTag ("Player");//找到tag为player的对象
        target = player.transform;//定义player就是目标玩家
    }

    void Update ()
    {
        Debug.DrawLine (target.position, myTransform.position, Color.red);//在玩家跟怪物中间画一条直的红线方便查看

        //设置怪物转身,正面始终朝向玩家
        targetPosition = new Vector3 (target.position.x, 0, target.position.z);//得到怪物脚下xz坐标
        myTransform.rotation = Quaternion.Slerp (myTransform.rotation, Quaternion.LookRotation(targetPosition - myTransform.position), rotationSpeed * Time.deltaTime);//挂物转身朝向玩家

        //设置怪物想玩家移动
        maxDistance = Vector3.Distance(targetPosition, myTransform.position);//获取玩家与怪物之间的距离
        if(maxDistance >= 2)
        {
            //当距离大于两米时移动
            myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;//让怪物朝着自己的正面移动
        }
        else
        {
            //当距离小于两米时的动作
        }
    }
}

跟随玩家

时间: 2024-11-05 23:19:36

跟随玩家的相关文章

猫跳窗户 学习

1 using UnityEngine; 2 using System.Collections; 3 4 /// <summary> 5 /// 镜头控制 6 /// </summary> 7 public class CameraControl : MonoBehaviour { 8 9 /// <summary> 10 /// 玩家 11 /// </summary> 12 private GameObject player = null; 13 ///

Road Crossing Game Template 学习

using UnityEngine; using System; namespace RoadCrossing.Types { /// <summary> /// 小路 /// </summary> [Serializable] public class Lane { /// <summary> /// 小路相关的游戏物体 /// </summary> public Transform laneObject; /// <summary> ///

Unity3D for iOS初级教程:Part 1/3(上)

转自:http://www.cnblogs.com/alongu3d/archive/ 如果图片看不到,请查看原文 这篇教材是来自教程团队成员 Christine Abernathy, 他是Facebook的开发支持团队的工程师.Unity是最为流行的游戏引擎之一.这是有充分缘由的:Unity有一个让它非常容易上手的强大的可视化编辑器,功能强大,好的社区支持,有吸引力的价格,等等!如果你渴望尝试Unity,没有比这篇教程更适合你的了!在这篇教程中,你会学习如何用Unity创建一个简单的iOS游戏

Unity3D 学习教程 11 c#脚本控制摄像头

首先新建一个脚本 点击创建一个文件夹起名C# 点击文件夹 创建一个C#脚本 建好文件后 双击文件 启动脚本编辑器 void Start () 是场景运行时加载程序 void Update ()  是每调用一针执行一次  可以认为是试试执行的程序 下面编写第一个脚本 控制摄像机移动 using UnityEngine; using System.Collections; public class acc : MonoBehaviour { int speed=50; void Start () {

Unity 内的敌人AI

孙广东  2015.8.15 一.Enemy Aim Ai           目的: 这篇文章的主要目的是为了让您了解有关如何使用 Enemy Aim Ai .你会得到结果: Enemy aim AI是非常有用的,当你想要敌人一直监视player.适当争取对象在真实世界的场景,需要时间,所以敌人会采取一些之前它锁在目标系统上的时间量. 这种效应可以创建的 Lerping 旋转角度对玩家的敌人.这种情况是在动作游戏,敌人跟随,目的是何地然后射球员的情况下非常有用.对敌人遵循概念是在早些时候发布的

2012年游戏行业五大趋势-吉网

在即将过去的一年里,有许多值得注意的消息,但在这些之间,我们可以清晰的看到2012年里,游戏行业的5个大的趋势: 众筹的新机遇 过去几年里,有很多的kickstarter筹资活动,但是今年2月份tim schafer的double fine adventure才真正为游戏行业敲开了众筹的大门,为行业带来了新的机遇,也为游戏业以后的发展奠定了基础. double fine adventure筹集了超过330万美元资金,比目标数40万美元高了将近10倍,刷新了kickstarter有史以来的筹资记录

有钱就是任性!NBA球星每周花1000美元玩手游

说到NBA球星沙奎尔•奥尼尔,想必很多篮球粉丝应该都认识.1972年3月6日出生于美国新泽西内瓦克,是美国著名职业篮球运动员,也是NBA实 力最强中锋之一.曾效力于NBA奥兰多魔术队和洛杉矶湖人队.迈阿密热火队.菲尼克斯太阳队.克里夫兰骑士队以及波士顿凯尔特人队. NBA球星沙奎尔•奥尼尔 在问到喜欢什么样的手机应用时,奥尼尔不假思索的回答“游戏”.而且最喜欢的是<myVEGAS>,这款游戏是Playstudios开发的一款社交博彩游戏,最大的特点是模拟真正的laohuji,加上逼真的音效,玩

GDC2017【神秘海域 4】中所使用的顶点着色器技术

原文链接 http://game.watch.impress.co.jp/docs/news/1047802.html 会場:San Francisco Moscone Convention Center Naughty Dog的Lead Technical Artist.Andrew Maximov氏 在GDC 2017的最后一天,Naughty Dog在题为[Technical Art Techniques of Naughty Dog: Vertex Shaders and Beyond]

Unity3D的基础概括1

坐标系统 坐标系统在Unity3D开发过程中具有非常重要的作用,是游戏对象定位.移动.缩放.旋转等操作的基础.坐标系统包含以下基本概念: 三维向量(Vector3): 用于表示三维坐标空间的向量和点,可进行向量运算. 世界坐标(World Space): 相对于整个世界空间建立坐标系,使用全局坐标(通过Transform.position获取).其X轴正方向指向屏幕右侧,Y轴正方向背离观察者,Z轴正方向指向屏幕上方. 视口坐标(ViewPort Space): 坐标点被归一化,并且相对于相机建立