找回密码
 注册帐号

扫一扫,访问微社区

Unity3D 怎么实现在运行的时候建造模型

19
回复
1179
查看
[ 复制链接 ]
2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
2018-8-6 11:13:37 显示全部楼层 阅读模式
5蛮牛币
求助求助啊!!那个朋友有做过相关方面的开发的能不能写一段代码,或者讲解一下思路,真的没有思路啊
http://www.3dmomoda.com/gallery/index#
这个链接是我找到的用做的编辑器一类的东西,我就想知道他这个建造墙壁是怎么实现的
QQ截图20180806111052.png QQ截图201802806111052.png QQ截图20180806111236.png

没有思路啊。。。

回复

使用道具 举报

7日久生情
2054/5000
排名
1058
昨日变化

13

主题

274

帖子

2054

积分

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

UID
99182
好友
0
蛮牛币
10141
威望
0
注册时间
2015-5-10
在线时间
719 小时
最后登录
2019-5-22
2018-8-6 11:13:38 显示全部楼层
花火 发表于 2018-8-6 17:10
前辈,没思路啊

拉伸效果不过就是判断起始点到当前点的距离,实例化出几个预制体而已,用队列queue存储实例化出来的柱子,距离变大就增加,距离减小就删除。。视频的栅栏其实就是一个柱子的预制体,连续实例化制作的。
回复

使用道具 举报

7日久生情
2054/5000
排名
1058
昨日变化

13

主题

274

帖子

2054

积分

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

UID
99182
好友
0
蛮牛币
10141
威望
0
注册时间
2015-5-10
在线时间
719 小时
最后登录
2019-5-22
2018-8-6 12:01:54 显示全部楼层
网上一大堆建造插件。。。简单思路就是把模型都做成预制体,用射线检测到地面,利用这个hit.point的坐标,把预制体放上去就好啦。
回复

使用道具 举报

7日久生情
2740/5000
排名
2230
昨日变化

1

主题

1757

帖子

2740

积分

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

UID
119154
好友
0
蛮牛币
2883
威望
0
注册时间
2015-8-21
在线时间
352 小时
最后登录
2019-5-22
2018-8-6 13:23:23 显示全部楼层
第一步:将建筑物做成Prefabs
第二步:写旋转,移动,代码
第三步:写空间定位代码
第四步:实现功能
可以参考一下3DMeshBuilding这个插件
回复

使用道具 举报

5熟悉之中
629/1000
排名
5576
昨日变化

7

主题

183

帖子

629

积分

Rank: 5Rank: 5

UID
288872
好友
3
蛮牛币
1213
威望
0
注册时间
2018-7-7
在线时间
185 小时
最后登录
2019-5-22
QQ
2018-8-6 15:10:04 显示全部楼层
    public GameObject[] obj;
    public int suiJi = 0;
    private float timer=0;
    void Update () {
        ShengCheng();
    }
    void ShengCheng()
    {
        timer += Time.deltaTime;
        while (timer >= 3)
        {
            suiJi = Random.Range(0, obj.Length);
            GameObject obj = Instantiate(LiWuShu[suiJi],transform.position, transform.rotation);
            timer = 0;
        }
    }
把你需要的东西全都拖到数组里,然后随机生成
回复

使用道具 举报

5熟悉之中
629/1000
排名
5576
昨日变化

7

主题

183

帖子

629

积分

Rank: 5Rank: 5

UID
288872
好友
3
蛮牛币
1213
威望
0
注册时间
2018-7-7
在线时间
185 小时
最后登录
2019-5-22
QQ
2018-8-6 15:11:24 显示全部楼层
上次代码有点小错误,这次是对的
   public GameObject[] LiWuShu;
    public int suiJi = 0;
    public static ShengChengLiWu Instance;
   
    private float timer=0;

        void Awake () {
        Instance = this;
    }

    //void Start()
    //{

    //}

    void Update () {
        ShengCheng();
    }
    void ShengCheng()
    {
        timer += Time.deltaTime;
        while (timer >= 3)
        {
            suiJi = Random.Range(0, LiWuShu.Length);
            GameObject obj = Instantiate(LiWuShu[suiJi],transform.position, transform.rotation);
            timer = 0;
        }
    }
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-6 15:39:04 显示全部楼层
Kasug 发表于 2018-8-6 12:01
网上一大堆建造插件。。。简单思路就是把模型都做成预制体,用射线检测到地面,利用这个hit.point的坐标, ...

关键是它这个模型还要有拉伸的效果
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-6 15:40:26 显示全部楼层
boy840102 发表于 2018-8-6 13:23
第一步:将建筑物做成Prefabs
第二步:写旋转,移动,代码
第三步:写空间定位代码

有插件的链接吗,不胜感谢
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-6 15:43:20 显示全部楼层
BBoyLong 发表于 2018-8-6 15:11
上次代码有点小错误,这次是对的
   public GameObject[] LiWuShu;
    public int suiJi = 0;

你可能误会我的意思了,我的意思不是自动生成模型,而是要能在程序运行的时候点击某两个点然后生成墙壁,根据点生成面,根据面生成体
回复

使用道具 举报

7日久生情
2054/5000
排名
1058
昨日变化

13

主题

274

帖子

2054

积分

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

UID
99182
好友
0
蛮牛币
10141
威望
0
注册时间
2015-5-10
在线时间
719 小时
最后登录
2019-5-22
2018-8-6 15:48:28 显示全部楼层
花火 发表于 2018-8-6 15:39
关键是它这个模型还要有拉伸的效果

拉伸就是控制模型的Scale吧。。。放置模型之后操作物体的Transform呀
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-6 16:44:23 显示全部楼层

回复

使用道具 举报

7日久生情
3124/5000
排名
496
昨日变化

3

主题

282

帖子

3124

积分

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

UID
127556
好友
0
蛮牛币
7385
威望
0
注册时间
2015-11-2
在线时间
1308 小时
最后登录
2019-5-19
2018-8-6 17:05:02 显示全部楼层
没那么难,多观摩几遍视频,仔细想想。
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-6 17:10:25 显示全部楼层
ma1238906 发表于 2018-8-6 17:05
没那么难,多观摩几遍视频,仔细想想。

前辈,没思路啊
回复

使用道具 举报

2初来乍到
142/150
排名
13982
昨日变化

2

主题

25

帖子

142

积分

Rank: 2Rank: 2

UID
153696
好友
0
蛮牛币
242
威望
0
注册时间
2016-6-26
在线时间
55 小时
最后登录
2019-5-20
楼主 2018-8-7 09:09:54 显示全部楼层
Kasug 发表于 2018-8-6 18:07
拉伸效果不过就是判断起始点到当前点的距离,实例化出几个预制体而已,用队列queue存储实例化出来的柱子 ...

那实例化出来的预制体,坐标怎么设置呢
回复

使用道具 举报

7日久生情
2054/5000
排名
1058
昨日变化

13

主题

274

帖子

2054

积分

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

UID
99182
好友
0
蛮牛币
10141
威望
0
注册时间
2015-5-10
在线时间
719 小时
最后登录
2019-5-22
2018-8-7 09:21:14 显示全部楼层
花火 发表于 2018-8-7 09:09
那实例化出来的预制体,坐标怎么设置呢

获取到起始点和当前鼠标坐标,就是基本数学运算而已。
回复

使用道具 举报

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

本版积分规则