Unity Transform(变换)和Input

来源:互联网 发布:宁波java软件公司排名 编辑:程序博客网 时间:2024/06/06 01:51

欢迎来到unity学习、unity培训

这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌


代码先知


1、必然事件:


定义:


    在Unity的脚本中,可以定义一些特定的函数,这些函数会在满足某些条件时由Unity自动调用,它们被称为必然事件(Certain Events)。


常用的:


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

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

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

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

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

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


2、监视变量:


    public int id;//在监视面板里面可以看到

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

    protected string sex;//在监视面板里面看不到

    int age;//在监视面板里面看不到


    注:一般只用public和private


Transform变化:


    1、定义:

    变换组件决定了场景中所有物体的方位,旋转和缩放。每个物体都有一个变换组件。



2、Properties属性


    Position 位置

以X、Y、Z坐标系表示变换的位置。


    Rotation 旋转

表示此变换以X,Y,Z轴为准的旋转程度,以角度为单位。


    Scale 缩放

沿着X,Y,Z轴缩放此变换。值为"1"时表示原始尺寸(物体最初被导入时的大小) 


    注意:变换组件的所有属性都是相对其父物体进行衡量的,如果此物体没有父物体,这些属性则相对于世界坐标进行计算。


3、Vector3向量


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


    Vector类中内置了:


    up(Vector3(0, 1, 0)的简码,也就是向y轴。)、down(Vector3(0, -1, 0)的简码,也就是向y轴。)、

    left(Vector3(-1, 0, 0)的简码,也就是向x轴。)、right(Vector3(1, 0, 0)的简码,也就是向x轴。)、

    forward(Vector3(0, 0, 1)的简码,也就是向z轴。 )、back(Vector3(0, 0, -1)的简码,也就是向z轴。 )、

    zero(Vector3(0, 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("按下鼠标左键");}


    注:当Input.GetMouseButton(0)小括号里参数为1时是鼠标右键,为2时是鼠标中键


4、给物体施加普通力


    先给物体添加刚体

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


例子:


using UnityEngine;

using System.Collections;

 

public class third : MonoBehaviour {

     private GameObject sun;

     private GameObject earth;

     // Use this for initialization

     void Start () {

          earth = GameObject.Find ("earth");

          sun = GameObject.Find ("sun");}

     // Update is called once per frame

     void Update () {

          earth.transform.RotateAround(sun.transform.position,Vector3.up,0.5f);}

}

0 0
原创粉丝点击