Unity小项目__打砖块

//1.添加地面

1)创建一个平面,命名为Ground。

2)创建一个Materials文件夹,并在其中创建一个Ground材质,左键拖动其赋给平面Plane。

 

 3)根据喜好设置Ground材质和Ground平面的属性。

 

// 2.创建墙体

1)创建一个Cube,命名为Brick,并拖曳至设置的Prefab文件夹作为预制体。

 

 2)在Materials文件夹中创建一个Brick材质,操作同1.2),1.3)

3)网格与捕捉设置,  设置好后可利用Ctrl加鼠标拖动步移物体。或点亮带磁铁的标记,直接移动物体。

// 设置预制体后的Brick 

4)全选:一直按住Shift点击Brick到Brick(10) 或直接在图形界面选中物体,Ctrl+D(复制粘贴),向上拖动。

 5)创建一个空物体对象作为上一层文件夹(父类)。

 

 // 3.控制游戏物体左右移动

1)创建一个Movement脚本控制相机的移动

 

 

 2)创建一个Script文件夹,放置脚本文件

 // Movement脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Movement : MonoBehaviour
{public int speed = 1; // 定义一个属性,用于控制速度// Start is called before the first frame updatevoid Start(){// transform.Translate(Vector3.up); // 开始游戏时控制相机向上移动1m}// Update is called once per framevoid Update() // 每秒执行的频率不固定{float h = Input.GetAxis("Horizontal"); // h:通过按下A、D键来控制移动float v = Input.GetAxis("Vertical"); // V:通过按下W、S键来控制移动transform.Translate(new Vector3(h, v, 0) * speed * Time.deltaTime); // h:控制水平方向x轴的移动;v:控制上下方向y轴的移动// 默认h,v为一帧一米,Time.deltaTime为一帧的秒数,speed可看作为速度的倍数——>每秒的速度*倍数// 检测帧率// Debug.Log(Time.deltaTime); // 获取上一帧的时间,一帧的秒速// Debug.Log(1 / Time.deltaTime); // FPS frame per second,每秒执行的帧数}//private void FixedUpdate() // 每秒执行的频率固定//{// Debug.Log(Time.deltaTime); // 获取上一帧的时间,一帧的秒速// Debug.Log(1 / Time.deltaTime); // FPS frame per second,每秒执行的帧数//}
}

// 4.创建小球

1)建立一个Sphere命名为Bullet,并鼠标拖曳至Prefab文件夹作为预制体,删除Bullet实体。

 

 2)建立子弹脚本

 // 定义一个游戏物体:子弹预制体

public GameObject bulletPrefab; //  定义一个游戏物体:子弹预制体

// 通过鼠标拖曳预制体Bullet指定对象

5.判断鼠标按下并创建子弹

