Unity 常用常找的东西存放
本文章由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 常用常找的东西存放的更多相关文章
- Unity常用常找(二)
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/51315050 作者:car ...
- Unity 常用插件1
作者:Meta42链接:https://www.zhihu.com/question/29097415/answer/229015898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 游戏编程之Unity常用脚本类的继承关系
前言学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略.本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结. 博文首发地址:http://tieba.b ...
- Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms(转载)
原文:http://www.jianshu.com/p/fe4c334ee9fe 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list target plat ...
- unity常用小知识点
感觉自己抑郁变得更严重了,超级敏感,经常想崩溃大哭,睡眠超差,实在不想药物治疗,多看看书,多约约朋友,多出去走走. 来几句鸡汤吧,人一定要活得明白一点,任何关系都不要不清不楚,说不定最后受伤的就是自个 ...
- > 软件编程 > 安卓开发 > Unity编译时找不到AndroidSDK的问题:Unable to list target pla
http://www.qingpingshan.com/rjbc/az/228769.html 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list targ ...
- unity常用插件
Unity3D常用插件,网址:http://jingyan.baidu.com/article/7f766daf4ef2844100e1d079.html ,想想自己也有小半年unity经验了,于是整 ...
- Unity常用协程功能封装
# 1.前言unity开发过程中,经常用到一些特定的协程功能,比如延时触发.等待触发.重复操作等.unity自带Invoke以及InvokeRepeating方法,但这些方法均采用反射机制,性能消耗, ...
- ZT:通过Find命令找到你要找的东西
https://os.51cto.com/art/202003/612049.htm find 命令有巨多的选项可以帮助你准确定位你在 Linux 系统上需要寻找的文件.这篇文章讨论了一系列非常有用的 ...
随机推荐
- BA-DDC与PLC的比较(转载)
1.概念 DDC(Direct Digital Control ) ,根据字面的意思为直接的数据控制,它包含了对采集数据的数字化以及对数据的数字处理.DDC的产生式随着楼宇控制.能源管理的需求,以及为 ...
- 洛谷—— P1126 机器人搬重物
https://www.luogu.org/problem/show?pid=1126 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机 ...
- 数据库连接池和connection的理解
数据库连接池Data Source Pool的理解 1.数据库连接池允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个连接,避免了每个方法里new connection的耗费资源和时间. ...
- redis代码解析-dictionary类型
dict本质上是为了解决算法中的查找问题(Searching),一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表. redis中的dict传统的哈希算法类似,它采用某个哈希函数从 ...
- Windows 8.1内置微软五笔输入法
微软五笔输入法採用86版编码,不是Windows 8.1系统的中文语言的缺省输入法,你在使用它之前须要把它加入到系统输入法中. 在控制面板双击"",然后加入微软五笔输入法. wat ...
- Shiro 学习应用(续)
在前面的文章中为大家介绍了 Shrio 的基础概念.可能比較笼统.没有深入到开发过程的一些问题.如今集中在本帖中归纳一下有关问题. FormAuthenticationFilter 表单过滤器 表单过 ...
- 门面模式(Facade)
一:定义 提供一个统一的接口代表子系统内部的一组接口.门面模式提供一个高层的接口,使得子系统更易于使用. 二:经验 2.1 window系统的软关机(不是直接断电)是一个过程, 它自己背后会做很多 ...
- Android持久化保存cookie
在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容. 在之前先科普一下基础知识: 什么 ...
- mobiscroll插件的基本使用方法
前一阵子接触到了mobiscroll插件,用在移动端的日期选择上,感觉倍棒,于是便敲了一个小案例,与大家一起分享分享 <!DOCTYPE html> <html lang=" ...
- 使用Latex写book类型文本的体会
晚上参考中科院上海交大清华北大等学校的模板,终于重新把博一时候没解决的问题解决了.中科院吴老师的CTeX论坛因为维护压力比较大不得不关了,查不到之前的Latex解决答案.经过一下午和一晚上的摸索,忽然 ...