(搬运自我在SegmentFault的博客)

这几天通过Unity官网的Unity Scripting Tutorials的视频学习Unity脚本,观看的过程中做了记录。现在,整理了一下笔记,供自己以后和其他初学者参考。

Awake和Start

  • Awake首先执行。通常用于建立组件间的引用,初始化。
  • Start在Awake之后和第一次Update之前执行,并且要求脚本enabled。只执行一次。

Updte和FixedUpdate

  • Update每帧一次,间隔不固定(受帧的处理时间影响),用于处理:

    • 非物理物体的运动
    • 获取输入
    • 定时器
  • FixedUpdate间隔固定,用于调整物理物体(刚体)。

enabled、setActive和Destroy

  • enabled控制禁用和启用一个组件。禁用GameObject的renderer可以隐藏物体,但碰撞体仍然存在。
  • setActive用于显示和隐藏一个物体。
  • Destroy用于彻底销毁一个GameObject或组件。可以加一个数值表示delay。

Translate和Rotate

使用这两个方法控制物体运动。

Translate对应position:

transform.Translate(Vector3);   // Amount in each axis to move by

Rotate对应rotation:

transform.Rotate(Vector3,   // Axis around which to rotate
float) // amount to rotate by

LookAt

transform.LookAt(target);

用于移动物体Z轴使之对准目标物体。

将其绑定到相机上可以实现运动物体的跟踪。

Lerp

用于平滑某种转变。

  • 空间移动:

      Vector3.Lerp(Vector3 from,  // 起点。通常应设为当前坐标
    Vector3 to, // 终点
    float t); // 0~1之间的值。值越大,返回值越接近终点,移动也越快。
  • 数值变换:

      Mathf.Lerp(float from, float to, float t);
  • 颜色渐变:

      Color.Lerp(Color from, Color to, float t);

GetButton、GetKey和GetAxis

GetButton和GetKey的区别:

  1. 前者参数为字符串,可以通过设置面板更改字符串和对应按键的映射。
  2. 后者的参数为KeyCode对象。

GetButton/Up/Down的区别:

  1. Up按键弹起时为true,其他时为false;
  2. 长按时GetButton每帧都返回true,而Down只有第一帧。

GetAxis(axisName)通过获取某个轴的值来了解用户的输入。

  • axisName是字符串,可以是“Horizontal”、“Vertical”。
  • 返回值为0~1之间的值。
  • 在设置中可以调节轴的参数,gravity控制返回0的速度,sensitivity控制离开0的速度。

OnMouseDown

鼠标在Collider或GUI组件上按下时调用该方法。

同类方法:

  • OnMouseDrag:按住不放
  • OnMouseEnter:进入
  • OnMouseExit:退出
  • OnMouseOver:在上面
  • OnMouseUp:释放
  • OnMouseUpAsButton:按下和释放作用于同一个对象

Instantiate

创建prefab的副本,返回对象的引用。

使用时先用代码创建GameObject的变量,然后回到编辑器界面将prefab拖入变量中。

Invoke

调用名叫method的方法:

Invoke(method, delay);

每隔time重复调用method方法:

InvokeRepeating(method, delay, time);

取消Invoke:

CancelInvoke();

取消名叫method的Invoke:

CancelInvoke(method);

Coroutine

利用了C#的yield,来实现在多次Update中执行一个行为。

开始一个Coroutine:

StartCoroutine(IEnumerator routine);

或者接受一个string参数表示方法的返回IEnumerator的方法的名字,后面跟着参数。

例:

StartCoroutine(Func(param));
StartCoroutine("Func", param);

停止一个Coroutine,用StopCoroutine。同样有两种形式。

Quaternion

用来表示旋转的类。讲了三个内容:

1)

LookRotation(Vector3 forward);

返回使物体转向forward方向的Quaternion。

2)

Slerp(Quaternion from, Quaternion to, float t);

