找回密码
 注册帐号

扫一扫,访问微社区

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

12
回复
2267
查看
[ 复制链接 ]
6蛮牛粉丝
1330/1500
排名
5235
昨日变化

11

主题

220

帖子

1330

积分

Rank: 6Rank: 6Rank: 6

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

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

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

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

代码.txt

4.69 KB, 下载次数: 296

回复

使用道具 举报

4四处流浪
440/500
排名
8567
昨日变化

1

主题

45

帖子

440

积分

Rank: 4

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

使用道具 举报

排名
342
昨日变化

33

主题

564

帖子

4873

积分

Rank: 9Rank: 9Rank: 9

UID
133683
好友
59
蛮牛币
13631
威望
0
注册时间
2016-1-6
在线时间
1243 小时
最后登录
2021-3-4

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

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日久生情
1577/5000
排名
3557
昨日变化

1

主题

428

帖子

1577

积分

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

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

使用道具 举报

7日久生情
3621/5000
排名
10706
昨日变化

0

主题

1610

帖子

3621

积分

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

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

使用道具 举报

7日久生情
1885/5000
排名
828
昨日变化

2

主题

178

帖子

1885

积分

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

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

使用道具 举报

7日久生情
3581/5000
排名
4091
昨日变化

0

主题

2596

帖子

3581

积分

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

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

使用道具 举报

9以坛为家
10084/50000
排名
1660
昨日变化

0

主题

6898

帖子

1万

积分

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

7日久生情
3518/5000
排名
10817
昨日变化

3

主题

2579

帖子

3518

积分

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

UID
310426
好友
0
蛮牛币
4578
威望
0
注册时间
2019-1-2
在线时间
840 小时
最后登录
2021-3-4
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熟悉之中
636/1000
排名
26990
昨日变化

2

主题

84

帖子

636

积分

Rank: 5Rank: 5

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

使用道具 举报

3偶尔光临
227/300

0

主题

12

帖子

227

积分

Rank: 3Rank: 3Rank: 3

UID
343035
好友
1
蛮牛币
246
威望
0
注册时间
2020-3-26
在线时间
215 小时
最后登录
2021-3-3
3 天前 显示全部楼层
6666666dingguagua
回复 支持 反对

使用道具 举报

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

本版积分规则