初学unity2D的感受


Unity2D

关于安装

安装unity推荐使用unity hub,它可以在安装时选用任意组件搭配,比如是否安装Visual Studio 2019,各平台打包工具,中文语言包等等。

如果你直接安装了unity,也可以添加到unity hub里管理。

如果你之前安装的unity没有安卓打包组件,而你现在想再添加的话,可以去unity官网下载对应版本组件,再用android studio下载jdk,sdk,ndk并配置到unity。

初识unity(2019.4.10f1c1)

  • 游戏对象

    • 名字:区分游戏对象的标识符

      1
      GameObject.Find(string name) #根据名字返回游戏对象
    • 标签:区分一类游戏对象

      1
      2
      3
      GameObject.FindGameObjectWithTag(string tag) #根据标签返回游戏对象

      GameObject.FindGameObjectsWithTag(string tag) #根据标签返回游戏对象数组
    • 图层:将一组行为类似的游戏对象放在一起,按照某种方式处理

      图层常见用法

      1. 图层第一种常见的用法是在Scene视图中隐藏它们。
      2. 图层的第二个作用是排除不被灯光照亮的对象。
      3. 图层的第三个作用是告诉Unity哪些对象之间可以进行物理交互。
      4. 图层的最后一个功能是可以使用它们定义摄像机可以看到什么以及不能看到什么。
    • 常用组件

      • Transform

        X Y Z
        位置
        旋转
        缩放

        此组件可以实现游戏对象的位置、旋转、缩放调整

        1. 位置在每帧调整可以实现人物的移动,此移动一般适用于游戏对象无刚体组件。

        2. 旋转可以调整游戏对象的朝向,并且游戏对象上的碰撞器也会跟随人物旋转。

        3. 缩放可以调整游戏对象的大小,可以由某些条件触发,一般缩放要等比例,否则游戏对象上的碰撞器会变形,缩放的应用可以参考超级玛丽里面的吃蘑菇。

      • 碰撞器

        • 碰撞器有方形,圆形,胶囊等多种形状。选择碰撞器一般看具体游戏对象的形状,如果游戏对象选择了圆形或胶囊碰撞器,而且游戏对象移动的代码逻辑是对其挂载的刚体施加力,那么为了防止游戏对象滚动,我们可以在其刚体组件上设置冻结Z轴旋转。

        • 碰撞器可以设置物理材质,从而设定碰撞器的弹力和摩擦力。基于Transform的移动不会触发摩擦力。

        • 碰撞器大小会随游戏对象大小等比例变化。

        • 碰撞器属性“是触发器”打开后碰撞器就变为触发器。如果既要检测到物体的接触又不想让碰撞检测影响物体移动,或者要检测一个物体是否经过空间中的某个区域,这时就可以用到触发器。

        • 碰撞信息检测:

          1
          2
          3
          4
          5
          MonoBehaviour.OnCollisionEnter(Collision collision) #进入碰撞器执行函数

          MonoBehaviour.OnCollisionExit(Collision collision) #退出碰撞器执行函数

          MonoBehaviour.OnCollisionStay(Collision collision) #停留碰撞器执行函数
        • 触发信息检测:

          1
          2
          3
          4
          5
          MonoBehaviour.OnTriggerEnter(Collider collider) #进入触发器执行函数

          MonoBehaviour.OnTriggerExit(Collider collider) #退出触发器执行函数

          MonoBehaviour.OnTriggerStay(Collider collider) #停留触发器执行函数
  • 动画器与动画

    • 创建动画

      将多个贴图选中移动到场景中可创建动画文件,或者选中游戏对象,在动画窗口中点击创建动画。一个游戏对象可以有多个动画。

    • 动画

      • 关键帧

        添加游戏对象不同贴图、位置、大小,或者改变组件属性和状态都可添加关键帧。比如人物静止和移动时的动画就是多张贴图循环播放制作的。

      • 事件帧

        添加事件帧可以某一时刻调用当前游戏对象所挂脚本的函数。一般用于实现特定功能的动画中。

    • 动画器

      • 动画器用于不同动画之间的转换,一般是设置布尔变量来改变游戏对象所处状态。
  • 脚本

    • 类名

      一个脚本可以绑定多个游戏对象,脚本名必须和脚本中的类名一致,并且是唯一的。

    • Start

      Start函数是游戏初始化时的函数,只执行一次,一般用于给变量赋予一个初始值

    • Update

      游戏运行时每刷新一帧之前调用一次Update函数,一般人物的移动是在此函数中实现,所以有时游戏卡住不能移动的原因是帧率太低。

    • FixedUpdate

      FixedUpdate是每隔一定周期调用一次,调用的是真实的时间间隔,和游戏帧率没有关系,多用于物理引擎的计算。

感受

Unity引擎使得游戏制作变得简单了许多,里面的动画机、物理引擎等等功能使游戏开发的难度大大减少,但想要做出好游戏不仅要靠过硬的技术,还要有绝妙的创意和精彩的游戏内容。


← Prev 我的世界mod开发的一些心得 | 影视推荐 Next →