旋转角度。相比Lerp,在中间时快,两头时慢。

3)

Quaternion.identity是一个静态变量,表示没有旋转。

Unity Scripting Tutorials 要点记录的更多相关文章

  1. iBatis & myBatis & Hibernate 要点记录

    iBatis & myBatis & Hibernate 要点记录 这三个是当前常用三大持久层框架,对其各自要点简要记录,并对其异同点进行简单比较. 1. iBatis iBatis主 ...

  2. JAVA 中LinkedHashMap要点记录

    JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor ...

  3. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

  4. python学习第一课要点记录

    写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...

  5. 编写高质量JavaScript代码的基本要点记录

    原文:深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 1.最小全局变量(Minimizing Globals)的重要性 JavaScript通过函数管理作用域.在 ...

  6. Unity GC 优化要点

    参考:http://blog.csdn.net/znybn1/article/details/76464896 为啥要点?因为讲的重点. 游戏运行时来存储数据,当这些数据不再被使用时,存储这些数据的内 ...

  7. Unity Ulua1.03优化记录

    现在项目的框架是在2015年设计的,那时候Ulua还处于1.03版本,现在回头再看,Ulua已经迭代到1.25版本,中间引入带有wraper的cstolua,而后转向现有的toLua#版本. 随着版本 ...

  8. Android开发入门要点记录:四大组件

    cocos2dx跨平台开发中需要了解android开发,昨天快速的浏览了一本Android开发入门教程,因为之前也似懂非懂的写过Activity,Intent,XML文件,还有里面许多控件甚至编程思想 ...

  9. 【基因组预测】braker2基因结构注释要点记录

    目录 流程使用 问题 记录下braker2的使用要点,以备忘记. 流程使用 braker2有很多流程,根据你的数据:组装的基因组.转录组.蛋白(同源,包括近缘或远缘)选择不同流程,官网有说明: htt ...

随机推荐

  1. xml 和 json 的区别

    JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于Javascript Programming Langu ...

  2. html5相关

    1.语义化标签: header\section\aside\footer 2.音视频播放: video\audio 其中video支持ogg\mpeg4\webm格式的视频: 3.canvas 一.画 ...

  3. 可视化数据包分析工具-CapAnalysis

    可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流量数据的工具,本文介绍又一款实用工具-CapAnalysis(可视化数据包分析工具),将比Xpli ...

  4. centreon 画图x轴乱码

    rrdtool默认不指定locale,使用本地locale.乱码我估记是中文字体,由于操作系统最小化安装,本地没有中文字体,导致乱码. 1 安装中文字体 yum -y install wqy-zenh ...

  5. 【MariaDB】MariaDB的复制

    GTID的说明 官网:https://mariadb.com/kb/en/mariadb/global-transaction-id/ 官网:http://dev.mysql.com/doc/refm ...

  6. 【IHttpHandler】ASP.NET 生命周期

    对由 Microsoft® Internet 信息服务 (IIS) 处理的 Microsoft® ASP.NET 页面的每个请求都会被移交到 ASP.NET HTTP 管道.HTTP 管道由一系列托管 ...

  7. ASP.NET的SEO:Linq to XML---网站地图和RSS Feed

    本系列目录网站地图的作用是让搜索引擎尽快的,更多的收录网站的各个网页.    这里我们首先要明白一个基本的原理,搜索引擎的爬行方式.整个互联网就像一张纵横交错的"网":网的各个节点 ...

  8. 如何利用jq来实现复选框的全选,反选!

    $("document").ready(function(){ $("#btn1").click(function(){ $("[name='chec ...

  9. leetcode 121

    121. Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of ...

  10. php5.3 连接 sqlserver2005

    操作系统:XP php5.3以后,已经不对sqlserver支持连接扩展了,不过微软官方还是对php5.3以后进行了扩展解决方案. 1.确认要连接sqlserver的数据库版本为2005 2.确认ph ...