Unity3D 太空大战——整理

本文总结了Unity3D中开发太空大战游戏的过程,包括背景生成(星空、火星)、主角飞机属性(移动、生命值、发射子弹)的设定、敌人(普通敌人和超级敌人)的创建与属性、碰撞效果实现、以及敌人生成器的制作。同时,介绍了添加各种tags如Enemy、Player、rocket等的重要性。

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

Ok、now、begin!


今天同一整理学习了太空大战的开发、现在来做个总结:


1、首先是背景的生成和管理:

    星空   直接建一张plane,再贴上星星的图片。

火星  mars.png   (生成一个Material),  设置  shader —>  Transparent—>cutout—>diffuse

建好之后保存场景,计作为Level0,(也就是关卡1)

2、开始创建主角飞机,

它有这么几个属性:

移动速度:m_speed = 1,

生命值:  m_life = 10  ,   

前后左右方向的移动:movev = 0 ,  moveh = 0

再定义了一个子弹的附件  Transform m_rocket  (用来发射子弹,计:一定要在子弹对象实例化后,关联文件)

飞机的移动:   this.transform.Translate(moveh,0,movev);

发射子弹:  Instantiate(m_rocket,m_tranform.position,m_transform.ratation)

主角Player的代码:

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

	public Transform m_rocket;
	public float m_speed = 5;
	public float rocketLaunchTime = 0;

	public float m_life = 10;

	public AudioClip m_shootClip;
	public AudioSource m_audio;
	public Transform m_explosionFX;
	// Use this for initialization
	void Start () {
		m_audio = this.audio;
	}
	
	// Update is called once per frame
	void Update () {
		float movev = 0;
		float moveh = 0;

		if (Input.GetKey (KeyCode.W)) {
			movev = -m_speed * Time.deltaTime;		
		}
		if (Input.GetKey (KeyCode.S)) {		
			movev = m_speed * Time.deltaTime;
		}
		if (Input.GetKey (KeyCode.A)) {
			moveh = m_speed * Time.deltaTime;		
		}
		if (Input.GetKey (KeyCode.D)) {
			moveh = -m_speed * Time.deltaTime;		
		}
		rocketLaunchTime = rocketLaunchTime - Time.deltaTime;
		if (rocketLaunchTime <= 0) {
			rocketLaunchTime = 0.1f;
			if (Input.GetKey (KeyCode.Space) || Input.GetMouseButton (0)) {
				Instantiate(m_rocket
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值