Unity

来源:互联网 发布:空巢老人最新数据 编辑:程序博客网 时间:2024/05/02 02:30
欢迎来到U3D社区:

坐标系:

       世界坐标系(word)与本地坐标系(local):   所有无敌的世界坐标系都是相同的,不会改变:每个物体都有一个本地坐标系,当物体旋转时,本地坐标系统也会跟着物体一起旋转。

        例如:吧Cubede Rotation改为(45.0.0),这样世界坐标和本地坐标就不一样了。


 常用的必然事件: 

      有一些特定的函数,这些函数会在满足某些条件时有Unity自动调用,他们被称为必然事件(Certain Events)
  • Awake():唤醒脚本,此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次。
  • Update():正常更新,用于更新逻辑。每创建一个脚本,脚本中都会默认添加这个方法。此方法每帧都会由系统自动调用一次。
  • Start():此方法在Awake()方法之后,Update()方法之前执行,并且只执行一次。
  • LateUpdate():此方法在Update()方法执行后调用,同样每一帧都调用。
  • FixedUpdate():固定更新,更新频率为0.02s
  • OnGUI()      OnGUI()在每一帧都会由系统自动调用一次,渲染和处理GUI事件时调用。

输出:

      void    star(){
                print ("hello");
                Debug.Log("hello");
                Denbug.LogWarning("hello");
                Debug.logError("hello");
}

MonoBehanviour类:
      所有的脚本类均需要从它之间或者间地继承,脚本必然事件就是从它继承而来。除了必然事件它还定义了各种特定事件的响应函数。如下图:


监视变量:


       public int id;//在监视面板中看得到。

         private  string name; //在监视面板中看不到。

         protected  string  password;//在 监视面板中看不到。

         int gae;//在监视面板中看不到。


Transform:


 游戏对象的Transform:


      gameObject 的 ransform属性可以进行位置.旋转。大小的设置:

      位置: position

      旋转:  rotate

      大小: localScale

       如果要操作脚本当前使用的ganmeObject,则可以省略不写要操作的gameObject。


Vector3向量介绍  :

    

      Vector3是Unity中定义的一个含有x,y,z三个字段的类,可以表示位置点,也可以表示一个向量。Vector3乘以数值表示对向量的三个值乘以相应的值,v1-v2则表示从v2指向v1的向量。

      transform.Transform(Vector3)让对象沿着vector3向量的方向移动。

      Vector3类中内置了 up. down.left.right.forward.back.zero几个简化的静态成员。


transform.Translate (Vector3.forward);


transform.Translate (new Vector3(10,0,0));


transform.Rotate (new Vector3(0,10,0));


transform.localScale += new Vector3 (0.1F, 0, 0);


RotateAround(v1.v2.angle).元素围绕着世界坐标的V1点采用V2向量选装angle角度。

      transform.RotateAround(transform.position,Vector3.up,1)


键盘判断:


GetKey             当通过名称指定的按键被用户按住时返回true


GetKeyDown   当用户按下指定名称的按键时的那一帧返回true。


GetKeyUp        在用户释放给定名字的按键的那一帧返回true。


GetAxis(“Horizontal")和GetAxis(“Verical”)   


用方向键或WASD键来模拟-1到1的平滑输入 


if (Input.GetKey(“up”)) {


      print("up arrow key is held down"); 


if (Input.GetKey(“down”)) {


     print("down arrow key is held down");


If(Input.GetKeyDown(KeyCode.Escape)){


     print(“按下Esc键”);

}

If(Input.GetKeyUp(KeyCode.Escape)){


    print(“松开Esc键”);

}


If(Input.GetKeyDown(KeyCode.A)){

     print(“按下A键”);
}
If(Input.GetKeyUp(KeyCode.D)){

    print(“松开D键”);
}
If(Input.GetAxis(“Horizontal")){

    print(“按下水平键”);

}
If(Input.GetKeyUp("Verical“)){

    print(“按下垂直键”);
}


鼠标判断:

      GetButton           根据按钮名称返回true当对应的虚拟按钮被按住时。 

         GetButtonDown   在给定名称的虚拟按钮被按下的那一帧返回true。

         GetButtonUp        在用户释放指定名称的虚拟按钮时返回true。

按下鼠标左键
if(Input.GetButton("Fire1")){
        print(“按下鼠标左键”);
}
if (Input.GetMouseButton(0)) {
     Debug.Log("按下鼠标左键");
}
 if (Input.GetMouseButton(1)) {
     Debug.Log("按下鼠标右键"); 
}
if (Input.GetMouseButton(2)) {
     Debug.Log("按下鼠标中键");
}


给物体加入刚体:

ransform.rigidbody.AddForce (0,0,1000);

  更多精彩在http://unity.gopedu.com/forum.php

0 0