Unity引擎与插件

记录下实习过程中自学Unity引擎以及第三方插件相关的内容。

Unity引擎

准备素材

准备素材,配置预设,加载动画

  • [动画控制] 动画 帧 Animation AnimationController
  • [单位标志] Tag Layer Unity: Tags
  • [显示层级] sorting layer
  • [自带组件] Box Collider / Rigidbody (Kinematic)
  • [保存预设] Save as prefab
  • [动画继承状态机] Animator Override Controller (share same state machine)
  • [配置组件] Collider + Is Trigger(检测碰撞以触发,但不阻止物体进入)

关卡生成

  • [容器] Transform
  • [脚本] 将Script、Prefabs和GameObject关联
  • [基类] MonoBehaviour is the base class from which every Unity script derives.
  • [入口] 将Script和MainCamera关联

单位逻辑

进阶相关

  • [镜头控制] 跟随玩家视角 Window->Package Manager->Install "Cinemachine" | Cinemachine->Create 2D Camera->Follow Player Transform
  • [播放音频] AudioSource为声音载体,对声音的播放进行配置, AudioClip为具体声音资源, 场景中需要至少一个Audio Listener来听到声音,可以添加到Camera或游戏对象上。
  • [条件编译] 可在代码中通过判断指定宏是否定义来执行条件编译,如Unity编辑器中会定义UNITY_EDITOR,Android设备上会定义UNITY_ANDROID
  • [加载场景] 可通过SceneManager.LoadScene来加载指定场景,配合自定义的参数可以实现关卡变更时的场景变化。

常用组件

  • Sprite Render 2D图像渲染
  • Box Collider2D 2D碰撞盒
  • Rigidbody 2D 刚体 (物品引擎)
  • Animator 动画控制器
  • Script 脚本
  • Transform 表示一个对象的位置,旋转角度和缩放

插件接入

有时需要接入第三方SDK,如果第三方没有提供Unity包的话,就只能自己打包成插件了。

  • AndroidJavaObject Unity工程中使用AndroidJavaClass/AndroidJavaObject等类来调用Java插件工程中的接口。
  • Building and using plug-ins for Android 安卓工程打包为库供Unity工程调用
  • Plugin/Android 这个根目录下的AndroidManifest.xml会覆盖Unity项目自动生成的AndoridManifest.xml,而根目录下插件包内的AndroidManifest则会被合并到最终的AndroidManifest中。
  • Android studio 中将已有模块转为Android library,改build.gradle中plugin为”com.android.library”