Unity 一些注意的东西

来源:互联网 发布:python def peven (n) 编辑:程序博客网 时间:2024/05/17 09:21

1, 编辑器

如果要在属性面板上显示一个protected 或者是私有的字段, 可以加上[SerializedField] 标签. 如果是要在字段的属性面板上面加一个名字, 可以加上[Header("name")], 如果想让一个对象显示在属性面板上, 只需要在定义这个类的地方加上一个[Serializable] 就可以了, 也就是让这个类是可以序列化的就好了. 如果要加多个标签, 则可以用,逗号结尾.


2, Js

 Unity 在用JS 编写代码的时候, 导入名称空间是用import 这个关键字, 例如import UnityEngine; 

Js 中GetComponent(name) 返回的是object, 必须要强转才可以正常使用


3,  Unity游戏打包后在android端 会有主要的3个dll, 一个是Assembly_Csharp.dll 这个是标准的C# 代码的代码库.  一个是Assembly_UnityScript.dll 这个是JS 代码. 还有一个是Assembly_Csharp-firstpass.dll, 这个是放在StandardAssets, Pro Standard Assets 或者是Plugins 目录下的 这个目录下的代码是最先编译的. 要注意的是Unity中的JS 代码也是基于.net的, 跟传统的javascript差别很大的.


4, 根据测试, 不存在同样的两个类, 一个Javascript, 一个C#, 可以互相调用的情况, 只能是单向的, 两个类不能同时放在Pro Standard Assets , Standard Assets 或者是Plugins 目录下, 这样的话, 会造成两个都无法调用. 必须是一个放在这三个目录下, 一个放在其他目录下, 放在其他目录下的代码可以调用放在这三个目录下的代码, 不论是C# 调Js或者是JS 调C#, 但是不可能互相调用的, 因为先编译的代码在调用后编译的代码的时候如果涉及到了类型, 就肯定找不到了


5, Button

NGUI 中的UIButton 用onclick 来动态添加eventDelegate的时候, 如果要调用的是静态方法必须这样, EventDelegate ed = new EventDelegate(Show). 其中这个Show 就是那个静态方法, 对于UGUI 的Button 也是这样如果要动态添加点击事件的话, Button b= new Button() b.onclick.add(Show)    关键就在于EventDelegate的构造函数里面都是传object 和methodname, 然后用这个object去调用methodname, 然后C# 中对象是不可以调用静态方法的,   但是静态方法也可以直接转成EventDelegate.CallBack   或者是UGUI 的UnityAction  所以可以添加静态方法

原创粉丝点击