2.8.2 发射子弹

2024-03-18 02:38
文章标签 子弹 2.8 发射

本文主要是介绍2.8.2 发射子弹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://book.2cto.com/201410/47221.html

将新敌人放到场景中,运行游戏,会发现新敌人缓缓向前,但不会做其他事情。我们接下来会为其添加一点新功能,使其可以向主角发射子弹,更有威胁。
使用rocket.fbx创建一个新的子弹Prefab,命名为EnemyRocket,再为其创建一个新的材质,使用rocket2.png作为贴图,使敌人的子弹看上去与主角的不同一些。
为敌人子弹添加Rigidbody和Box Collider 组件并正确设置。
为敌人子弹新建一个名为EnemyRocket的Tag。
创建EnemyRocket.cs脚本,它将继承Rocket类的大部分功能,我们只需要略修改一下OnTriggerEnter方法,使其只能与主角飞船发生碰撞,如下所示
using UnityEngine;
using System.Collections;[AddComponentMenu("MyGame/EnemyRocket")]
public class EnemyRocket : Rocket
{void OnTriggerEnter( Collider other ){if ( other.tag.CompareTo("Player") != 0 )return;Destroy( this.gameObject );}
}

将EnemyRocket脚本指定给敌人子弹的Prefab。
在Inspector窗口设置EnemyRocket 组件,降低敌人子弹的移动速度,增加生存时间,如图2-29所示。
接下来关联新敌人和子弹,打开SuperEnemy.cs脚本,修改代码如下:
using UnityEngine;
using System.Collections;[AddComponentMenu("MyGame/SupperEnemy")]public class SuperEnemy : Enemy 
{public Transform m_rocket;protected float m_fireTimer = 2;    // 控制发射子弹的时间间隔protected Transform m_player;           // 用来指向主角的飞船public AudioClip m_shootClip;       // 播放射击的声音protected AudioSource m_audio;      // 声音源组件,用于播放声音void Awake()    //  继承自MonoBehaviour,它会在游戏体实例化时执行一次,并先于Start方法。{GameObject obj = GameObject.FindGameObjectWithTag("Player");    // 使用FindGameObjectWithTag函数获得主角游戏体实例if(obj != null){m_player = obj.transform;}// m_audio = this.GetComponent<AudioSource>();}<span style="white-space:pre">	</span>// Use this for initialization//void Start () {       // 这里一定要注释 Start()函数  
<span style="white-space:pre">	</span>//}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>// Update is called once per frame
<span style="white-space:pre">	</span>protected override void UpdateMove() {m_fireTimer -= Time.deltaTime;if(m_fireTimer <= 0){m_fireTimer = 2;if(m_player != null){Vector3 relativePos = m_transform.position - m_player.position;Instantiate(m_rocket,m_transform.position, Quaternion.LookRotation(relativePos));   // 使子弹在初始化的时候,朝向主角的方向m_audio.PlayOneShot(m_shootClip);   // 播放射击声音}}// 在SuperEnemy这个类中,使用了 override 标识符,表示这是一个重写的方法。// 虽然SuperEnemy这个类没有其他成员,但它继承了Enemy类的其他全部功能// 前进//        m_transform.Translate(new Vector3(0, 0, m_speed * Time.deltaTime));m_transform.Translate(new Vector3(0, 0, -m_speed * Time.deltaTime ));//}
}
m_fireTimer属性用来控制发射子弹的时间间隔。
m_player属性用来指向主角的飞船。
Awake方法继承自MonoBehaviour,它会在游戏体实例化时执行一次,并先于Start方法。我们在这里使用FindGameObjectWithTag函数获得主角的游戏体实例。
Quaternion.LookRotation使子弹在初始化时朝向主角的方向。
选择新敌人Prefab,在Inspector窗口选择Rocket属性,与敌人子弹的Prefab关联,如图2-30所示。






这篇关于2.8.2 发射子弹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820937

相关文章

电子发射与气体导电

物理电磁学练习题:电子发射与气体导电 说明: 以下题目考察对电子发射和气体导电基本概念的理解和应用。 1. 解释以下概念:      (a) 热电子发射      (b) 光电效应      © 逸出功      (d) 等离子体 2. 比较并对比热电子发射和光电效应的异同。 3. 钨的逸出功为 4.5 eV。      (a) 计算能够从钨表面发射电子的最长波长光。      (b) 如

智能手机、汽车新应用,星纪魅族幸运星号”卫星即将发射

朋友们!你想象过我们的智能手机和汽车能与卫星直接通信吗? 这听起来像是科幻小说里的情节,但很快,这将成为现实!星纪魅族科技最近宣布了一个振奋人心的消息——他们将与时空道宇合作发射“星纪魅族幸运星号”卫星。这不仅是一次科技的飞跃,更是智能科技生态建设的一大步。 今天,就让我们一起来探讨这颗卫星及其应用将如何影响我们的未来。 一、卫星的技术特点和运行轨道 首先,让我们来看看“星纪魅族幸运星

UE5 通过蓝图创建物体或实例化子弹

在蓝图中直接找 Spawn Actor from class 节点,把制作好的蓝图球 给到class 即可 在需要的地方使用就会创建一个小球 如下图:

支持2.4G频秒变符合GB42590的标准的飞行器【无人机GB42590发射端】

使用方法: 放在飞机 上,按键那一面需要朝上对着天空(因为GPS陶瓷天线在按键面),支持基本ID,向量和系统包,电池容量240mAH充电1小时,使用时间大概2小时。 1.长按3秒开关机 2.开机红灯慢闪,只发射基本ID数据包,定位成功后红灯快闪发射基本ID,向量和系统包 通过高度和速度自动判断飞机在空中还是地面,自动使用起飞前的经纬度作为操作员经纬度充电绿灯常亮,充满绿灯熄灭 详情资料可在

HTN7862 4V~65V输入,2.8A异步降压变换器

1、特点  2.8A降压,内置260mΩ功率管 输入电压范围:4V~65V 脉冲跳跃模式使得轻载下高效率 ·110uA静态电流 最高2MHZ可编程开关频率 峰值电流控制架构 欠压保护、过流保护和过热关断保护 无铅封装,ESOP8 2、应用 ·12V,24V,48V工业和电信电源轨系统 ·汽车系统 分布式电源系统 高压电源转换 3、概述     HTN7862是2.8A降压转换器,具有从4

基于cocos2dx的飞机大战学习[四]-添加英雄子弹

第四节:添加英雄子弹 实现这个功能需要如下考虑: 1、每隔一小段时间就创建一个子弹在英雄机顶,并将其加入一个sprite*的容器中,并添加在flyplane层中显示出来。 2、创建出来的子弹每帧刷新都增加Y坐标让其看起来向上移动。 3、子弹出界,回收清除。  (打中敌人也要从容器中和flyplane对象中清除,以后再考虑)。 综合这几点修改FlyPlane.h 和 FlyPl

linux设备上的Onvif 实现4:成功编译gsoap 2.8.15

前言     本说明示例是gsoap 2.8.15     gsoap工具包中支持的平台是:linux386、macosx、win32,没有提供嵌入式arm平台,本文将指导完成交叉工具编译生成嵌入式平台工具。 工作目录:\\192.168.0.234\work\gaoht\gsoap   \gsoap-2.8\   解压后的目录   \target\      编译后的安装目录 交叉编译工具:T

ubuntu16.04怎样才能安装 wxpython 2.8.12.1

使用sudo apt install python-wxgtk2.8 根本找不到包 关于RIDE需要wxpython 16.04里面需要做如下才能安装 wxpython 2.8.12.1  echo "deb http://cz.archive.ubuntu.com/ubuntu trusty main universe" | sudo tee /etc/apt/sources.list.d

Bilibili开源发布轻量级 Index 系列语言模型:2.8T 训练数据,支持角色扮演

Bilibili首次发布 Index 系列模型中的轻量版本:Index-1.9B 系列 本次开源的 Index-1.9B系列包含以下模型: Index-1.9Bbase:基座模型,具有 19 亿 非词嵌入参数量,在 2.8T    中英文为主的语料上预训练,多个评测基准上与同级别模型比处于领先.     Index-1.9Bpure:基座模型的对照组,与 base 具有相同的参数和训练策

VD1011 单节锂离子充电电池保护 2.8V过放保护 SOT-23小封装芯片

VD1011,内置高精度电压检测电路和延迟电路以及内置MOSFET,是用于单节锂离子/锂聚合物可再充电 电池的保护IC。 本IC适合干对1节锂离子/锂聚合物可再充电电池的过充电、过放电和过电流进行保护。 VD1011具备如下特点 高精度电压检测电路 过充电检测电压   4.30V精度±50mV 过充电释放电压   4.15V精度±70mV 过放电检测电压   2.80V精度±100mV 过放电释