当前位置: 首页 > news >正文

【Unity每日一记】进行发射,位置相关的方法总结

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unity每日一记

🅰️推荐文章


⭐【软件设计师高频考点暴击】

⭐【Unityc#专题篇】之c#系统化大礼包】

⭐【unity数据持久化】数据管理类_PlayerPrfs

⭐【unity本站最全系列】unity常用API大全一篇文章足以
在这里插入图片描述


前言

今天我们主要介绍啊以下2个进行发射的方法

1.通过面板上发射的位置来进行发射
2.通过代码应用我们向量相关的知识点来进行发射


文章目录

    • 🅰️推荐文章
    • 前言
    • 🎶(==A==) 通过面板设置发射位置进行发射
    • 🎶(==B==) 通过向量相关代码设置位置进行发射
    • 🎶(==C==) 通过向量相关进行多种子弹数量类型的发射
    • 🅰️系统路线学习点击跳转



🎶(A 通过面板设置发射位置进行发射


在这里插入图片描述
在这里呢我们在主物体上设置了3个子对象啊这 3个子对象的位置就是用来发射的 3个位置

那么这里就是我们通过面板上设置发射位置


🎶(B 通过向量相关代码设置位置进行发射


在这里插入图片描述
知识点为向量的加减


🎶(C 通过向量相关进行多种子弹数量类型的发射


在这里插入图片描述
😶‍🌫️步骤:


1.设置选择子弹类型的枚举类型
2.封装按键相关api按键为1到 4和空格作用为1到 4是选择子弹数量类型,空格则是发射键
3.而后根据枚举类型进行子弹发射的实例化封装通过向量加减来实现发射位置的偏移,通过向量的4元数旋转来实现发射位置的旋转偏移,


😶‍🌫️涉及口诀:
位置-位置=位置
4元数*4元数=旋转角度

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________项目:       ______________
//___________功能:向量相关控制子弹发射
//___________创建者:秩沅_______________
//_____________________________________
//-------------------------------------//首先选择子弹发射的数量类型,我们在这里设置枚举类型 
public enum Shoot_Type
{one,    //一个two,    //两个mutiply,//多个around  //围绕
}public class Shoot : MonoBehaviour
{public Shoot_Type type;public GameObject bullet; //子弹public int i = 10;void Start(){}// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.Alpha1)) {type = Shoot_Type.one;}else if(Input.GetKeyDown(KeyCode.Alpha2)){type = Shoot_Type.two ;}else if (Input.GetKeyDown(KeyCode.Alpha3)){type = Shoot_Type.mutiply ;}else if (Input.GetKeyDown(KeyCode.Alpha4)){type = Shoot_Type.around ;}else if (Input.GetKeyDown(KeyCode.Space )){Fire();}}public void Fire(){switch (type){case Shoot_Type.one:Instantiate(bullet, transform.position, transform.rotation );break;case Shoot_Type.two:Instantiate(bullet, transform.position-Vector3 .right *2, transform.rotation);Instantiate(bullet, transform.position+Vector3.right * 2, transform.rotation);break;case Shoot_Type.mutiply:Instantiate(bullet, transform.position, transform.rotation);Instantiate(bullet, transform.position - Vector3.right, transform.rotation * Quaternion.AngleAxis(-10, Vector3.up ));Instantiate(bullet, transform.position - Vector3.right*2, transform.rotation * Quaternion.AngleAxis(-20, Vector3.up ));Instantiate(bullet, transform.position + Vector3.right, transform.rotation * Quaternion.AngleAxis(10, Vector3.up));Instantiate(bullet, transform.position + Vector3.right * 2, transform.rotation * Quaternion.AngleAxis(20, Vector3.up));break;case Shoot_Type.around:Instantiate(bullet, transform.position, transform.rotation);for (int i = 0; i < 180; i+=10){Instantiate(bullet, transform.position - Vector3.right, transform.rotation * Quaternion.AngleAxis(-i, Vector3.up));Instantiate(bullet, transform.position - Vector3.right, transform.rotation * Quaternion.AngleAxis(i, Vector3.up));}break;default:break;}}
}

🅰️系统路线学习点击跳转


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述


相关文章:

【Unity每日一记】进行发射,位置相关的方法总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…...

MISRA 2012学习笔记(3)-Rules 8.4-8.7

文章目录 Rules8.4 字符集和词汇约定(Character sets and lexical conventions)Rule 4.1 八进制和十六进制转译序列应有明确的终止识别标识Rule 4.2 禁止使用三字母词(trigraphs) 8.5 标识符(Identifiers)Rule 5.1 外部标识符不得重名Rule 5.2 同范围和命名空间内的标识符不得重…...

centos7组件搭建

Linux&#xff08;包括centos&#xff09; 如何查看服务器内存、CPU su - root 切换用户 centos 密码 空格 https://blog.csdn.net/weixin_45277161/article/details/131524555 CentOS 7 安装 Docker 的详细步骤 https://blog.csdn.net/qq_39997939/article/details/13100…...

webpack5和webpack4的一些区别

自动清除打包目录 webpack4 // bash npm i clean-webpack-plugin -D //webpack.config.js const {CleanWebpackPlugin} require(clean-webpack-plugin); module.exports {plugins: [new CleanWebpackPlugin()} } webpack5 module.exports {output: {clean: true} } topLevel…...

攻防世界-fileclude

原题 解题思路 直接展示源码了&#xff0c;flag.php应该存放了flag&#xff0c;在file1与file2都不为空且file2是“hello ctf”时file1将被导入。接下来做法很明显&#xff0c;让file为flag.php&#xff0c;file2为“hello ctf”。“?file1php://filter/readconvert.base64-en…...

深度学习的“前世今生”

1、“感知机”的诞生 20世纪50年代&#xff0c;人工智能派生出了这样两个学派&#xff0c;分别是“符号学派”及“连接学派”。前者的领军学者有Marvin Minsky及John McCarthy&#xff0c;后者则是由Frank Rosenblatt所领导。 “符号学派”的人相信对机器从头编程&#xff0c…...

第一百一十九回 如何通过蓝牙设备读写数据

文章目录 概念介绍实现方法示例代码经验总结我们在上一章回中介绍了如何获取蓝牙状态相关的内容,本章回中将介绍 如何通过蓝牙设备读写数据。闲话休提,让我们一起Talk Flutter吧。 概念介绍 通过蓝牙设备读写数据有两种方法: 一种是读写Characteristics;一种是读写Descri…...

linux:Temporary failure in name resolutionCouldn’t resolve host

所有域名无法正常解析。 ping www.baidu.com 等域名提示 Temporary failure in name resolution错误。 rootlocalhost:~# ping www.baidu.com ping: www.baidu.com: Temporary failure in name resolution rootlocalhost:~# 一、ubuntu/debian&#xff08;emporary failure i…...

C 语言的 sprintf() 函数

<stdio.h> 原型: int sprintf(char *str, const char *format, …) 发送格式化输出到 str 所指向的字符串。 参数 str – 这是指向一个字符数组的指针&#xff0c;该数组存储了 C 字符串。 format – 这是字符串&#xff0c;包含了要被写入到字符串 str 的文本。它…...

李沐pytorch学习-卷积网络及其实现

一、卷积概述 1.1 基本定义 卷积计算过程如图1所示&#xff0c;即输入矩阵和核函数&#xff08;filter&#xff09;对应的位置相乘&#xff0c;然后相加得到输出对应位置的数。 图1. 卷积计算过程 该过程可以形象地从图2中展现。 图2. 二维卷积示意图 1.2 实现互相关运算的代…...

记录:win10物理机ping不通虚拟机上的docker子网(已解决)

【说明】 windows10&#xff1a;已关闭防火墙 linux发行版本&#xff1a;centos7.9&#xff08;已禁用SElinux、已关闭防火墙&#xff09; 虚拟机软件&#xff1a;VMware Workstation 17 虚拟机网络模式&#xff1a;NAT模式 docker版本&#xff1a;20.4.5 docker网络模式…...

深入浅出Pytorch函数——torch.nn.init.kaiming_normal_

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

D. Anton and School - 2

范德蒙德恒等式 考虑统计每一个右括号位置的贡献&#xff0c;也就是每个右括号作为右边起点的贡献 其中i0的时候&#xff0c;r-1<r-0,故i0时贡献为0&#xff0c;直接套用恒等式不会有影响 #include <bits/stdc.h> using namespace std; typedef long long int ll; # d…...

xcode把包打到高版本的iPhone里

打开xcode CTRLb build工程&#xff0c;build成功 把手机连到mac&#xff0c;在xcode选项卡里面的window里面选中device and simulator 打开对应的手机的页面 然后在工程目录下build成功过后有一个product的文件夹里面&#xff0c;直接把app拖到对应的手机的窗口就可以不用…...

PMP项目管理考试小结

一、初步了解 每年有多次考试的机会&#xff0c;大概每三-四个月有一次考试机会&#xff0c;我下面分享的是我考试&#xff1a; 考试时间&#xff1a;8月19日 上午9:00-12:50 考试地点&#xff1a;北京市丰台区首都经济贸易大学&#xff08;城市不一样考点不一样&#xff09; …...

【NAS群晖drive异地访问】使用cpolar远程访问内网Synology Drive「内网穿透」

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…...

【傅里叶级数与傅里叶变换】数学推导——2、[Part2:T = 2 π的周期函数的傅里叶级数展开] 及 [Part3:周期为2L的函数展开]

文章内容来自DR_CAN关于傅里叶变换的视频&#xff0c;本篇文章提供了一些基础知识点&#xff0c;比如三角函数常用的导数、三角函数换算公式等。 文章全部链接&#xff1a; 基础知识点 Part1&#xff1a;三角函数系的正交性 Part2&#xff1a;T2π的周期函数的傅里叶级数展开 P…...

【IMX6ULL驱动开发学习】06.DHT11温湿度传感器驱动程序编写与测试

一、DHT11简介 DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加湿。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;具有超小体积、极低功耗的特点…...

sip开发从理论到实践,让你快速入门sip

目录 引言&#xff1a; sip协议是什么&#xff1f; sip的网络结构&#xff08;重点&#xff09; sip的特点 sip使用的url sip协议的应用领域 sip协议基本的消息类型 请求消息 响应消息 sip协议的消息结构&#xff08;这个是重点&#xff09; sip的常见会话流程&#xf…...

十三、Linux中必须知道的几个快捷键!!!

1、强制停止 当某些代码正在运行时&#xff0c;你想让其停止&#xff0c;只需要按下如下快捷键即可&#xff1a; 【CTRL】【C】 示例&#xff1a; 2、退出 Linux系统自带python3解释器&#xff0c;当你进入python3解释器之后&#xff0c;需要退出时&#xff0c;只需要按下&am…...

开源阅读鸿蒙版技术架构解析:构建去中心化数字阅读生态的实践方案

开源阅读鸿蒙版技术架构解析&#xff1a;构建去中心化数字阅读生态的实践方案 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 开源阅读鸿蒙版&#xff08;Legado-Harmony&#xff09;是一款专为鸿蒙操…...

终极思维导图互操作指南:让markmap在不同工具间自由流转

终极思维导图互操作指南&#xff1a;让markmap在不同工具间自由流转 【免费下载链接】markmap Build mindmaps with plain text 项目地址: https://gitcode.com/gh_mirrors/ma/markmap 你是否曾因思维导图格式不兼容而抓狂&#xff1f;&#x1f62b; 辛辛苦苦在某个工具…...

FPGA实战:用Z80与8051软核构建可运行BASIC的复古计算机

1. 项目概述&#xff1a;在FPGA上复活经典8位计算机如果你和我一样&#xff0c;对上世纪七八十年代那些经典的8位计算机架构——比如Zilog Z80和Intel 8051——抱有浓厚的兴趣&#xff0c;同时又对现代FPGA技术着迷&#xff0c;那么这个项目绝对会让你兴奋。它不是一个简单的仿…...

Cursor Pro免费激活工具:技术探索与实践指南

Cursor Pro免费激活工具&#xff1a;技术探索与实践指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial reques…...

广告投放ROI断崖式下滑?立即排查ElevenLabs这4个语音合成致命偏差,2小时内修复

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;广告投放ROI断崖式下滑的语音归因真相 当广告主发现iOS 17设备上语音搜索转化路径中归因丢失率高达68%&#xff0c;却仍在依赖传统点击归因&#xff08;Click-Through Attribution&#xff09;模型时&a…...

终极指南:如何用Snipe-IT免费开源系统解决企业IT资产追踪难题

终极指南&#xff1a;如何用Snipe-IT免费开源系统解决企业IT资产追踪难题 【免费下载链接】snipe-it A free open source IT asset/license management system 项目地址: https://gitcode.com/GitHub_Trending/sn/snipe-it 想象一下&#xff0c;你的公司有500台笔记本电…...

解决Matlab硬件支持包安装失败:手把手教你手动部署Autosar工具链

解决Matlab硬件支持包安装失败&#xff1a;手把手教你手动部署Autosar工具链 当你在Matlab Add-On管理器中反复尝试安装Autosar支持包却遭遇网络超时、许可证报错或进度条卡死时&#xff0c;手动部署方案往往能成为突破困境的终极手段。不同于常规的图形化安装流程&#xff0c…...

Linux应用层直接操作硬件寄存器:原理、实现与安全实践

1. 项目概述&#xff1a;为什么要在应用层操作寄存器&#xff1f; 在嵌入式Linux开发或者驱动调试的日常工作中&#xff0c;我们常常会遇到一个看似“越界”的需求&#xff1a;在用户空间的应用层程序里&#xff0c;直接去读写某个硬件寄存器的值。这听起来有点“离经叛道”&am…...

ARM项目模板在嵌入式开发中的高效应用

1. ARM项目模板在嵌入式开发中的核心价值在嵌入式系统开发领域&#xff0c;ARM架构处理器凭借其优异的功耗性能比占据着主导地位。作为开发者&#xff0c;我们经常面临这样的困境&#xff1a;每个新项目都要重复搭建基础框架&#xff0c;配置编译工具链&#xff0c;设置调试环境…...

求职时间管理神器:3秒智能标记招聘岗位时效性实战指南

求职时间管理神器&#xff1a;3秒智能标记招聘岗位时效性实战指南 【免费下载链接】NewJob 一眼看出该职位最后修改时间&#xff0c;绿色为2周之内&#xff0c;暗橙色为1.5个月之内&#xff0c;红色为1.5个月以上 项目地址: https://gitcode.com/GitHub_Trending/ne/NewJob …...