Unity脚本--01-脚本书写规则-脚本生命周期-脚本调试-常用API

一、脚本书写规则

脚本:.cs的文本文件  类文件

作用:附加到游戏物体中,定义游戏对象行为指令的代码

与C#类的区别:

脚本只有字段和方法,没有自动属性和构造函数

public int A { get { return a; } set {  a = value; } }

属性定义了在unity中不会显示

    public Lifecycle()
    {
        Debug.Log("构造函数")
        //b=Time.time;
    }

不要在脚本中写构造函数,因为不能在子线程中访问主线程成员

public 定义字段 编译器中会看到,private不会看到,如果想进行其他操作如下:

//序列化字段  作用:在编译器中显示私有变量

[SerializeField]
private int a;

//作用:在编译器中隐藏字段

[HideInInspector]
public float b;

//作用:限制范围

[Range(0,100)]
public int c;

二、脚本生命周期(必然事件)

Unity脚本从唤醒到被销毁的过程

消息:当满足某种条件Unity引擎自动调用的函数

Unity中生命周期是单线程,先做一个再做一个

1.初始阶段

//执行时机:创建游戏对象(物体被载入时)  立即执行1次(早于Start)
//作用:初始化 (构造函数的功能来赋值)this.enable=true,可以来判断是否创建对象

private void Awake()
{
    Debug.Log("Awake--" + Time.time+"--"+this.name);  
}

//执行时机:创建游戏对象(物体被载入时) --》脚本启用--》才执行(1次)
//作用:初始化

private void Start()
{
    Debug.Log("Start--" + Time.time+"--"+this.name);
}

//执行时机:每当脚本对象启用时调用

private void OnEnable()
{
  
}

在初始阶段肯定是先Awake再Start,多个物体也是多个物体Awake执行完毕后再执行Start

2.物理阶段

//执行时机:脚本启用后,固定时间被执行。0.02s
//适用性:适用于对游戏对象做物理操作(移动,旋转),不会受到渲染影响
//渲染时间不固定是因为每帧渲染量不同,机器性能不同

private void FixedUpdate()
{
    
}

3.输入事件

//执行时机:OnMouseEnter 鼠标移入  OnMouseOver 鼠标经过  OnMouseExit  鼠标离开: OnMouseDown鼠标按下   OnMouseUp 鼠标抬起

private void OnMouseDown()
{
    Debug.Log("OnMouseDown" );
}

4.游戏逻辑

//执行时机:渲染帧执行,执行间隔不固定
//适用性:处理游戏逻辑

private void Update()
{
    
}

//在Update函数被调用后执行(但在同一帧)
//适用于跟随逻辑(相机)

private void LateUpdate()
{
    
}

你可能感兴趣的:(开发语言)