Unity中的几个”近义词”
最近整理并研究了一些平时是学习Unity容易混淆的函数,来和大家分享一下!
Vector3.forward&transform.forward
翻看Unity圣典中的解释
Vector3.forward:写Vector3(0,0,1)的简码。也就是Z轴
transform.forward:在世界空间坐标变换的蓝色轴,也就是Z轴
通过字面意思我们可以知道,Vector3.forward在世界坐标系中表示世界坐标系的Z轴,在本地坐标系中表示本地坐标的Z轴,且模的长度都为1。那么当物体平移时,坐标系选择不同方向也不同:
transform.Translate(Vector3.forward * Time.deltaTime, Space.Self);此时按照自身坐标的Z轴方向前进
transform.Translate(Vector3.forward * Time.deltaTime, Space.World);此时按照世界坐标的Z轴前进
transform.forward则始终表示自身坐标的Z轴只是当坐标系为世界坐标时,他在Z轴的模不一定为1,而是自身Z轴在世界坐标系Z州的投影,所以:
transform.Translate(transform.forward * Time.deltaTime, Space.World);此时按照自身坐标的Z轴方向前进
transform.Translate(transform.forward * Time.deltaTime, Space.Self);此时移动的方向与自身Z轴的夹角为自身Z轴和世界坐标系Z轴的夹角(所以金莲骨妖这么用,因为他会将坐标系进行两次转化)
for和foreach
很久之前就从网上知道foreach会造成内存产生垃圾,影响性能,并且对此深信不疑,知道最近自己去尝试了才发现事实并非如此。。。
首先写一个简单的测试脚本,for和foreach条件一样。
public class ForForeach : MonoBehaviour
{
float timer1 = 0;
float timer2 = 0;
List<int> list = new List<int>();
public static GameObject testObject;
void Awake()
{//testObject = new GameObject();
}
// Use this for initialization
void Start()
{testObject = new GameObject();for (int num = 0; num < 50; num++){list.Add(num);}
}// Update is called once per frame
void Update()
{for (int i = 0; i < list.Count; i++){}//foreach (var item in list)//{//}
}
}
依次运行for和foreach所在代码,打开性能分析器
for:
foreach:
两者都没有产生内存垃圾!于是我又看了几篇文章发现这是几年前讨论的一个话题,而且他们用的都是unity自带的Mono编译器,他在编译过程中foreach会有一个装箱操作,正是这一点导致了foreach产生了垃圾,而对于VS编译产生的DLL文件则并不会产生,而且之后的版本unity对Mono编译器进行了优化,他在运行foreach也不会产生内存垃圾了。所以得出了结论:至少在是否产生垃圾从而影响性能这一点上,两者都并不会如此。
Awake和Start
awake和start的区别相信很多人都知道,awake值创建MonoBehavior之后调用,而start在MonoBehavior创建之后调用Update之前调用,也就是说当脚本被关在到物体上之后,及时脚本被禁用也会执行Awake也会执行
public class AwakeStart : MonoBehaviour {
void Awake()
{print("Awake");this.enabled = false;
}
// Use this for initialization
void Start()
{print("Start");
}// Update is called once per frame
void Update () {}
}
对于上述代码会输出Awake而不会输出Start,因此在脚本间相互调用时,一定要先看一下相应变量在调用时是否已经被初始化。
Unity中的几个”近义词”相关推荐
- 自然语言处理(NLP)之求近义词和类比词<MXNet中GloVe和FastText的模型使用>
这节主要就是熟悉MXNet框架中的两种模型:GloVe和FastText的模型(词嵌入名称),每个模型下面有很多不同的词向量,这些基本都来自wiki维基百科和twitter推特这些子集预训练得到的. ...
- LeetCode 1258. 近义词句子(哈希+并查集+排序+回溯)
文章目录 1. 题目 2. 解题 1. 题目 给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换 ...
- dismiss和remove_remove的近义词辨析
remove有开除; 去除; 脱掉等意思,那么你知道remove的近义词有哪些吗?下面学习啦小编为大家带来remove的近义词及辨析,希望对大家的学习有所帮助! remove近义词: remove, ...
- 引人注目的意思是什么,怎么用引人注目造句,引人注目的近义词有哪些?
引人注目是个汉语词语(并不是成语),相信大家应该并不陌生,那你知道引人注目的意思是什么吗?怎么用引人注目造句,你会吗?引人注目的近义词又有哪些呢?快和我一起来了解下吧. 引人注目的意思 引人注目,意思 ...
- 考研英语近义词与反义词·二
back:后退,支持:同义词:retreat,support:反义词:oppose bait:诱饵,诱惑物,v,引诱,诱惑同义词:trap,lure,tempt: bald:秃头的,秃的:不加掩饰的, ...
- 5110. 近义词句子
给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...
- 随手记_英语_学术写作_常用近义词区分
1 近义词辨析 使用 utilize.use.apply.employ.avail.exploit的区别 (1)utilize往往指使本来无用的或开发的变为utile(有用的). (2)use.uti ...
- 【Elasticsearch】相关性,近义词匹配,纠错匹配
目录 相关性 布尔模型 词频/逆向文档频率(TF/IDF) 词频 逆向文档频率 字段长度归一值 结合使用 向量空间模型 Lucene 的实用评分函数 近义词匹配 近义词查询原理 同义词过滤器 纠错匹配 ...
- 责备的近义词_验收测试:责备工具
责备的近义词 大约5年前,我正在进行一个项目,该项目旨在建立抵押品管理系统. 该系统已连接到大型财务网络,并通过标准化财务消息获得了说明. 该项目以瀑布形式运行,对学科之间的协作有很多限制. 在此不加 ...
- 人为增加近义词 | Word2Vec的语料制作和训练
第零步:介绍 终于弄明白了gensim.word2vec怎么玩,说到底word2vec就是用共现矩阵来判断两个词语是不是相关,从而得出两个词语相似度高不高,这话听起来有问题~ 但事实就是这样的,不管我 ...
最新文章
- 11 个好用的科研工具推荐!工作效率提升 max!
- 领英Linkedin信息搜集工具InSpy
- 如何开启Windows 10隐藏的锁屏时间设置项
- PE 头文件 IMAGE_NT_HEADER
- 程序员福利各大平台免费接口,非常适用
- 【原创】Performanced C++ 经验规则 第五条:再谈重载、覆盖和隐藏
- 用Openswan组建Linux IPSec ---第一部分
- 利用更改Windows7粘滞键漏洞破解登录密码
- python RE表达式规则剩余规则
- ACL2021中的25个Transformers模型
- 基于ZigBee设计的天气监测系统
- 数据统计分析(SPSS)【1】
- idea debug collecting 卡死
- 吉他调音器 android,GuitarTuna - 吉他调音器
- EDM系统看板多邮件模板邮箱配置地址簿​EDM营销推送邮件系统开发
- 损失函数-交叉熵的推导和二分类交叉熵
- java 计算两个日期相差月数_Java简单计算两个日期月数差的方法
- 如何让DIV标签居中显示?
- 思想的沉淀,精辟,杨澜如是说
- 斯诺登“现身”CES展会 称想回到美国