using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lifecycle : MonoBehaviour
{
//脚本:.cs 类文件
//附加到游戏体中,定义游戏对象行为指令的代码
//C#类
//字段
//属性
//构造函数
//方法
//脚本:
//字段
//方法
[SerializeField ]//在编译器中显示私有变量
private int a = 100;
[HideInInspector ]//在编译器中隐藏公共变量
public int b;
[Range (0,100)]
public float c;
//属性:在编译器中不能显示,通常脚本中不写。
/*public int A
{
get{ return this.a; }
set{ this.a = value; }
}
*/
/*
public Lifecycle ()//不要在脚本中写构造函数
{
//不能在子线程中访问主线程成员。
b = (int)Time.time;
}
*/
//*******************初始阶段**********************
//执行时机:创建游对象,立即执行1次 (早于Start)
//作用:初始化---相当于构造函数
private void Awake()
{
Debug.Log("Awake" + Time.time+"-"+this .name );
}
//执行时机:创建游对象,脚本启用 才执行(1次)
//作用:初始化---相当于构造函数
private void Start()
{
b = Random.Range(1, 100);
Debug.Log("Start" + Time.time+"-"+this .name );//调试
print("ok");//调试(父类的方法-仅在脚本中可以直接使用)
}
//********************物理阶段*********************
//执行时机:每隔固定时间执行一次。(时间可以修改 默认值 0.02 s)
//适用性:适合对物体做物理操作(移动,旋转。。。。),不会受到渲染影响
private void FixedUpdate()
{//渲染时间不固定(每帧渲染量不同,机器性能不同)
Debug.Log(Time.time);
}
public float time;//调试
//********************游戏逻辑*********************
//执行时机:渲染帧执行,执行间隔不固定
//适用性:处理游戏逻辑
private void Update()
{
//单帧调试:启动调试 运行场景 暂停游戏 加断点 单帧执行 结束调试
//调试过程中,输入代码
//右键 快速监视
//查看 即时窗口
time = Time.time;
}
//********************结束阶段*********************
}