1、unity 3d中Translate的单位是:米制
2、Unity中Time类中Undate()方法是每帧调用一次,而FixUpdate()方法是每秒调用一次。
3、声明变量时定义了变量的类型,在后面就不能修改变量的类型了
var a = 1;//此处a为int类型 a = "Hello World";
上面再unity中会出错,以下则可以通过:
var a; a = 1; a = "Hello World";
4、所有的脚本都是组件(Component),组件属于游戏对象(GameObject),因此脚本都可以附加到游戏对象上。
常见的组件名称有:
Transfrom
Rigidbody
Renderer //把Render(渲染器)组件加到游戏对象上可以是游戏对象在场景中显示
Camera //吧Camera组件加到游戏对象上可以使该物体变为摄像机对象
Light
Animation
Colider
在unity中实际上他们都是一个类,默认都有一个对应字母小写的对象,如Transfrom对应的对象(变量名称)为transform,依次类推,Camera和Light比较特
殊,类名和变量名一致。
附加到游戏对象的组件可以通过GetComponet获得,例如:
var gameobject:Rigidbody; function Update() { gameobject.GetComponent(Transform).Translate(1,0,0); //沿X轴每帧移动一个单位 //此处GetComponent(Transform)实际上是获取gameobject这个对象的Transform组件,这个函数返回transform对象(默认有的) //因而这句话等价于:gameobject.transform.Translate(1,0,0); }
5、一个脚本实际上就是一个类!因而也是一个组件
注意以下内容:
var otherScript : HelloWorld; //注:Helloworld是一个已经写好的类(脚本),注意此处只是定义一个类型,可以优化速度,避免unity在下面的函数中进行类型判断 function Update() { otherScript = GetComponent(HelloWorld); // otherScript指向了HelloWorld组件的一个匿名对象(很重要),函数中传的是类型,将会实例化一个对象
// 也即将HelloWorld这个脚本加到otherScript这个对象身上
otherScript.sayHello(); }