-
unity3D要求类名和文件名一定要相同,大小写也必须相同
-
C#脚本程序变量默认为
private
,若外部需要修改,就要改成public
公用。公用变量不仅可以在其他类中修改,也可以在编辑器的界面上修改。运行中也可以修改,但是运行结束后会恢复初始值。 -
关于锚点的讲解请看这篇博客:RectTransform详解。
-
如果要显示多行文字,必须先利用记事本之类的文字处理软件输入好复制,到此处粘贴。
-
如果想在界面设置字体、图片,需要:GameObject -> UI -> Text / Image,这些东西会在一个画布里面,这个画布里面的元素的Z坐标表示显示的图层先后关系,其中Assets里面的图片直接拖不进Image里面,需要先点击图片,把它属性设置为子画面
sprite
。
-
Time.deltaTime
即上一次运行Update()
与这一次之间相差多少时间,是一个浮点数,单位是秒,将它一次次累加起来就是当前得游戏总时间。
官方示例代码:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Update() {
float translation = Time.deltaTime * 10;
transform.Translate(0, 0, translation);
}
}
- 绑定对象的脚本中,通过
gameObject
即可直接取得本身所在的对象,需要注意的是:GameObject
是一个类,gameObject
是脚本绑定的对象。 - 控制物体的显示或者消失通过
SetActive
函数,使用格式如下。把代码附到要控制的物体上之后,gameObject自动代指代码绑定的物体的名称,给该物体设置该函数值即可控制出现消失。
gameObject.SetActive(bool)
- Unity里面的打印输出命令如下:
Debug.Log("Hello World!");
- 如果想在某指令被触发后一段时间后在执行接下来的命令,需要使用一种叫:协同程序的东西。比如我们想在鼠标点击后,物体变成红色,0.5s后变成绿色。可以这么写:
void OnMouseDown()
{
//如果鼠标点击,则触发协同程序的函数ChangeColorCoroutine
StartCoroutine(ChangeColorCoroutine());
}
IEnumerator ChangeColorCoroutine()
{
GetComponent<Renderer>().material.color = Color.red;
//重要的暂停0.5s命令行
yield return new WaitForSeconds(0.5f);
GetComponent<Renderer>().material.color = Color.green;
}
-
预制件prefab
当存在需要复制粘贴相同的对象时,可以制作一个类似编程概念里的类的东西,叫预制件prefab。这相当于基类,对这个可以复制粘贴很多份,如果需要统一更改比如颜色什么,就直接改预制件就ok了。
制作流程:先建好对象,把对象从Hierachy
窗口拖到Assets
的窗口里,就直接变成预制件了。预制件的模型在列表里也会变色,有个下级菜单,点进去可以对预制件进行单独编辑。
-
Image
控件用于显示Sprite类型的图片,RawImage
控件用于显示Texture类型图片
2. 组件
2.1 声音
- AudioClip是一个声音片段,如:按钮点击,相当于是一首音乐;
AudioSource是一个源,包含AudioClip,还有其它一些属性,如:是否静音等,相当于是一个音乐播放器。
2.2 Transform
2.2.1 获取子物体
foreach(Transform child in this.transform){print child.name},this指父物体的话,foreach可以直接找到子物体;
2.2.2 position和localposition,同理rotate和scale
transform.position:物体相对世界坐标系原点的位置
transform.localposition:物体相对于父物体轴心点的位置
2.2.3 旋转的局部/全局坐标系切换
对物体进行旋转操作时候,可以通过如下加不加Space.World
参数,选择是不是全局坐标系。不加,默认是局部坐标系。
cube.GetComponent<Transform>().Rotate(new Vector3(rotate_x ,rotate_y ,0f), Space.World);
学习Unity(3)走进Transform–物体的运动
这篇文章有详细记录。
2.2.4 RotateAround
该函数可以自己定义旋转的点、轴线、角度,比如设置围着太阳转。
2.3 Camera
- camera里面得size大小的计算:
①.Unity中Create出的Plane默认为10米。
②.Unity中Create出的Cube默认长宽高均为1米。
③.正交相机的Size为1控制的是高 为2米
3.脚本
3.1 脚本生命周期
4.调试
这个函数可以在游戏界面创造一个按钮,点击实现一些代码的调试。
private void OnGUI()
{
if (GUILayout.Button("给按钮起个名字"))
{
//what you want to do
}
}