【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#专题篇】—核心章题单实践练习


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


在这里插入图片描述


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

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

相关文章

C语言好题解析(三)

目录 选择题一选择题二选择题三选择题四编程题一编程题二 选择题一 以下程序段的输出结果是&#xff08;&#xff09;#include<stdio.h> int main() { char s[] "\\123456\123456\t"; printf("%d\n", strlen(s)); return 0; }A: 12 B: 13 …

『C语言』数据在内存中的存储规则

前言 小羊近期已经将C语言初阶学习内容与铁汁们分享完成&#xff0c;接下来小羊会继续追更C语言进阶相关知识&#xff0c;小伙伴们坐好板凳&#xff0c;拿起笔开始上课啦~ 一、数据类型的介绍 我们目前已经学了基本的内置类型&#xff1a; char //字符数据类型 short …

数组详解

1. 一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合。 数组的创建方式&#xff1a; type_t arr_name [const_n]; //type_t 是指数组的元素类型 //const_n 是一个常量表达式&#xff0c;用来指定数组的大小 数组创建的实例&#xff1a; //代码1 int a…

Gradio部署应用到服务器不能正常访问

用Gradio部署一个基于ChatGLM-6B的应用&#xff0c;发布到团队的服务器上&#xff08;局域网&#xff0c;公网不能访问&#xff09;&#xff0c;我将gradio应用发布到服务器的9001端口 import gradio as gr with gr.Blocks() as demo:......demo.queue().launch(server_port90…

linux系统服务学习(六)FTP服务学习

文章目录 FTP、NFS、SAMBA系统服务一、FTP服务概述1、FTP服务介绍2、FTP服务的客户端工具3、FTP的两种运行模式&#xff08;了解&#xff09;☆ 主动模式☆ 被动模式 4、搭建FTP服务&#xff08;重要&#xff09;5、FTP的配置文件详解&#xff08;重要&#xff09; 二、FTP任务…

【C#学习笔记】C#特性的继承,封装,多态

文章目录 封装访问修饰符静态类和静态方法静态构造函数 继承继承原则sealed修饰符里氏替换原则继承中的构造函数 多态接口接口的实例化 抽象类和抽象方法抽象类和接口的异同 虚方法同名方法new覆盖的父类方法继承的同名方法 运行时的多态性编译时的多态性 照理继承封装多态应该…

【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字

611. 有效三角形的个数 611. 有效三角形的个数https://leetcode.cn/problems/valid-triangle-number/ 题目描述&#xff1a; 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 解题思路&#xff1a; 本题是一个关于三角形是否能成立…

CSS中的字体属性有哪些值,并分别描述它们的作用。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ font-style⭐ font-weight⭐ font-size⭐ font-family⭐ font-variant⭐ line-height⭐ letter-spacing⭐ word-spacing⭐ font⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专…

推荐一个绘图平台(可替代Visio)

不废话&#xff0c;简易记网址&#xff1a; draw.io 网站会重定向到&#xff1a;https://app.diagrams.net/

通过 OpenAI 引入superalignment

推荐&#xff1a;使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 首席执行官Sam Altman曾多次谈到AI的安全性&#xff0c;例如在美国参议院委员会上&#xff0c;他说&#xff1a; “我认为如果这项技术出错&#xff0c;它可能会出错......我们想对此直言不讳。我们希…

【笔试题心得】排序算法总结整理

排序算法汇总 常用十大排序算法_calm_G的博客-CSDN博客 以下动图参考 十大经典排序算法 Python 版实现&#xff08;附动图演示&#xff09; - 知乎 冒泡排序 排序过程如下图所示&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻…

RNN模型简单理解和CNN区别

目录 神经网络&#xff1a;水平方向延伸&#xff0c;数据不具有关联性 ​ RNN&#xff1a;在神经网络的基础上加上了时间顺序&#xff0c;语义理解 ​RNN: 训练中采用梯度下降&#xff0c;反向传播 ​ 长短期记忆模型 ​输出关系&#xff1a;1 toN&#xff0c;N to N 单入…