U3D模拟全民飞机大战的飞机攻击方式

作者分享了使用Unity3D和C#开发的一款太空飞机手机游戏经验,重点介绍了如何通过编写脚本来实现飞机的移动和射击功能,并针对不同平台进行了适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写了个太空飞机手机游戏,图在最后面,图片资源不是自己的,因为暂时没有苹果开发者帐号,所以只编译了安卓版本,需要的可以找我要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.deltaTime00);
            
            if (transform.position.x < -9.7f)
                transform.position = new Vector3 (9.6ftransform.position.ytransform.position.z);
            
            if (transform.position.x > 9.7f)
                transform.position = new Vector3 (-9.6ftransform.position.ytransform.position.z);
            
            if(transform.position.y <= 5.0f && transform.position.y >= -5.0f)
                transform.Translate (0speed * Input.GetAxis ("Vertical") * Time.deltaTime0);
            
            if (transform.position.y < -5.0f)
                transform.position = new Vector3 (transform.position.x, -5.0ftransform.position.z);
            
            if (transform.position.y > 5.0f)
                transform.position = new Vector3 (transform.position.x5.0ftransform.position.z);
        }
        else

        {

            //在手机平台上的飞机移动范围

            if(transform.position.x <= 3.5f && transform.position.x >= -3.5f)
                transform.Translate (speed * Input.GetAxis ("Horizontal") * Time.deltaTime00);

            if (transform.position.x < -3.5f)
                transform.position = new Vector3 (-3.5ftransform.position.ytransform.position.z);
            
            if (transform.position.x > 3.5f)
                transform.position = new Vector3 (3.5ftransform.position.ytransform.position.z);

            if(transform.position.y <= 5.0f && transform.position.y >= -5.0f)
                transform.Translate (0speed * Input.GetAxis ("Vertical") * Time.deltaTime0);
            
            if (transform.position.y < -5.0f)
                transform.position = new Vector3 (transform.position.x, -5.0ftransform.position.z);
            
            if (transform.position.y > 5.0f)
                transform.position = new Vector3 (transform.position.x5.0ftransform.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.01ftouchPosition.y * 0.01f0);
            }

            /*

            else

            {
                if(Input.touchCount > 0 && Input.GetTouch(0).phase== TouchPhase.Began)
                {
                    touchPosition = Input.GetTouch(0).position;
                    transform.position = new Vector3 (touchPosition.x * 0.01ftouchPosition.y * 0.01ftransform.position.z);
                }

            }

            */

        }
            
        myTime += Time.deltaTime;
        if(myTime >= 0.25f)

        {

            //每4分之1秒发射一颗子弹

            Instantiate (projectiletransform.positiontransform.rotation);
            myTime = 0;
        }

    }

}

 

 



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值