11月8日 改良射线,蓝图 UE4斯坦福 学习笔记

2023-11-16

修改射线类型

更改了昨天的射线类型

void USInteractionComponent::PrimaryInteract() { //射线 FHitResult FHit; //碰撞体 FCollisionObjectQueryParams ObjectQueryParams; ObjectQueryParams.AddObjectTypesToQuery(ECC_WorldDynamic); //获得Actor的所有者 AActor* MyOwner = GetOwner(); FVector Eyelocation; FRotator EyeRotator; //获得Actor所有者的眼睛位置 MyOwner->GetActorEyesViewPoint(Eyelocation,EyeRotator); //设置射线发射位置和结束位置 FVector End = Eyelocation + (EyeRotator.Vector() * 1000); // bool bBlockingHit = GetWorld()->LineTraceSingleByObjectType(FHit,Eyelocation,End,ObjectQueryParams); //发射出射线,射中目标的时候为绿色,未射中的时候为红色 TArray<FHitResult> Hits;//将Hit获得的对象转化为数组 //绘制一个球体 float Radius = 30.0f; FCollisionShape Shape; Shape.SetSphere(Radius); //发射射线 bool bBlockingHit = GetWorld()->SweepMultiByObjectType(Hits,Eyelocation,End,FQuat::Identity,ObjectQueryParams,Shape); //设置Debug射线的颜色 FColor LineColor = bBlockingHit ? FColor::Green : FColor::Red; //for循环,将射线射中的Actor类提取出来 for(FHitResult Hit:Hits) { AActor* HitActor = FHit.GetActor(); if(HitActor) { GEngine->AddOnScreenDebugMessage(-1, 1.f, FColor::Green, FString::Printf(TEXT("HitActor")));//输出调试信息 if(HitActor->Implements<USGameplayInterface>()) { GEngine->AddOnScreenDebugMessage(-1, 1.f, FColor::Green, FString::Printf(TEXT("Implements")));//输出调试信 APawn* MyPawn = Cast<APawn>(MyOwner); ISGameplayInterface::Execute_Interact(HitActor,MyPawn); } } //Debug射线的发射 DrawDebugSphere(GetWorld(),Hit.ImpactPoint,Radius,32,LineColor,false,2.0f); } DrawDebugLine(GetWorld(),Eyelocation,End,LineColor,false,1,0,5); }

在角色内添加蒙太奇

在.h文件内添加

//添加一个动画蒙太奇 UPROPERTY(EditAnywhere, Category="Attack") UAnimMontage* AttackAnim; //定时器 FTimerHandle TimeHandle_PrimaryAttack;

以及一个void

void PrimaryAttack_TimeElapsed();

在.cpp内修改Attack

void ASCharacter::PrimaryAttack() { //动画蒙太奇 PlayAnimMontage(AttackAnim); //设置定时器 GetWorldTimerManager().SetTimer(TimeHandle_PrimaryAttack, this,&ASCharacter::PrimaryAttack_TimeElapsed,0.2f); //GetWorldTimerManager().ClearTimer(TimeHandle_PrimaryAttack);//清除定时器 }

void ASCharacter::PrimaryAttack_TimeElapsed() { //触发函数的时候从手部位置生成一个魔法球的模型 FVector HandLocation = GetMesh()->GetSocketLocation("Muzzle_01"); FTransform SpawnTM = FTransform(GetControlRotation(),HandLocation); FActorSpawnParameters SpawnParams; SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; GetWorld()->SpawnActor<AActor>(ProjectileClass,SpawnTM,SpawnParams); }

蓝图控制旋转

在Sitem也就是宝箱的.h函数中修改.h文件为

UPROPERTY(VisibleAnywhere,BlueprintReadOnly) UStaticMeshComponent* LidMesh;

意思是暴露给蓝图使用

添加宝箱蓝图

并且把Particle下的autoActivate关闭

修改碰撞预设

修改子弹蓝图

蓝图相关都是很简单的小功能,不再做笔记

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

11月8日 改良射线,蓝图 UE4斯坦福 学习笔记 的相关文章

  • InputStream 、 InputStreamReader 、 BufferedReader区别

    区别介绍 1 InputStream OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类 一般我们使用它的子类 如FileInputStream等 OutputStream是字节输出流的所有类的
  • 云计算的三种模式IaaS/PaaS/SaaS/BaaS对比:SaaS架构设计分析

    SaaS 软件即服务 Software as a Service 的出现改变了传统使用软件转变为使用服务 SaaS与传统软件的最大区别是 前者按年付费租用服务 后者一次买断 这貌似只是 报价方式 的区别 实际上这是一个根本性的变化 这带来的
  • Pygame - 背景图片连续滚动

    方法 让背景图像分别在 0 0 和 0 img heigh 两个位置向下移动它们 当其中一个位于 0 img heigth 位置时 再次将其放置在 0 img heigh 位置 具体代码 import pygame import sys i
  • vue跳转微信小程序遇到的坑

    官方参考https developers weixin qq com doc offiaccount OA Web Apps Wechat Open Tag html 21 vue项目 h5跳转小程序 简书 遇到的问题 在PC端不显示样式

随机推荐

  • 力扣(LeetCode)算法_C++——最大连续 1 的个数 III

    给定一个二进制数组 nums 和一个整数 k 如果可以翻转最多 k 个 0 则返回 数组中连续 1 的最大个数 示例 1 输入 nums 1 1 1 0 0 0 1 1 1 1 0 K 2 输出 6 解释 1 1 1 0 0 1 1 1 1
  • PSA wiring diagram for jumper/relay 2.2hdi

    Anyone has 2007 Citroen Relay 2 2 HDI 88 KW 4HU engine and need an engine and abs wiring diagrams ECU Vistion DCU 102 Ju
  • c#线程三

    1 单元模式和Windows Forms 单元模式线程是一个自动线程安全机制 非常贴近于COM Microsoft的遗留下的组件对象模型 尽管 NET最大地放弃摆脱了遗留下的模型 但很多时候它也会突然出现 这是因为有必要与旧的API 进行通
  • 使用FPGA进行加速运算

    注 本篇文章来源于知乎 为微软亚洲研究院李博杰的回答 详细链接在这儿 点击打开链接 在这篇文章中 作者从CPU GPU FPGA的架构出发 讨论了微软数据中心为什么使用FPGA而不选择GPU 该文章是我逐字搬运过来的 其目的是为后续我们公司
  • XView小程序开源组件库

    XView小程序开源组件库 XView小程序组件库本着简单易用的原则封装组件 使用时只需要在json配置文件中引用即可 使用 组件库当中大致可分为一下三大类 布局组件 基础组件 表单组件 XView小程序组件库本着简单易用的原则封装组件 使
  • UI自动化概念 + Web自动化测试框架介绍

    1 UI自动化测试概念 我们先明确什么是UI UI 即 User Interface简称UI用户界面 是系统和用户之间进行交互和信息交换的媒介 UI自动化测试 Web自动化测试和移动自动化测试都属于UI自动化测试 UI自动化测试就是借助自动
  • tf2使用tensorboard(jupyter notebook)

    环境 tensorflow2 0 jupyter notebook unbuntu18 04 这个应该影响不大 示例 用的是iris数据集分类 该数据集库自带 import tensorflow as tf import numpy as
  • Catalan卡塔兰数

    今天在二叉搜索树 随机组成情况 分析复杂度遇到 catalan数 学习并记录一下 背景 分析二叉搜索树 BST 的平均性能时 我们可以分为随机生成和随机组成分析 随机生成 将各节点按照数的顺序随机排列 若含有n个节点 n个互异关键码 则有n
  • 波士顿动力开源代码_失去动力两年后,我如何开始开源之旅

    波士顿动力开源代码 by Hemakshi Sachdev 通过Hemakshi Sachdev 失去动力两年后 我如何开始开源之旅 How I started my open source journey after being demo
  • 数据结构(一)顺序表、链表以及队列

    一 顺序表 顺序表 它具有连续内存地址 访问方便O 1 但是删除和插入不方便O N 常用数组实现 在JAVA中 声明一个数组直接使用语句 int array new int k k为已知的数组大小 当然JAVA中本身自带了很多封装的数组 如
  • 全国地区代码表

    天津市 地区代码 地区名称 1100 天津市 辽宁省 地区代码 地区名称 2210 沈阳市 2210 法库县 2210 康平县 2210 辽中县 2210 新民市 2220 大连市 2222 普兰店市 2223 庄河市 2224 瓦房店市
  • 晶振电路中为什么用22pf或30pf

    让我们一起来看看到底晶振电路中为什么用22pf或30pf的电容而不用别的了 Y1是晶体 相当于三点式里面的电感 C1和C2就是电容 5404非门和R1实现一个NPN的三极管 接下来分析一下这个电路 5404必需要一个电阻 不然它处于饱和截止
  • js获取元素的距离父元素、窗口的距离offsetTop,offsetHeight,clientHeight

    前言 相信很多项目中都会有这样一个小需求 PC端 移动端则是点击 鼠标移上某个菜单或者某个位置 显示一个弹出框 移开则隐藏弹出框 就是css中hover效果 这种通常做法是每个子菜单下都有一个弹框 父元素相对定位 子元素绝对定位 只需要控制
  • 14、Qt 捕捉鼠标事件

    0 需求 在鼠标进入窗口实时捕捉所在位置 以及进行的操作 1 方法 我们主要使用QWidget中的几个方法 鼠标进入 void enterEvent QEvent event 鼠标离开 void leaveEvent QEvent even
  • 管理一年,领悟一生:迷茫、洞见与成长

    领导力跟你做了多少年管理 管过多少人 没有直接的关系 你开悟了 一年就能管得井井有条 不开悟 十年也是一塌糊涂 1 引言 大家好 我是苍何 相信作为技术人的成长路线大家都有了解吧 大家普遍所了解的就是两个路线 技术管理和架构师 而成为架构师
  • ue4大气纹理

    UE4的大气纹理 在 class FAtmosphereTextures public FRenderResource 成员变量上涉及到了辐射 投射 和散射 分三个部分 首先放入一个commandlist 然后分别就各参数创建RTT 传参数
  • python 中关于推导式生成器的一些总结

    推导式 可以理解为是数据生成方式或者是处理方式 类型 列表 元组 字符串 字典 集合 外部包装的括号决定了返回值类型的 定义 列表推导式 表达式 for循环 if语句 1 对列表中的每项元素进行立方运算 变换功能 a 1 2 3 4 5 6
  • 动态规划(1)

    动态规划 Dynamic Programming 是一种具有分治思想的迭代技术 它用于求解某些复杂的不包含决策过程的最优化问题 其基本思路是将原问题分解为子问题 并保存子问题的求解结果 从而避免不必要的重复计算 动态规划的主要思想就是将复杂
  • Java类、构造方法、对象

    public class Lader 定义类 float above 成员变量 类中有效 float bottom float height float area float area 4 合法 area 4 非法 在方法体中赋值 floa
  • 11月8日 改良射线,蓝图 UE4斯坦福 学习笔记

    修改射线类型 更改了昨天的射线类型 void USInteractionComponent PrimaryInteract 射线 FHitResult FHit 碰撞体 FCollisionObjectQueryParams ObjectQ