找回密码
 注册帐号

扫一扫,访问微社区

Unity UE4 C++算法生成城市建筑群

28
回复
5917
查看
[ 复制链接 ]
6蛮牛粉丝
1455/1500
排名
5231
昨日变化

11

主题

230

帖子

1455

积分

Rank: 6Rank: 6Rank: 6

UID
146965
好友
1
蛮牛币
1097
威望
0
注册时间
2016-4-27
在线时间
948 小时
最后登录
2021-10-15
2021-1-26 11:53:22 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
主建筑 周边建筑 道路等
pic0.png
pic1_wps图片.png
pictop.png

代码.txt

4.69 KB, 下载次数: 573

回复

使用道具 举报

5熟悉之中
527/1000
排名
8564
昨日变化

1

主题

46

帖子

527

积分

Rank: 5Rank: 5

UID
304657
好友
0
蛮牛币
6815
威望
0
注册时间
2018-11-14
在线时间
340 小时
最后登录
2021-9-18
2021-1-26 14:00:40 显示全部楼层
大佬,牛批
回复

使用道具 举报

排名
338
昨日变化

33

主题

565

帖子

4943

积分

Rank: 9Rank: 9Rank: 9

UID
133683
好友
59
蛮牛币
13732
威望
0
注册时间
2016-1-6
在线时间
1312 小时
最后登录
2021-8-8

专栏作家蛮牛译员活力之星

QQ
2021-1-26 21:05:30 显示全部楼层
[mw_shl_code=cpptrue]// Fill out your copyright notice in the Deion page of Project Settings.


#include \"GamePController.h\"
#include \"Engine/Engine.h\"
#include \"UObject/ConstructorHelpers.h\"
#include \"IndustrialPark/Actors/Actor_Building.h\"
#include \"IndustrialPark/Util/DataFunc.h\"
#include \"Components/SceneComponent.h\"
#include \"UObject/ConstructorHelpers.h\"
AGamePController::AGamePController() {
   //

       
}

void AGamePController::BeginPlay()
{
        Super::BeginPlay();

        CreateOutSideBuilding();
}


