首页 > 代码库 > unity脚本的基础语法

unity脚本的基础语法

基本的回调方法

  • Strat()方法:在游戏场景加载时被调用,在该方法内可以写一些游戏场景初始化之类的代码。
  • update():在每一帧渲染之前被调用,大部分游戏代码在这里执行,除了物理部分的代码。
  • Fixedupdate():这个方法会在固定的物理时间调用一次。也是基本物理行为代码执行的地方。

使用Awake或start方法初始化

     Awake方法是在加载场景时运行;start方法是在第一次调用Update或FixedUpdate方法之前被调用;Awake方法运行在所有Start方法之前。

协同程序(Coroutines)

     返回值类型为IEnumerator类型 

IEnumerator SomeCoroutine(){
   yield return 0;//等待1帧
   yield return new WaitForSeconds(2);//等待2s
}

脚本常用操作

void Update(){
    this.transform.Rotate(20,0,0,Space.World);//相对于世界坐标绕X轴旋转20
    this.transform.Translate(0,0,1);//实现物体每帧向前移动1个单位
    this.transform.Translate(0,0,1,Space.Self);//相对于自身轴
    this.transform.Rotate(20*Time.deltaTime,0,0,);//绕X轴匀速旋转

    Vector3 a=gameObject.transform.positon;//获取对象位置坐标
    a.y +=5*Time.deltaTime;//沿Y轴每秒上升5个单位
    gameObject.transform.positon=a;//设置新的位置坐标

Unity中的坐标

X轴为红色的轴表示左右,y轴为绿色表示上下。Z轴为蓝色表示前后

访问游戏对象组件

GetComponent<>();//获得组件

transform.Find("");//获得子对象

transform.parent.Translate(0,0,1);//找到父对象并将其移动


foreach (Transform child in transform){//循环获取所有的子对象

child.Translate(0,5,0);

}

通过名字或标签获取对象

GameObject name =GameObject.Find("somename");//获取名称为somename的游戏对象

GameObject tag =GameObject.FindWithTag("sometag");//获取标签名为sometag的游戏对象

通过传递参数获取对象

void OnTriggerStay(Collider other){

   if(other.GetComponent<Rigidbody>()){

   other.GetComponent<Rigidbody>().AddForce(0,0,2);}}

通过组件名称获取对象

void Start(){

  Test test=FindObjectOfType<Test>();//获取第一个找到的test组件

  Debug.Log(test.gameObject.name);//打印挂有test组件的对象的名称

  Test[] tests=FindObjectsOfType<Test>();//获取所有找到的test组件

   foreach(Test a in tests){

      Debug.Log(a.gameObject.name);//打印挂有test组件的所有对象的名称

}}

实例化游戏对象Instantiate(gameObject,transform.position);

 

unity脚本的基础语法