京城游戏人-Day1:一个基于 Unity 的 iOS 互动 Demo
-
从今天起(2016.6.25)开始我的 Unity 游戏开发之路。由于此前使用过老外开发的 iOS 游戏引擎 Cocos2d-iphone、中国人开发的跨平台开源游戏引擎 Cocos2d-x,初步规划,先从 Unity 入手,上线几个。
本例主要参考一本大陆人写的 Unity3D 的书,书不在手边,忘记名字了,就记得是京东上搜索「Unity3D 5」的第一个结果。
- 本文作者:大锐哥
- 博客地址:http://blog.csdn.net/prevention
- 凡是带有此句话的文章,如果不是在 CSDN 的 prevention 博客上看到的,则都是未经本人允许的转载,您可以举报或在本文下留言告知。
1. 流程
- 创建 Unity3D 项目
- 创建一个立方体,Cube(GameObject - 3D Object - Cube)
- 创建一个平行光,Directional Light(GameObject - Light - Directional Light)
- 设置这些东西的属性
- 导出 iOS 工程,并在 Xcode 中编译运行
2. 立方体、平行光的属性
创建一个 Cube 后,Position、Rotation、Scale 不太重要(但是如果太离谱,可能会在摄像机里看不到),我把 Cube 和摄像机的位置设置如下:
立方体
- Position:1.5,0.9,8
- Rotation:13,12,16
- Scale:5,5,5
摄像机
- Position:-1.25,-0.05,0
- Rotation:50,330,0
- Scale:1,1,1
更重要的,是要给 Cube 加纹理
3. 给 Cube 加 Material
在 Project 视图中右击空白处 Create - Material,Shader 可以选「Nature/SpeedTree」。然后把这个 Material 拖动到 Cube 身上(在 Hierarchy 中)。
4. 编写脚本
先编写脚本,然后把它拖动到 Main Camera 身上(Hierarchy)。
using UnityEngine;
using System.Collections;
public class TouchTest : MonoBehaviour
{
public GameObject ball;
private float lastDis = 0;
private float cameraDis = -20;
private float ScaleDump = 0.1f;
void Update()
{
if (Input.touchCount == 1)
{
Touch t = Input.GetTouch (0);
// 手指在移动
if (t.phase == TouchPhase.Moved)
{
ball.transform.Rotate (Vector3.right, Input.GetAxis("Mouse Y"), Space.World);
ball.transform.Rotate (Vector3.up, -1 * Input.GetAxis("Mouse X"), Space.World);
}
}
else if (Input.touchCount > 1)
{
Touch t1 = Input.GetTouch (0);
Touch t2 = Input.GetTouch (1);
// 触摸开始
if (t2.phase == TouchPhase.Began)
{
lastDis = Vector2.Distance (t1.position, t2.position);
}
// 两只手指都在移动
else if (t1.phase == TouchPhase.Moved && t2.phase == TouchPhase.Moved)
{
float dis = Vector2.Distance (t1.position, t2.position);
if (Mathf.Abs (dis - lastDis) > 1)
{
cameraDis += (dis - lastDis) * ScaleDump;
cameraDis = Mathf.Clamp (cameraDis, -40, -5);
lastDis = dis;
}
}
}
}
void LateUpdate()
{
this.transform.position = new Vector3(0, 0, cameraDis);
}
}
5. 导出到 Xcode 编译运行
- 在 Unity 中选择 File - Building Settings - iOS - Build,选择导出位置
- 在 Xcode 中打开这个项目,build,完鸟
6. 注意
- 不要把脚本加到 Cube 身上
- Directional Light 的位置无所谓