// 脚本

    void Update(){// if(true)——>运行{代码},否则跳过if (Input.GetMouseButtonDown(0)) // 在用户按下给定鼠标按钮的那一帧内返回true。0 ——>鼠标左键{GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation);}}

// 给预设体Bullet设置刚体组件(和创建脚本一样)

 // 运行

 6.发射子弹

// 方案一:使用AddForce方法,施加力

    void Update(){// if(true)——>运行{代码},否则跳过if (Input.GetMouseButtonDown(0)) // 在用户按下给定鼠标按钮的那一帧内返回true。0 ——>鼠标左键{GameObject bullet = GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation); // 设置一个bullet接受克隆的一个游戏物体Rigidbody rd = bullet.GetComponent<Rigidbody>(); // 得到bullet身上的<刚体>组件// 施加力的方案// 方案一,不方便观察速度rd.AddForce(Vector3.forward * 80); // 默认施加一个向前的1N的力 * 80}}

// 方案二:直接给一个速度

rd.velocity = Vector3.forward * 35; // 直接给一个速度

 

 7.墙壁物理模拟

// 给预设体Brick添加刚体

 // 全代码参考

// Movement

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Movement : MonoBehaviour
{public int speed = 1; // 定义一个属性,用于控制速度// Start is called before the first frame updatevoid Start(){// transform.Translate(Vector3.up); // 开始游戏时控制相机向上移动1m}// Update is called once per framevoid Update() // 每秒执行的频率不固定{float h = Input.GetAxis("Horizontal"); // h:通过按下A、D键来控制移动float v = Input.GetAxis("Vertical"); // V:通过按下W、S键来控制移动transform.Translate(new Vector3(h, v, 0) * speed * Time.deltaTime); // h:控制水平方向x轴的移动;v:控制上下方向y轴的移动// 默认h,v为一帧一米,Time.deltaTime为一帧的秒数,speed可看作为速度的倍数——>每秒的速度*倍数// 检测帧率// Debug.Log(Time.deltaTime); // 获取上一帧的时间,一帧的秒速// Debug.Log(1 / Time.deltaTime); // FPS frame per second,每秒执行的帧数}//private void FixedUpdate() // 每秒执行的频率固定//{// Debug.Log(Time.deltaTime); // 获取上一帧的时间,一帧的秒速// Debug.Log(1 / Time.deltaTime); // FPS frame per second,每秒执行的帧数//}
}

 // Shoot

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Shoot : MonoBehaviour
{public GameObject bulletPrefab; //  定义一个游戏物体:子弹预制体// Start is called before the first frame updatevoid Start(){// 根据prefab创建实例(实例化Prefab),克隆物体// GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation);}// Update is called once per framevoid Update(){// if(true)——>运行{代码},否则跳过if (Input.GetMouseButtonDown(0)) // 在用户按下给定鼠标按钮的那一帧内返回true。0 ——>鼠标左键{GameObject bullet = GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation); // 设置一个bullet接受克隆的一个游戏物体Rigidbody rd = bullet.GetComponent<Rigidbody>(); // 得到bullet身上的<刚体>组件// 施加力的方案// 方案一,不方便观察速度//rd.AddForce(Vector3.forward * 80); // 默认施加一个向前的1N的力 * 80// 方案二rd.velocity = Vector3.forward * 35; // 直接给一个速度}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/79973.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产化-达梦数据库安装2

目录 DM8数据库下载地址 安装一路狂飙next 启动服务 随着国家政府的推广、越来越多的政府项目、在系统部署需要采购国产服务器、数据库等 DM8数据库下载地址 https://eco.dameng.com/download/ 安装一路狂飙next windos安装比较简单直接next即可 仅仅记录几个关键疑问地方k…

手把手教你搭建腾讯云服务器入门(图文教程)

腾讯云服务器使用教程包括注册账号实名认证、选择云服务器CVM或轻量应用服务器CPU内存带宽和系统盘配置、安全设置和云服务器远程连接、安全组端口开通教程、云服务器环境部署以搭建网站为例手把手网站上线&#xff0c;云服务器文件传输和数据备份以及技术支持等详细说明&#…

【C++杂货铺】探索string的底层实现

文章目录 一、成员变量二、成员函数2.1 默认构造函数2.2 拷贝构造函数2.3 operator2.4 c_str()2.5 size()2.6 operator[ ]2.7 iterator2.8 reserve2.9 resize2.10 push_back2.11 append2.12 operator2.13 insert2.14 erase2.15 find2.16 substr2.17 operator<<2.18 opera…

musl libc ldso 动态加载研究笔记:动态库的加载次序与初始化次序

前言 musl ldso 是按照什么次序加载动态链接的应用程序的共享库的&#xff1f;如果共享库之间有依赖&#xff0c; musl ldso 如何处理先初始化哪个 共享库&#xff1f; musl ldso 的代码可以在 musl 官方代码&#xff1a; ldso\dlstart.c 与 ldso\dynlink.c&#xff0c;其中动…

9 - 蓝图

蓝图: 将项目分成一个个单独的app模块&#xff0c;然后将所有app分配不同的处理功能&#xff0c;通过路由分配将它们连接成一个大项目 目录结构: 搭建框架: (1). 新键apps 包,编辑__init__.py文件 from flask import Flask import settings from apps.user.view import user_b…

docker使用安装教程

docker使用安装教程 一、docker安装及下载二、使用教程2.1 镜像2.2 容器2.3 docker安装Redis 一、docker安装及下载 一、安装 安装执行命令&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 二、启停常用命令 启动docker,执行命令&#xf…

指针(初阶)

1. 指针是什么&#xff1f; 指针是什么&#xff1f; 指针理解的2个要点&#xff1a; 1. 指针是内存中一个最小单元的编号&#xff0c;也就是地址 2. 平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放内存地址的变量 总结&#xff1a;指针就是地址&…

Langchain+LLM

LangChain是一个开源框架&#xff0c;允许开发人员在与人工智能&#xff08;AI&#xff09;一起工作时将大型语言模型&#xff08;如GPT4&#xff09;与外部计算和数据源相结合&#xff08;它提供了一套工具、组件和接口&#xff0c;可简化创建由LLM提供支持的应用程序&#xf…

MySQL的基础操作

前言 对MySQL的一些基础操作做一下学习性的总结&#xff0c;基本上是照着视频写的。 MySQL的安装 MySQL的下载 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 配置环境变量 下载之后直接解压&#xff0c…

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍…

前端进阶Html+css09----BFC模型

1.什么是BFC模型 全称是&#xff1a;Block formatting context&#xff08;块级格式化上下文&#xff09;&#xff0c;是一个独立的布局环境&#xff0c;不受外界的影响。 2.FC,BFC,IFC 元素在标准流里都属于一个FC&#xff08;Formatting Context&#xff09;。 块级元素的布…

STM32--ADC模数转换

文章目录 ADC简介逐次逼近型ADCADC框图转换模式数据对齐转换时间校准ADC基本结构ADC单通道工程代码&#xff1a; ADC简介 STM32的ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器&#xff0c;是一种逐次逼近型模拟数字转换器&#xff0c;可以将引脚上连续…