语法结构using命名空间;
public class 类名 : MonoBehaviour(往物体上挂)
{
void方法名()
{
Debug.Log("调试显示信息");
print("本质就是Debug.Log方法");
}
}
文件名与类名必须致
写好的脚本必须附加到物体上才执行
附加到游戏物体的脚本类必须从MonoBehaviour类继承
public int b = 10;(可在编译器中看见,初始值为10)
//在编译器中显示当前字段
[SerializeField]
private bool c = true;
//在编译器中隐藏当前字段
[HideInInspector]
public float d = 1.0f;
操作范围
[Range(1,100)]
public int b = 10;
c# 类
{
字段
属性
构造函数
方法
}
脚本
{
private/public 字段
方法
}
//***************生命周期*********************
//Unity脚本 从唤醒 到 最后销毁的过程。
//必然事件:当满足某种条件自动执行的方法。
//重点:执行时机、作用、方法名称
//(前提:物体启用、脚本启用)Unity 引擎会在一开始先调用所有对象的Awake 再调用 所有对象的 Start
//游戏物体加载 ---> 立即执行(仅1次)
//作用:充当构造函数,初始化数据成员。
// 如果初始化有明确的先后顺序,需要先执行的放到Awake中,后执行的放到Start中
private void Awake()
{
Debug.Log(this.name + ":Awake:Lifecycle");
}
//游戏物体加载 ---> 等待脚本启用 --> 才执行(仅1次)
private void Start()
{
//Debug.Log(this.name + ":Start:" + Time.time);
}
//固定更新
//固定时间(默认0.02s) 执行 1次
//作用:对物体执行物理操作(移动、旋转、施加力……)
//
private void FixedUpdate()
{
//向前移动1m
}
//每渲染帧(大概0.02s) 执行1次
//作用:执行游戏逻辑
private void Update()
{
//向前移动1m
//查看某一帧程序执行情况
//启动调试 F5 --> 运行场景 --> 暂停 --> 在可能出错的行加断点 --> 单帧运行 --> 调试…… --> 停止调试 Shift + F5
int a = 1;
int b = 2;
int c = a + b;
}
//延迟更新:在Update之后执行
//作用:适合执行跟随Update移动的代码
private void LateUpdate()
{
}
"输入事件
OnMouseEnter鼠标移入:
鼠标移入到当前Collider时调用。OnMouseOver鼠标经过:
鼠标经过当前Collider时调用。
OnMouseExit鼠标离开:
鼠标离开当前Collider时调用。OnMouseDown鼠标按下:鼠标按下当前Collider时调用。OnMouseUp鼠标抬起:
鼠标在当前Collider上抬起时调用。
OnBecameVisible当可见:
当Mesh Renderer在任何相机上可见时调用。
OnBecameInvisible当不可见:
当Mesh Renderer在任何相机上都不可见时调用。
结束阶段
OnDisable当不可用:
对象变为不可用或附属游戏对象非激活状态时此函数被调用。
OnRestroy当销毁:
当脚本销毁或附属的游戏对象被销毁时被调用。
OnApplicationQuit当程序结束:
应用程序退出时被调用。