var Enemy_tank: GameObject;                                             //定义的坦克var firepoint: Transform;                                                         //定义的开火点var bullet: Rigidbody;                                                              //定义的子弹var bullspeed: int=50;                                                              //定义的子弹速度var attackRange = 100.0;                                                          //定义的距离var target : Transform;//定义的共计目标//static var value : float ;private var cun_time: int=0;function Start ()                                                                                 //初始化目标{if (target == null && GameObject.FindWithTag(“hero”))     target = GameObject.FindWithTag(“hero”).transform;}function Update (){//Tank Fire// cun_time++;// if(cun_time==260)// {//     var clone : Rigidbody;//     clone = Instantiate(bullet, firepoint.transform.position, firepoint.transform.rotation);//     clone.velocity = transform.TransformDirection (Vector3.right*bullspeed);//     cun_time=0;//     }//distance from A and B//angle from A and B//var targetDir = transform.position-other.position;//var right = transform.right;//var angle = Vector3.Angle(targetDir, right);//print(“angle is =”+angle);//if (angle < 5.0)//transform.Rotate(Vector3.up*0.5);//var speed = 0.1;//transform.rotation =Quaternion.Slerp (from.rotation, to.rotation, Time.time * speed);Enemy_tank=GameObject.Find(“Enemy_barrel”);                                                       //实例化if (target == null)return;if (!CanSeeTarget ())return;// Rotate towards targetvar targetPoint = target.position;var targetRotation = Quaternion.LookRotation (targetPoint - Enemy_tank.transform.position,Vector3.up);  //求出与目标之间的角度Enemy_tank.transform.rotation = Quaternion.Slerp(Enemy_tank.transform.rotation, targetRotation, Time.deltaTime * 2.0);//旋转之角度与目标对齐//If we are almost rotated towards target - fire one clip of ammovar forward = Enemy_tank.transform.TransformDirection(Vector3.forward);var targetDir =Enemy_tank.transform.position-target.position;                          //求出2者之间的距离if((Vector3.Angle(forward, targetDir) <10.0)||((Vector3.Angle(forward, targetDir) >-10.0)))         //这边是自动开炮的效果{cun_time++;if(cun_time==260){var clone : Rigidbody;clone = Instantiate(bullet, firepoint.transform.position, firepoint.transform.rotation);clone.velocity = Enemy_tank.transform.TransformDirection (Vector3.forward*bullspeed);cun_time=0;}}if((Vector3.Distance(transform.position, target.position) < attackRange))         //发现目标而且在范围之内,开始追击目标{var targetPoint1 = target.position;//Calculation the angle with targetvar targetRotation1 = Quaternion.LookRotation (targetPoint1 - transform.position,Vector3.up);//Rotated Itself   then make a line with targettransform.rotation = Quaternion.Slerp(transform.rotation, targetRotation1, Time.deltaTime * 1.0);transform.Translate(Vector3.forward*0.05);}}function CanSeeTarget (): System.Boolean                                //计算是否被发现{if (Vector3.Distance(transform.position, target.position) > attackRange) return false;var hit : RaycastHit; if (Physics.Linecast (transform.position, target.position, hit))return hit.transform == target; return false;}

Unity3d 坦克AI_自动寻怪,自动追击脚本参考相关推荐

  1. SI522A/SI523带低功耗自动寻卡功能的13.56MHz非接触式读写器芯片

    SI522A低功耗模式下,读卡距离可达3~5cm.SI522A和SI523针对市场低功耗模式下极其不稳定的痛点,凭借着超低功耗.稳定的低功耗模式,及软硬件直接兼容MFRC522FM17550/FM17 ...

  2. 三菱PLC项目案例学习之自动寻槽铣槽机

    三菱PLC项目案例学习之自动寻槽铣槽机 器件:三菱FX3UPLC,威纶通触摸屏,三菱伺服,基恩士光纤传感器,三菱变频器等. 控制方式:PLC接收恩士光纤传感器信号控制伺服驱动器寻槽,寻槽后,变频器控制 ...

  3. 无人小巴自动寻迹(二)底盘和pl(路径规划)程序解读(sv2惯导+激光雷达)

    底盘和pl程序: 底盘main.cpp中包含RecvFromCAN.RecvFromPL.Process.SendToCAN.RecvFromIMU.AnalysisIMU.SendCarState七 ...

  4. 51单片机智能小车C程序 蓝牙遥控+避障+自动寻迹

    /*********************************************************     文件名:car.c     文件说明:小车的蓝牙,避障,自动寻迹C程序   ...

  5. 微型计算机原理及接口技术董洁,基于单片机的自动寻位立体车库系统..doc

    基于单片机的自动寻位立体车库系统 摘 要 本文介绍了立体车库的研究背景及意义:分析了各种立体车库的特点,选择垂直循环式的立体车库作为研究对象,并确定了车库的总体设计方案:以单片机为控制核心,给出了立体 ...

  6. 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解

    一.介绍 自动发现 Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服 ...

  7. vim 去掉自动注释和自动回车

    开启了自动注释和自动缩进对粘帖代码不方便 关闭自动注释 :set fo-=r  关闭自动缩进(这个对C/C++代码好像无效) :set noautoindent 关闭C语言缩进  :set nocin ...

  8. java 自动装箱自动拆箱_自动装箱和自动拆箱

    自动装箱和自动拆箱 Java 提供了 8 种基本数据类型,每种数据类型都有其对应的包装类型,包装类是面向对象的类,是一种高级的数据类型,可以进行一些比较复杂的操作,它们是引用类型而不再基本类型了. 基 ...

  9. 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    原文: 性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server- ...

最新文章

  1. 【SDOI2017】天才黑客
  2. 给力!神策数据创新推出数字化运营闭环解决方案!
  3. BigDecimal类基础
  4. 打乱 数字_崔召幼儿园中班悦享时光——亲子益智游戏数字配对
  5. centos 卸载vsftp
  6. javascript GlobalEventHandlers
  7. 机房三维(3D)监控系统和机房可视化动力环境监控系统两者有什么特点?
  8. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
  9. MVC路由 路由的三种扩展 替换MVC内置的Handler
  10. preempt_count
  11. Puppet之基础篇
  12. 6.4两种给定两个均不超过9的正整数k和n,要求编写程序求k+kk+kkk++…+kk…k (n个k,不是n个k乘积)之和
  13. 中国支付清算发展简史
  14. 计算机系统盘怎么扩充,扩大c盘空间,小编教你如何扩大C盘空间
  15. 无线网络打印机服务器安装步骤,网络打印机安装步骤
  16. 星巴克的员工激励机制
  17. Java字节码角度分析:Synchronized ——提升硬实力11
  18. 基于神经网络的颜色恒常性—Fully Convolutional Color Constancy with Confidence-weighted Pooling
  19. 传智健康day04 预约管理-套餐管理
  20. 大数据全网最佳学习路线总结,不看肯定后悔

热门文章

  1. 1157 Anniversary
  2. shell 常用工具指令
  3. Cobaltstrike系列教程(三)beacon详解
  4. 搜索之BM25和BM25F模型
  5. matlab 巴特沃斯滤波
  6. 华南农业大学2021春《嵌入式软件开发》复习卷
  7. 思科路由器配置GRE隧道
  8. C#区域性语言(CultureInfo)与资源本地化(WINFORM,多线程,原理可适用于网络开发)
  9. LINUX 一键装机 PXE system-config-kickstart 资源 实现简单操作镜像装机
  10. maven是干嘛的?