向量计算

在游戏开发中,我们使用向量来定义网络,方向和其他各种计算
Vector3.magnitude(),计算向量大小
点乘积为0时,代表两个向量垂直
比如创作一个飞行模拟器,你需要检查世界坐标系的上向量与飞机自身的前向量
如果这两个是垂直的,就是点乘积为0时,飞机承受的阻力最小;
随着点乘积为正且变大,我们可以知道飞机在拉升,我们可以增加一些阻力;
如果点乘积为负且增加,我们就知道飞机正在下潜
叉乘积产生的结果不是标量,是另外一个向量,这个新向量与原来的两个向量都垂直,可以用左手坐标系确定新向量的方向
比如计算旋转坦克炮台时,施加扭矩所需的油,已知当前炮台指向方向和它需要面朝的方向,你需要叉乘这两个向量,计算出旋转扭矩环绕的轴

组件使用与不使用

使用 enabled标志位

`public class LightController : MonoBehaviour
{Light myLight;// Start is called before the first frame updatevoid Start(){//初始化对象myLight = GetComponent<Light>();}// Update is called once per framevoid Update(){//对对象进行操作if (Input.GetKeyDown(KeyCode.Space)){myLight.enabled = !myLight.enabled;}if (Input.GetKeyDown(KeyCode.Q)){myLight.color = Color.red;}if (Input.GetKeyDown(KeyCode.W)){myLight.color = Color.white;}}
}`

游戏对象激活控制

使用 SetActive()控制对象的激活,即是否显示在屏幕上

Translate和Rotate函数

Translate和Rotate函数是用来修改游戏对象位置和旋转的函数

transform.Translate(new Vector3(1, 0, 0));

代表X轴移动一个单位,如果是在Update()中,则每帧移动一个单位
通常会在后面乘以 Time.deltaTime

transform.Translate(new Vector3(1, 0, 0)*Time.deltaTime);

这意味着移动速度是米每秒,而不是米每帧
Unity中设置了快捷写法
注意:
①这些函数都在本地坐标系工作,而不是世界坐标系,以上用法都是相对与其应用的对象的坐标的
②如果移动带碰撞体的物体,有时候它会发生物理交互,这就不应该使用translate和rotate,应使用物理类的函数;如需使用,就要拥有一个运动学的刚体
即rigidbody中 isKinematic 为 true

LookAt函数

LookAt函数可以用来使游戏对象的前方向指向世界里的另外一个位置

transform.LookAt(target);

注意:本地坐标的前方向会一直指向目标对象,世界坐标的摄像头则不会

Destory函数

Destory函数可以在运行时移除游戏对象,或者对象上的组件,也可以在移除前加一个延时

GetAxis函数

类似GetButton和GetKey;
区别:GetButton和GetKey返回布尔值,表示按键有没有被按下
GetAxis返回的是浮点数(-1~1)

OnMouseDown函数

OnMouseDown函数可以检测在碰撞体或者GUI元素上的点击

Unity脚本-初级Part 2相关推荐

  1. Unity脚本生成插件:Script Create Dialog

    最近写代码又犯懒了... 感觉每次新建脚本都要写一堆简单重复的东西好无聊,所以搜索了一下有没有自动生成脚本的插件.结果还真被我发现了,官方在N久之前就制作了自动生成脚本的插件[Script Creat ...

  2. unity脚本运行顺序具体的解释

    unity脚本自带函数执行顺序例如以下:将以下脚本挂在随意物体执行就可以得到 Awake ->OnEable-> Start ->-> FixedUpdate-> Upd ...

  3. (转)MOMO的Unity3D研究院之深入理解Unity脚本的执行顺序(六十二)

    http://www.xuanyusong.com/archives/2378 Unity是不支持多线程的,也就是说我们必须要在主线程中操作它,可是Unity可以同时创建很多脚本,并且可以分别绑定在不 ...

  4. Unity(一)Unity脚本程序开发

    最近实验室有AR的项目,需要用Unity进行开发,一边学习一边把知识总结下来.在开始项目之前讨论过项目的技术方案,用Unity开发还是用Unreal开发,本人在两种游戏引擎上都有过初步的接触,认为Un ...

  5. Unity脚本生命周期与执行顺序

    目录 脚本生命周期 MonoBehavior生命周期图 脚本执行顺序 自定义执行顺序 @(文章目录) 在Unity中,脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码.必须绑定在游戏对象 ...

  6. [Unity脚本运行时更新]C#7.3新特性

    洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号. 本文是该系列<Unity脚本运行时更新带来了什么?>的第8篇. 洪流学堂公众号回复runtime,获取本系列所有文章. Unity2 ...

  7. [Unity脚本运行时更新]C#7.2新特性

    洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号. 本文是该系列<Unity脚本运行时更新带来了什么?>的第7篇. 洪流学堂公众号回复runtime,获取本系列所有文章. Unity2 ...

  8. [Unity脚本运行时更新]C#7.1新特性

    洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号. 本文是该系列<Unity脚本运行时更新带来了什么?>的第6篇. 洪流学堂公众号回复runtime,获取本系列所有文章. Unity2 ...

  9. [Unity脚本运行时更新]C#7新特性

    洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号. 本文是该系列<Unity脚本运行时更新带来了什么?>的第5篇. 洪流学堂公众号回复runtime,获取本系列所有文章. Unity2 ...

最新文章

  1. elasticsearch 条件去重_elasticsearch去重计数
  2. oracle normal bitmap,深入解析Oracle ASSM结构之Level 1 Bitmap Block
  3. Linux系统编程:代码实现多重管道功能
  4. 【AI视野·今日CV 计算机视觉论文速览 第201期】Wed, 19 May 2021
  5. php编辑页面代码,0069 PHP编程实现后台网页:新闻创建和编辑
  6. xxx.lib(xxx.obj)fatal error LNK1103: debugging information corrupt; recompile module 的解决方案
  7. linux安装redis和mysql
  8. 云数据库MySQL5.7单机基础版上线
  9. 计算机导论学后感5000字,大学计算机导论论文3000字.docx
  10. ARM指令集 mov指令,ldr=伪指令,地址访问指令ldr,str,位运算指令and,orr,eor,bic,逻辑位移指令lsl,lsr
  11. 自定义智能报表系统内容准备:基于WEB的SBO数据结构浏览器
  12. Win快捷键大全史上最全~ win打开资源管理器快捷键(查看内存的占用)
  13. 利用全长转录组多重阵列测序检测同源异构体
  14. 02_ue4界面介绍
  15. TCP的三次握手详解
  16. 短视频造假术,你值得拥有
  17. nari基于osp平台的后端简单curd案例
  18. hexo博客添加标签、分类、归档、关于等页面
  19. 很实用的Eclipse小工具——Easy Explore和Explore FS
  20. android 新驱动安装教程视频教程,一教即会新人必备 adb驱动安装教程

热门文章

  1. PHP代码审计的方法与步骤
  2. mysql正则替换_MySQL中使用replace、regexp进行正则表达式替换的用法分析
  3. Programming logic Corrector
  4. 谁最早提出元宇宙概念? 谁是最早的元宇宙提出者? 先行者有哪些人
  5. 罗氏旗下乳腺癌创新靶向药帕捷特又一适应症在中国获批
  6. XML是什么的通俗理解
  7. 简书发布文章时要求绑定微信号后才能发布
  8. win7 安装程序无法创建新的系统分区,也无法定位现有系统分区
  9. 丽升计算机阅卷辅助系统,丽升主观题计算机辅助评卷系统
  10. 网站策划职业技能分析(转载)