Android開發學習之UnIty3D重力感應

今天想和大傢分享的是基於Unity3D的重力感應。首先簡單地說一下Unity3D,Unity3D是一個支持Windwos、Android、ios、Mac、WII等多平臺類型遊戲的開發環境,具備可視化的編輯窗口,可以快捷、方便地對遊戲場景進行編輯,對DirectX和OpenGL具有高度的渲染能力,支持資源導入,支持物理引擎、支持光影特效、支持粒子系統,是開發跨平臺遊戲的首選工具。

對於Unity3D,我接觸地不算很多,今天算是第一篇文章吧,我們今天就以一個的重力感應實例來開始今天的學習吧!

首先打開Unity3D創建一個新的項目,項目創建完後,我們在Assets文件夾下創建一個Resources的文件夾,這裡必須是Resources,否則開發環境將無法識別其中的資源。然後我們導入一個小球的圖片,命名為Ball。緊接著,我們創建一個Scripts的文件夾來存放腳本文件,此時項目結構應該是這樣的。

下面,我們在Scripts文件夾下創建一個Controls.cs的C#腳本文件。主要代碼如下:vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ==”brush:java;”>using UnityEngine;
using System.Collections;

public class Controls : MonoBehaviour {

private Texture2D ball;
private float x=0.0F;
private float y=0.0F;
private float mX=0.0F;
private float mY=0.0F;

void Start ()
{
mX=Screen.width-x;
mY=Screen.height-y;
ball=(Texture2D)Resources.Load(“Ball”);
}

void OnGUI()
{
GUI.DrawTexture(new Rect(x,y,256,256),ball);
}

void Update ()
{
x += Input.acceleration.x * 30;
y += -Input.acceleration.y * 30;
if(x mX)
{
x = mX;
}

if(y mY)
{
y = mY;
}
}
}

然後我們將這個腳本拖放到Camera上,綁定腳本,然後編譯並在手機上運行,最終效果是這樣的:

到目前為止,這個例子存在幾個問題如下:

1、雖然程序中對越界問題作瞭處理,但是在實際測試過程中,我們發現小球還是會向屏幕右側和下側移動甚至消失

2、小球在手機屏幕上的坐標系統似乎和Unity3D是相反的

3、由於采用2D貼圖,因此小球一直處於靜止狀態,正常的情況下小球應該會滾動

所以,對於這幾個問題我目前還是很困惑的,如果大傢知道的話,可以告訴我啊,今天的文章就是這樣瞭(話說Android似乎不知道做什麼瞭!),謝謝大傢!

發佈留言