最近写了个太空飞机手机游戏,图在最后面,图片资源不是自己的,因为暂时没有苹果开发者帐号,所以只编译了安卓版本,需要的可以找我要APK。
开发环境:MacBookAir、酷派大神、U3D、C#Script
由于是第一次写手机游戏,在移植到手机时稍摸索了一会儿,比如在处理输入事件时还停留在端游键盘时代,睡了一觉才发现是触摸屏时代。将以下脚本文件拖放至飞机预制件上即可实现像QQ全民飞机大战那样的飞机攻击方式
using UnityEngine;
using System.Collections;public class PlayerController : MonoBehaviour {
// Use this for initialization
void Start () {
}
public float speed = 2.0f;
public GameObject projectile;
float myTime = 0.0f;
Vector2 touchPosition;
// Update is called once per frame
void Update () {
if (!GameDefine.isMobileDevice)
{
//在PC或者WEB平台上时的飞机移动范围
if(transform.position.x <= 9.7f && transform.position.x >= -9.7f)transform.Translate (speed * Input.GetAxis ("Horizontal") * Time.deltaTime, 0, 0);
if (transform.position.x < -9.7f)
transform.position = new Vector3 (9.6f, transform.position.y, transform.position.z);
if (transform.position.x > 9.7f)
transform.position = new Vector3 (-9.6f, transform.position.y, transform.position.z);
if(transform.position.y <= 5.0f && transform.position.y >= -5.0f)
transform.Translate (0, speed * Input.GetAxis ("Vertical") * Time.deltaTime, 0);
if (transform.position.y < -5.0f)
transform.position = new Vector3 (transform.position.x, -5.0f, transform.position.z);
if (transform.position.y > 5.0f)
transform.position = new Vector3 (transform.position.x, 5.0f, transform.position.z);
}
else
{
//在手机平台上的飞机移动范围
if(transform.position.x <= 3.5f && transform.position.x >= -3.5f)transform.Translate (speed * Input.GetAxis ("Horizontal") * Time.deltaTime, 0, 0);
if (transform.position.x < -3.5f)
transform.position = new Vector3 (-3.5f, transform.position.y, transform.position.z);
if (transform.position.x > 3.5f)
transform.position = new Vector3 (3.5f, transform.position.y, transform.position.z);
if(transform.position.y <= 5.0f && transform.position.y >= -5.0f)
transform.Translate (0, speed * Input.GetAxis ("Vertical") * Time.deltaTime, 0);
if (transform.position.y < -5.0f)
transform.position = new Vector3 (transform.position.x, -5.0f, transform.position.z);
if (transform.position.y > 5.0f)
transform.position = new Vector3 (transform.position.x, 5.0f, transform.position.z);
}
//手机触摸控制飞机移动
if(GameDefine.isMobileDevice){
if(Input.touchCount > 0 && Input.GetTouch(0).phase== TouchPhase.Moved)
{
touchPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(touchPosition.x * 0.01f, touchPosition.y * 0.01f, 0);
}
/*
else
{if(Input.touchCount > 0 && Input.GetTouch(0).phase== TouchPhase.Began)
{
touchPosition = Input.GetTouch(0).position;
transform.position = new Vector3 (touchPosition.x * 0.01f, touchPosition.y * 0.01f, transform.position.z);
}
}
*/
}myTime += Time.deltaTime;
if(myTime >= 0.25f)
{
//每4分之1秒发射一颗子弹
Instantiate (projectile, transform.position, transform.rotation);myTime = 0;
}
}
}