void AGamePController::CreateOutSideBuilding() {
        // SpawnActor<AActor_Building>(FVector::ZeroVector FRotator::ZeroRotator NULL NULL true);
        UWorld* const World = GetWorld(); // get a reference to the world  

        //获取蓝图对象
                FString PathRoadCenter=\"Blueprint\'/Game/Blueprints/Actors/RoadCenter.RoadCenter_C\'\";
                FString PathRoadRow = \"Blueprint\'/Game/Blueprints/Actors/RoadSigleRow.RoadSigleRow_C\'\";
                FString PathRoadColum = \"Blueprint\'/Game/Blueprints/Actors/RoadSigleColum.RoadSigleColum_C\'\";
                TSubclassOf<AActor> BlueprintRow = TSoftClassPtr<AActor>(PathRoadRow).LoadSynchronous();
                TSubclassOf<AActor> BlueprintColum = TSoftClassPtr<AActor>(PathRoadColum).LoadSynchronous();
                TSubclassOf<AActor> BlueprintCenter = TSoftClassPtr<AActor>(PathRoadCenter).LoadSynchronous();
        if (World)
        {
                //格子 100*100
                int gridCount = 100;
                //每个格子间隔200
                float space = 200.0f;

                //整体建筑中间留白格子数量4*4
                int blankLen = 10;
                int blankMin = (gridCount - blankLen) / 2;
                int blankMax = blankMin + blankLen;
                //道路占格子
                int roadLen = 1;
                //道路间隔格子
                int roadBetween = 20;


                FActorSpawnParameters Params;//持有者
                Params.Owner = this;//设置为当前类
                for (int i = 0; i < gridCount; i++) {
                        for (int j = 0; j < gridCount; j++)
                        {
                                bool inCenter = (j >= blankMin && j <= blankMax) && (i >= blankMin && i <= blankMax);
                                bool inRoad = (j % roadBetween < roadLen || i % roadBetween < roadLen);
                                if (!inCenter && !inRoad)
                                {
                                        FVector Vc(space*i space*j 0.0f);
                                        Vc -= FVector(space*gridCount / 2 space*gridCount / 2 0);
                                        AActor_Building*ab = World->SpawnActor<AActor_Building>(ActorBuilding Vc FRotator::ZeroRotator Params);//生成Actor在Hit点上
                                        ab->SetMeshRender(UDataFunc::ReadData());
                                        ABs.Add(ab);
                                }

                                else if (inRoad&&!inCenter) {
                                        bool row = j % roadBetween < roadLen;
                                        bool colum = i % roadBetween < roadLen;
                                        bool both = row * colum;

                                        if (j % roadBetween < roadLen&&!both)
                                        {
                                                FVector Vc(space*i space*j 0.0f);
                                                Vc -= FVector(space*gridCount / 2 space*gridCount / 2 0);
                                                AActor* NewActor3 = World->SpawnActor<AActor>(BlueprintRow Vc FRotator::ZeroRotator Params);
                                        }
                                        if (i % roadBetween < roadLen) {
                                                FVector Vc(space*i space*j 0.0f);
                                                Vc -= FVector(space*gridCount / 2 space*gridCount / 2 0);
                                                AActor* NewActor3 = World->SpawnActor<AActor>(BlueprintColum Vc FRotator::ZeroRotator Params);
                                        }
                                        if (both) {
                                                FVector Vc(space*i space*j 0.0f);
                                                Vc -= FVector(space*gridCount / 2 space*gridCount / 2 0);
                                                AActor* NewActor3 = World->SpawnActor<AActor>(BlueprintCenter Vc FRotator::ZeroRotator Params);
                                        }

                                }
                                else if (inCenter) {
                                        //\"Blueprint\'/Game/Blueprints/Buildings/BuildCenter_0.BuildCenter_0\'\"
                                        int dex = FMath::RandRange(0 12);
                                        FString frontStr = \"Blueprint\'/Game/Blueprints/Buildings/\";
                                        FString fName = \"BuildCenter_\" + FString::FromInt(dex) + \".\" + \"BuildCenter_\" + FString::FromInt(dex) + \"_C\'\";

                                        FString TatolPath = frontStr + fName;
                                        TSubclassOf<AActor> BuildCenter = TSoftClassPtr<AActor>(TatolPath).LoadSynchronous();
                                        FVector Vc(space*i space*j 0.0f);
                                        Vc -= FVector(space*gridCount / 2 space*gridCount / 2 0);
                                       
                                        int rindex = FMath::RandRange(0 3);
                                        FRotator Frotate(0 90 0);
                                        AActor* NewActor3 = World->SpawnActor<AActor>(BuildCenter Vc Frotate*rindex Params);
                                }

                        }
                }
                UE_LOG(LogTemp Warning TEXT(\"World\"));
        }
}



FString AGamePController::ReadDate() {
        UObject *UObj = StaticLoadObject(UDataTable::StaticClass() NULL TEXT(\"DataTable\'/Game/Blueprints/Info/Build_DataTable.Build_DataTable\'\"));
        UDataTable *BuildInfo = Cast<UDataTable>(UObj);
        int dex = FMath::RandRange(1  34);
        FString FFString = \"S\"+ FString::FromInt(dex);// FString::SanitizeFloat
   //UE_LOG(LogTemp Warning TEXT(FText::FromString(FFString)));
        FBuildingInfo *Row = BuildInfo->FindRow<FBuildingInfo>(FName(*FFString) TEXT(\"LookUpCBuildInfo\"));
        if (Row) {       
                //GEngine->AddOnScreenDebugMessage(INDEX_NONE 5.0f FColor::Green Row->BuildingName);
                return Row->BuildingName;
        }
        return \"\";
}
[/mw_shl_code]
回复 支持 反对

使用道具 举报

7日久生情
1927/5000
排名
3554
昨日变化

1

主题

462

帖子

1927

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
203671
好友
1
蛮牛币
3958
威望
0
注册时间
2017-1-20
在线时间
1054 小时
最后登录
2021-10-25
2021-1-27 09:18:39 显示全部楼层
666666666666666666
回复 支持 反对

使用道具 举报

8常驻蛮牛
5033/10000
排名
10703
昨日变化

0

主题

2093

帖子

5033

积分

Rank: 8Rank: 8

UID
301976
好友
1
蛮牛币
4629
威望
0
注册时间
2018-10-31
在线时间
2842 小时
最后登录
2021-10-26
2021-1-27 11:52:02 显示全部楼层
可以的  
回复 支持 反对

使用道具 举报

7日久生情
1943/5000
排名
824
昨日变化

2

主题

181

帖子

1943

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
5714
好友
0
蛮牛币
4002
威望
0
注册时间
2013-10-15
在线时间
578 小时
最后登录
2021-6-9
2021-1-27 13:57:10 显示全部楼层
大佬,厉害
回复

使用道具 举报

7日久生情
4522/5000
排名
4087
昨日变化

0

主题

3365

帖子

4522

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蛮牛币
3765
威望
0
注册时间
2017-11-16
在线时间
795 小时
最后登录
2021-10-25
2021-1-27 15:38:29 显示全部楼层
6666666666666666666666666
回复 支持 反对

使用道具 举报

9以坛为家
12861/50000
排名
1656
昨日变化

0

主题

8597

帖子

1万

积分

Rank: 9Rank: 9Rank: 9

UID
185339
好友
1
蛮牛币
16
威望
0
注册时间
2016-11-20
在线时间
3484 小时
最后登录
2021-10-26
2021-1-28 09:06:25 显示全部楼层
{:104:}{:104:}
回复

使用道具 举报

7日久生情
4553/5000
排名
10814
昨日变化

3

主题

3309

帖子

4553

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
310426
好友
0
蛮牛币
5834
威望
0
注册时间
2019-1-2
在线时间
1145 小时
最后登录
2021-10-26
2021-1-29 08:47:20 显示全部楼层
Unity UE4 C++算法生成城市建筑群
回复 支持 反对

使用道具 举报

0

主题

5

帖子

6

积分

Rank: 1

UID
133441
好友
0
蛮牛币
13
威望
0
注册时间
2016-1-4
在线时间
1 小时
最后登录
2021-2-8
2021-2-8 11:52:32 显示全部楼层
牛的一批
回复

使用道具 举报

0

主题

4

帖子

6

积分

Rank: 1

UID
124644
好友
0
蛮牛币
4
威望
0
注册时间
2015-10-5
在线时间
2 小时
最后登录
2021-2-16
2021-2-16 12:34:55 显示全部楼层
这个东西不错啊!
回复

使用道具 举报

5熟悉之中
959/1000
排名
26987
昨日变化

2

主题

96

帖子

959

积分

Rank: 5Rank: 5

UID
221190
好友
0
蛮牛币
1254
威望
0
注册时间
2017-5-8
在线时间
847 小时
最后登录
2021-10-26
2021-2-20 10:52:21 显示全部楼层
巨佬,牛!!!!!!
回复

使用道具 举报

5熟悉之中
954/1000

1

主题

53

帖子

954

积分

Rank: 5Rank: 5

UID
343035
好友
3
蛮牛币
647
威望
0
注册时间
2020-3-26
在线时间
900 小时
最后登录
2021-10-25
2021-3-1 17:55:13 显示全部楼层
6666666dingguagua
回复 支持 反对

使用道具 举报

3偶尔光临
233/300
排名
16952
昨日变化

0

主题

87

帖子

233

积分

Rank: 3Rank: 3Rank: 3

UID
122533
好友
0
蛮牛币
12
威望
0
注册时间
2015-9-14
在线时间
106 小时
最后登录
2021-4-5
QQ
2021-3-18 14:07:58 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 支持 反对

使用道具 举报

7日久生情
4522/5000
排名
4087
昨日变化

0

主题

3365

帖子

4522

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
254705
好友
1
蛮牛币
3765
威望
0
注册时间
2017-11-16
在线时间
795 小时
最后登录
2021-10-25
2021-4-2 09:08:55 显示全部楼层
66666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关注游戏蛮牛公众号送vip