首页 > 编程语言 >无法在Unreal Engine中使用C++创建Struct

无法在Unreal Engine中使用C++创建Struct

时间:2022-12-07 17:01:43浏览次数:62  
标签:Engine Struct uwa4d C++ Unreal UIToolkit UWA 问答

1)无法在Unreal Engine中使用C++创建Struct
​2)Unreal中,如何在一个视口内显示多个摄像机视口
3)如何能和UGUI里面的图片做个动画一直旋转,实现Loading效果
4)UIToolkit中ListView如何去除滑动条


这是第316篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)

Scripting

Q:当我试图在Unreal Engine中使用C++创建Struct,我得到下述错误:
Error:当编译struct ‘MapZone’时,试图去掉前缀会导致空的名字,你是不是漏掉了前缀?

我的代码如下:

// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "Escape_from_CaelumGameMode.generated.h"

//If you want this to appear in BP, make sure to use this instead //USTRUCT(BlueprintType)
USTRUCT() struct MapZone
{
    GENERATED_BODY()

        UPROPERTY()
        int32 SampleInt32;

    UPROPERTY()
        AActor* TargetActor;
};


UCLASS(minimalapi)
class AEscape_from_CaelumGameMode : public AGameModeBase
{
    GENERATED_BODY()

public:
    AEscape_from_CaelumGameMode();

    UPROPERTY(BlueprintReadWrite, EditAnywhere, Category="EFC|Zones")
    TArray<MapZone> MapZones;
};

  

A:每一个注册在Unreal反射系统中的Struct必须有前缀F,所以你的C++类型的名字应该为FmapZone。就像Actors需要前缀A,其他UObjects必须有前缀U。
Unreal Engine:It`s a way of life.

感谢MooLi@UWA问答社区提供了回答


Rendering

Q:在Unreal中,我可以在一个视口(viewport)内显示多个摄像机视口(camera viewport)吗?

我想在一个显示器中并排显示两个或者更多的电影摄像机所呈现的画面,我可以通过Scene Capture 2D(2D场景截图)显示,但是我不知道怎么通过电影摄像机做到。

A:Unreal已经内置了对分屏多人游戏的支持。

 

感谢MooLi@UWA问答社区提供了回答


UIToolkit

Q:如何能和UGUI里面的图片做个动画一直旋转,实现Loading效果呢?能用UIToolkit里面的Transition Animations做动画效果吗?如果改变旋转角度需要每帧里面去控制旋转角度?

A:UIToolkit的动画系统无法实现循环动画,并不知道要加载多久提前算不出来要转多少圈。

在Update里这样写就行了也很简单:

private void Update()
{
    visualElement.transform.rotation *= Quaternion.Euler(0, 0, 1);
}

  

感谢芝麻青豆角@UWA问答社区提供了回答


UIToolkit

Q:UIToolkit中ListView怎么去除那个滑动条呢?只要在手机端用手指滑动就行了。怎么自定义滑动条的图片背景图和滑轮这些?Image如何动态加载图片呢?开发过程中可能很多时候都要动态刷新图片。

A:关于ListView,在UIToolkit内部使用了ScrollView组件,因为内置的组件所以无法对它子节点进行修改,如果需要隐藏或者修改样式可以使用USS通过NameID或者找子对象的方法找它,在USS里面配置隐藏就可以了。

这样就可以运行时修改Sprite了:

button.Q(“image”).style.backgroundlmage= new StyleBackground(Resources.Load(“1”));

  

感谢芝麻青豆角@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

标签:Engine,Struct,uwa4d,C++,Unreal,UIToolkit,UWA,问答
From: https://www.cnblogs.com/uwatech/p/16963598.html

相关文章

  • c++练习272题:金币
    *272题原题传送门:http://oj.tfls.net/p/272题解:(遍历,60分)#include<bits/stdc++.h>usingnamespacestd;longlongallday;//总天数longlongpas;//已经过去longlongmo......
  • 私有继承和保护继承的访问规则是什么?c++
    以这些类为例:classB{/*...*/};classD_priv:privateB{/*...*/};classD_prot:protectedB{/*...*/};classD_publ:public......
  • C++知识点:数组末端下一位置
    c++语言规定,数组末端下一位置是合法的,但不允许对其解引用(即解引用是未定义的)。......
  • C++标准库笔记:13.4.3 Stream状态与布尔条件测试
    流条件测试inta=0;while((std::cin>>a)){cout<<a<<endl;}以上代码得以使用std::cin来做条件测试,是因为Stream在类ios_base内定义了两个可用于布尔表达式的函......
  • c++标准库笔记:13.4.4 Stream的状态和异常
    设置触发异常Stream缺省的情况下不抛出异常,但可由成员函数exceptions来设置这种行为。exceptions有两种形式:获取引发异常的标志(不带参数)设置引发异常的标志(带参数)//Thisme......
  • 注意!!一定要谨慎使用c/c++原生指针
    主要是顶层逻辑中引用了一个指针,而在业务逻辑中将此指针删除了。这种在代码量很少的情况下,很容易被发现,但是代码量多了,逻辑多了的时候,想一下子定位到问题所在,就没那么容易了......
  • C++11 STL 完美转发
    http://m.biancheng.net/view/7868.htmlC++11标准为C++引入右值引用语法的同时,还解决了一个C++98/03标准长期存在的短板,即使用简单的方式即可在函数模板中实现参数......
  • C++——map设置两个value的方法
    方法:方法一:​​std::multimap<string,pair<int,int>>mulmap;​​方法二:​​std::multimap<string,vector<int>>mulmap;​​相关用法:​​C++——pair用法​​......
  • C++——引用&的功能及与指针*的区别
    C++——引用&的功能及与指针*的区别​​一、引用&的功能​​​​二、与指针*的区别​​​​三、真实案例​​​​参考资料​​一、引用&的功能用于函数传递参数,实现改变某个......
  • Vscode——windows系统搭建C/C++开发环境
    VSCode——windows系统搭建C/C++开发环境​​一、搭建C开发环境​​​​1.安装MinGW​​​​2.配置文件​​​​二、搭建C++开发环境​​​​1.安装MinGW​​​​2.配置文......