Unity Transform和Input

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频U3D教程、我们致力于打造业内unity3d培训学习第一品牌。

坐标系

 

      概念理解:世界坐标系,局部坐标系。

 

      世界坐标系与本地坐标系:所有物体的世界坐标系都是相同的、不会改变。每个物体都有一个本地坐标当物体旋转时,本地坐标系统也会跟着物体一起旋转。World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。

 

常用的必然事件

 

    在Unity的脚本中,可以定义一些特定的函数,这些函数会在满足某些条件时由Unity自动调用,它们被称为必然事件(Certain Events)。而Start和Update正是最常用的两个事件,因此Unity默认为新建的脚本添加了这两个事件。

 

常用的必然事件:

    (1)Awake():唤醒脚本,此方法为系统执行的第一个方法,用于脚本 的初始化,在脚本的生命周期中只执行一次。

    (2)Update():正常更新,用于更新逻辑。每创建一个脚本,脚本中都会默认添加这个方法。此方法每帧都会由系统自动调用一次。

    (3)Start():此方法在Awake()方法之后,Update()方法之前执行,并且只执行一次

    (4)LateUpdate():此方法在Update()方法执行后调用,同样每一帧都调用。

    (5)FixedUpdate():固定更新,更新频率为0.02s

    (6)OnGUI():OnGUI()在每一帧都会由系统自动调用一次,渲染和处理GUI事件时调用。

 

输出的四种方式:

       print("hello");//正常的输出格式
       Debuge.Log("hello");//正常的输出格式
       Debuge.LogWarning("hello");//警告输出
       Debuge.LogError("hello");//有错误的输出


MonoBehanviour类

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

 

例:

 

监视变量:

      public int id;//在监视面板里面可以看到
      private string name;//在监视面板里面看不到
      protected string sex;//在监视面板里面看不到
      int age;//在监视面板里面看不到

   注:一般只用public和private


Transform:

       GameObject的Transform属性可以进行位置,大小,旋转的设置

          位置:position

          旋转:rotate

          位置:localScale

 

Vector3向量:

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

 

    Vector类内置成员:up,down,left,right,forward,back,zero

    写法:transform.Translate (Vector3.forward);
         transform.Translate (new Vector3(10,0,0));

 

Input按键系统

 

1、键盘判断

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

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

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

   (4)GetAxis(“Horizontal")和GetAxis(“Verical”):用方向键或WASD键来模拟-1到1的平滑输入

2、键盘判断

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

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


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

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


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

     print(“按下Esc键”);}

 

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

    print(“松开Esc键”);}


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

     print(“按下A键”);}


    (6):If(Input.GetKeyUp(KeyCode.D)){

     print(“松开D键”);}


    (7):If(Input.GetAxis(“Horizontal")){

     print(“按下水平键”);}


    (8):If(Input.GetKeyUp("Verical“)){

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

 

3、鼠标判断

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

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

    (3)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("按下鼠标中键");
        }

 

给物体施加普通力

       先给物体添加刚体

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

 更多精彩情关注:http://www.gopedu.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值