Unity基本操作

主要内容:

  • C#学习
  • Unity项目
    • 打砖块:BreakBricks
  • Unity操作

Unity操作

  • 调试
  • 碰撞体
  • 触发器
  • 视角
    • 键盘视角平移
  • 光照贴图
  • 游戏对象Gameobject
    • 访问对象
    • 实体化对象 Instantiate
    • 得到组件
    • 对象的移动
  • 交互类
    • 鼠标输入
    • 键盘输入

调试

在某函数内进行Debug.Log(...)可实现调试检测,例如:

public class Player : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Debug.Log("Hello");
    }
    
    // Update is called once per frame
    void Update () {
        Debug.Log(" World");
    }
}
//在控制台查看调试信息

碰撞体

前提:碰撞两者都有碰撞器 Collider ,至少一物体有刚体 Rigidbody(详细前提见 Unity-Manual-Colliders )

// 碰撞触发检测
 private void OnCollisionEnter(Collision collision)
    {
        print(collision.collider);      //获取碰撞体+碰撞器类型
        print(collision.collider.name);     //碰撞体名称
        print(collision.collider.tag);      //碰撞体标签
    }

// 碰撞结束检测
private void OnCollisionExit(Collision collision)
        print("OnCollisionExit");

// 碰撞持续检测
private void OnCollisionStay(Collision collision)
        print("OnCollisionSaty");

触发器

存在于碰撞体collider页面栏,勾选is Trigger 则表示物体为触发器(可以穿过),否则物体为碰撞体。

视角

游戏视角的移动

键盘视角平移

Main Camera创建脚本,在Update内调用:transform.Translate()实现视角移动

光照贴图

灯光是实时计算的(默认设置:Light|Mode|Realtime),对不变动的灯光进行贴图可以节省资源,在Windows|Rendering|Lighting Setting 打开了Lighting Setting 页面点击 Generate Lighting 实现灯光贴图。

游戏对象

关于Gameobject的一些列操作

访问对象

在脚本内创建一个字段,例如子弹bulletpublic Gameobject bullet;,在Unity页面通过将Prefab赋到脚本内bullet一栏,从而实现在脚本内通过bullet字段访问到Prefab

实体化游戏对象

实例化用到了GameObject.Instantiate(m_object, m_transform.position,m_transform.rotation)

  • GameObject.Instantiate():创建实体化函数
  • m.object:所创建的预制体
  • m_transform.position,m_transform.rotation:预制体位置及旋转角度,默认下为transform.position,transrotation说明地址为脚本所在对象的位置;也可自行修改

用法:

//创建对象 b 接收实体化的预制体 bullet
GameObject b = GameObject.Instantiate(bullet, transform.position, transform.rotation);

得到组件

//rgd 得到对象 b 的刚体组件
Rigidbody rgd = b.GetComponent();

对象的移动

交互类

鼠标输入

Input.GetMouseButtonDown():读取鼠标按下情况,括号内容即为鼠标不同状态:

  • 0:左键
  • 1:右键

键盘输入

Input.GetAxis(""):返回键盘输入的浮点数值

  • Horizontal:读取键盘AD左右移动的值(反映在Unity中的X方向)
  • Vertical:读取键盘WS上下移动的值反映在Unity中的Y方向)

用法:float h = Input.GetAxis("Horizontal");

你可能感兴趣的:(Unity基本操作)