本文章由cartzhang编写,转载请注明出处。 所有权利保留。

文章链接:http://blog.csdn.net/cartzhang/article/details/50483316

作者:cartzhang

常需要,常查找!

自己记录下!

1.相机射线

    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = ray.GetPoint(10.0f);
transform.LookAt(ray.GetPoint(10.0f));

2.提高效率

GetComponent(), FindObjectByType() and Instantiate()

尽量少使用。

3. InvokeReapting 的内部实现

实现过程
{
找到函数方法名称,存储
等待调用时间,WaitForSeconds(time)
循环知道用户取消
{
Invoke 存储的函数方法
等待时间
}
删除记录保存的方法
}

4. Coroutine 和InvokeReapting

协同程序,不是多线程。但是他有自己的堆栈,局部变量,指令指针,与其他协同程序共享全局变量等信息。在多处理器下,多线程同时运行,协同程序,在某时刻之有一个在运行。

若你有个负责的任务,它非常费帧率,就考虑使用协同或InvokeReapting.

若是简单任务,就嫑在协同或InvokeReapting使用,这不会提高效率的。

但是也不用太死板。尽管可能降低效率,代码会更简单和实用。

协同是处理时间序列的一种很好的方法。

它不是线程也不是异步。

协同当脚本未激活或对象为激活时不可用。

协同返回时间的WaitForSeconds依赖于Time.timeScale.

InvokeReapting
/*
void (string methodName, float time, float repeatRate)
{
- Find the method called "methodName" in the calling assembly and store it.
- Wait "time" seconds by yielding on WaitForSeconds(time)
Loop until the user cancels this action
{
- Invoke the stored method
- Wait "repeatTime" seconds by yielding on WaitForSeconds(repeatRate)
}
- Remove the method info record from storage.
}
*/

使用Invoke或InvokeReapting,这样很难调试。

5.常用属性

ContextMenu,在面板功能增加选项。
ContextMenuItemAttribute,对编辑添加右键操作。[ContextMenuItem("Reset", "ResetName")]
HeaderAttribute,在变量前面增加说明:[Header("魔法值")]
MultilineAttribute,[MultilineAttribute]
RangeAttribute,限制输入范围
RequireComponent,依赖组件,[RequireComponent(typeof(Rigidbody))]
[Space(10)],在面板上,增加一个空行。
[Tooltip("This year is 2015!")],鼠标移到对象上,显示提示。

6.MenuItem设置快捷键

[MenuItem("Tools/New Option %#a")]
private static void NewMenuOption()
{
}

菜单快捷键设置,可单独使用,也可以组合使用:


% – CTRL on Windows / CMD on OSX # – Shift & – Alt LEFT/RIGHT/UP/DOWN – Arrow keys F1…F2 – F keys HOME, END, PGUP, PGDN

AddForce和velocity有什么区别?

这是力与速度的区别。

施加恒力,对象获取加速度,然后就加速前进。

直接使用Velocity,速度很平稳,移动为恒定值。

检查那个按键被按下


public void DetectPressedKeyOrButton()
{
foreach (KeyCode kcode in Enum.GetValues(typeof(KeyCode)))
{
if (Input.GetKeyDown(kcode))
{
Debug.Log("KeyCode down: " + kcode);
}
}
}

7. 对象是否可见


public static class RendererExtensions
{
public static bool IsVisibleFrom(this Renderer renderer, Camera camera)
{
Plane[] planes = GeometryUtility.CalculateFrustumPlanes(camera);
return GeometryUtility.TestPlanesAABB(planes, renderer.bounds);
}
}

然后判断:


if (rend.IsVisibleFrom(Camera.main)) Debug.Log("Visible");
else Debug.Log("Not visible");

若有问题,请随时联系!

非常感谢你!!

Unity 常用常找的东西存放的更多相关文章

  1. Unity常用常找(二)

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/51315050 作者:car ...

  2. Unity 常用插件1

    作者:Meta42链接:https://www.zhihu.com/question/29097415/answer/229015898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  3. 游戏编程之Unity常用脚本类的继承关系

    前言学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略.本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结. 博文首发地址:http://tieba.b ...

  4. Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms(转载)

    原文:http://www.jianshu.com/p/fe4c334ee9fe 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list target plat ...

  5. unity常用小知识点

    感觉自己抑郁变得更严重了,超级敏感,经常想崩溃大哭,睡眠超差,实在不想药物治疗,多看看书,多约约朋友,多出去走走. 来几句鸡汤吧,人一定要活得明白一点,任何关系都不要不清不楚,说不定最后受伤的就是自个 ...

  6. > 软件编程 > 安卓开发 > Unity编译时找不到AndroidSDK的问题:Unable to list target pla

    http://www.qingpingshan.com/rjbc/az/228769.html 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list targ ...

  7. unity常用插件

    Unity3D常用插件,网址:http://jingyan.baidu.com/article/7f766daf4ef2844100e1d079.html ,想想自己也有小半年unity经验了,于是整 ...

  8. Unity常用协程功能封装

    # 1.前言unity开发过程中,经常用到一些特定的协程功能,比如延时触发.等待触发.重复操作等.unity自带Invoke以及InvokeRepeating方法,但这些方法均采用反射机制,性能消耗, ...

  9. ZT:通过Find命令找到你要找的东西

    https://os.51cto.com/art/202003/612049.htm find 命令有巨多的选项可以帮助你准确定位你在 Linux 系统上需要寻找的文件.这篇文章讨论了一系列非常有用的 ...

随机推荐

  1. python第三周:集合、函数、编码、文件

    1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...

  2. 怎样使windows上的javaWEB项目公布到Centos上

    首先在windows上把项目导入到myeclipse或者eclipse(JEE)版本号上. 然后经过调试,没有错误后. 点击项目,然后右键导出(Export...) 然后选择JEE的war格式,这个是 ...

  3. XML系统学习

    参考:W3School XML基本概念 1.XML是eXtensible Markup Language,使用DTD(Document Type Definition)来描述数据,主要是为传输和存储数 ...

  4. 2015.05.04,外语,读书笔记-《Word Power Made Easy》 14 “如何谈论日常现象” SESSION 41

    1. people are the craziest animals bovine(['bәuvain] adj. (似)牛的, 迟钝的),像牛一样placid(['plæsid] adj. 安静的, ...

  5. asp.net web site中reference的version的autoupdate

    https://stackoverflow.com/questions/833924/visual-studio-stop-auto-update-on-references This is vali ...

  6. 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD

    排版也是醉了见原文:http://www.cnblogs.com/maybe2030/p/5089753.html 在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度 ...

  7. ros中文术语表及消息类型表

    前言:整理一些ros常用表格,包括中文术语对照表. 一.中文术语表 二.消息类型表 -END-

  8. infludb语法--官网

    https://docs.influxdata.com/influxdb/v0.8/api/query_language/ InfluxDB features a SQL like query lan ...

  9. sql语句获取本周、本月、本年数据

    本周:select * from table where datediff(week,C_CALLTIME,getdate())=0     --C_CALLTIME 为日期字段本月:select * ...

  10. Win10 UI入门 pivot multiable DataTemplate

    this is a dynamic pivot with sliderable navigation and multiableDatatemplate Control 看了 alexis 大哥的pi ...