京城遊戲人-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 的位置無所謂