想到什么写什么,可能有那么一点乱,等我有空了整理下_(:з」∠)_
Mathf.Clamp( A , Min, Max );
Input.GetMouseButton(序号);
Input.GetAxis(“…”);
绕着某一点旋转
关于向量的几个用法
欧拉角和四元数
如何修改鼠标指针
世界坐标转化为屏幕坐标
Camera.main.WorldToScreenPoint(transform.position) - new Vector3(Screen.width / 2, Screen.height / 2, 0);
Unity默认根路径是工程文件的目录:
NGUI的Tween
实例模式为Instance赋值时最好在Awake()里进行.
NGUI中如果实现某一Sprite跟着鼠标拖拽
可以添加一个继承自UIDragDropItem的脚本,不过注意调用基类的Start()和Update()方法.
使用Resources.Load()加载资源
首先需要下Asset目录下创建一个名为Resources的文件夹,这个命名是U3D规定的方式,然后把资源文件放进去,
也可以在Resources中再创建子文件夹,当然在代码加载时需要添加相应的资源路径。
关于 Serializable
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
什么情况下需要序列化
a)当你想把的内存中的对象写入到硬盘的时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
再稍微解释一下:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。
将String转化为Enum
Enum.Parse()方法,将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。
System.Enum.Parse(Type, String);
System.Enum.Parse(Type, String, Boolean); 最后一个参数指定该操作是否不区分大小写。
eg:
WeaponType type = (WeaponType)System.Enum.Parse(typeof(WeaponType), “Sword”);
position和localposition
1. position是根据世界原点为中心
2. localPosition是根据父节点为中心,如果没有父节点,localpositon和position是没有区别的
3.选中一个物体左上角Global和Local切换看物体世界坐标轴和本地坐标轴
transform.Translate()中的本地与世界坐标系
transform.Translate(Vector3.forward);
transform.Translate(transform.forward, Space.World);
两个语句效果相同。
transform.Rotate()同理。
1 comment
厉害厉害