IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity学习笔记(1)飞机大战第一章 -> 正文阅读

[游戏开发]Unity学习笔记(1)飞机大战第一章

一、效果图

大概的效果图如下,实现的功能:😁通过点击鼠标飞机会射出子弹,若子弹超出屏幕外会自动销毁。

在这里插入图片描述

二、功能实现

1、场景对象

在这里插入图片描述

  1. 【Main Camera】 代表主摄像机,需要这个我们才能看到如今这个视角
  2. 【游戏主控】 上面不挂载任何图片对象,但挂了一个c#文件,主要用来全局设置。比如这个项目所涉及到的时间针率。

在这里插入图片描述

3.【子弹】 这个子弹可惜忽略,主要是通过它来创建子弹预制体

4.【子弹Prefab】此对象需要挂MyBullet,特别提醒需要在【飞机】脚本下挂它
在这里插入图片描述

5.【飞机】 挂MyJet
在这里插入图片描述

2、代码实现

  • 游戏主控—MyGame代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyGame : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //设置帧率为60
        //Application:应用
        //target:目标
        //Frame:帧
        //Rate:率
        Application.targetFrameRate= 60;

    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
  • 子弹Prefab—MyBullet代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyBullet : MonoBehaviour
{
	//在inspector中会出现【speed】,并且可以自由设置参数
    public float speed = 5.5f;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //设置每刷新一次y轴的坐标,y轴坐标随时间增加,即表现为向上的运动
        float dy = speed * Time.deltaTime;
        //将空间坐标翻译赋给transform
        transform.Translate(0, dy, 0, Space.Self);
		//创建对象(而这个对象的坐标由transform提供)表现形式由主摄像机的世界坐标表示
        Vector3 sp = Camera.main.WorldToScreenPoint(transform.position);
        //如果对象的y坐标超过屏幕的高度则被摧毁
        if (sp.y > Screen.height)
        {
            Destroy(this.gameObject);
        }
    }
}

  • 飞机—MyJet代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyJet : MonoBehaviour
{
    public GameObject myPrefab;
    private float interval = 0.4f;
    private float count = 0;
    
    // Start is called before the first frame update
    void Start()
    {
        
       
    }

    // Update is called once per frame
    void Update()
    {
    	//如果鼠标按下,就射出子弹
        if(Input.GetMouseButtonDown(0))
        {
            Fire();
        }

    }
    private void Fire()
    {
    	//创建预制体
    	//Instantiate:示例
        GameObject bullet = Instantiate(myPrefab);
        //子弹的位置=飞机所在位置的y轴加1
        bullet.transform.position = transform.position + new Vector3(0, 1f, 0);
    }
}

三、总结

现在我只是刚开始,给自己打气遇到挫折难题不要放弃,踏踏实实学习,一定会在毕业前修炼成大师的!
对的,这个游戏还没结束,下一章会继续写键盘控制飞机、子弹击中敌人,敌人消失。😊😊😊😊下一章见!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:43:41  更:2021-11-20 18:45:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 23:40:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码