Unity* 与针对英特尔架构的安卓构建

Abhishek Nandy
Geek Monkey Studios 首席执行官

在本文中,我将尝试讨论 Unity 并介绍针对英特尔架构的安卓构建的步骤。

请注意,要跟随这篇教程学习,学员需要熟悉并有中等程度的 C# 和 Unity 知识。

让我们开始吧!

为什么使用 Unity?

  • Unity 是一款容易学习和使用的游戏引擎,便于将您的构想变为行动。
  • Unity 支持 c#、Javascript 和 boo。
  • Unity 允许开发一次,部署至多个目标。

Unity 与英特尔

在 Unite 2014 上发生了一件大事:英特尔与 Unity 商定在 Unity 中支持 x86 构建。 从 4.6 版开始,Unity 内置支持 x86 平台。

获取资源

Unity - 下载链接:

https://unity3d.com/get-unity/download (选取最新构建版)

Unity 和英特尔资源 - 本教程提及的资源的链接:

https://software.intel.com/zh-cn/articles/unity

在英特尔开发人员专区中起步

英特尔开发人员专区有什么好处? 英特尔开发人员专区有多种好处,最重要的是那里有大量开源工具、帮助您起步的代码资源,以及单独的游戏开发轨道。

要在英特尔开发人员专区中起步,您需要做两件事:

  1. 为自己在英特尔开发人员专区中注册
  2. 进入 Game Dev(游戏开发)轨道(见下面的截屏) https://software.intel.com/zh-cn/gamedev

 

让我们在 Unity 中起步

重要资产:

逐步解说:

下图中,我们在场景中加入了圆球:

我使用了 Touch 脚本 (https://www.assetstore.unity3d.com/cn/#!/content/7394)。

接着,我们将特征性脚本添加至圆球。 下面是裂解立方块或圆球所需要的脚本:

using TouchScript.Gestures;

public class Breaker : MonoBehaviour
{
    public Transform CubePrefab;
    public float Power = 10.0f;

    private Vector3[] directions = {
                                       new Vector3(1, -1, 1),
                                       new Vector3(-1, -1, 1),
                                       new Vector3(-1, -1, -1),
                                       new Vector3(1, -1, -1),
                                       new Vector3(1, 1, 1),
                                       new Vector3(-1, 1, 1),
                                       new Vector3(-1, 1, -1),
                                       new Vector3(1, 1, -1)
                                   };

    private void Start()
    {
        GetComponent<tapgesture>().StateChanged += HandleStateChanged;
    }

    private void HandleStateChanged(object sender, TouchScript.Events.GestureStateChangeEventArgs e)
    {
        if (e.State == Gesture.GestureState.Recognized)
        {
            if (transform.localScale.x > 0.05f)
            {
                Color color = new Color(Random.value, Random.value, Random.value);
                for (int i = 0; i < 8; i++)
                {
                    var c = Instantiate(CubePrefab) as Transform;
                    c.parent = transform.parent;
                    c.name = "Cube";
                    c.localScale = 0.5f*transform.localScale;
                    c.position = transform.TransformPoint(c.localScale.x/10.0f*directions[i]);
                    c.rigidbody.velocity = Power*Random.insideUnitSphere;
                    c.renderer.material.color = color;
                }
            }
            Destroy(gameObject);
        }
    }
}

保存场景

构建项目

现在,我们来检查以英特尔 x86 为目标的构建。 如果我们以此选项作为目标,将针对所有安卓目标构建。

最后,让我们展示如何创建 APK:

结束语

遵照上文特定步骤执行,您应当已经设置好创建一个针对英特尔架构的 Unity 项目。

有关编译器优化的更完整信息,请参阅优化通知