Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
Prefab的生成
heng发起了问答2017-06-21
7
回复
515
浏览

老师,

 Object tempPrefab = UnityEditor.PrefabUtility.CreateEmptyPrefab(enptypath);//创建空预制

        tempPrefab = UnityEditor.PrefabUtility.ReplacePrefab(OBj, tempPrefab);//让OBj,替换掉空预制

我用这个方法动态创建预制体,可是,不让我发布,说UnityEditor不让发布,那么怎么办呢??还有什么方法能动态创建预制的,或者有什么办法能使用这个方法,实在是郁闷了

所有回复
  • siki 2017-06-21

    把这些代码所在的类放在Editor文件夹下

    这属于跟编辑器有关的类,必须放在Editor文件夹下

    在Editor文件夹下的类只会在Unity下面运行,当你发布出来的时候 apk或者别的平台,editor下面的代码不会被打包进入,因为editor下面的东西只会在unity编辑环境下运行和使用

    • heng 2017-06-21

      老师,我就是想动态把场景中的游戏体存在文件夹下,变成预制体,有什么方法没??

      (0) 回复
    • siki 2017-06-21

      回复 @ heng: 可以的没问题,你的代码就没问题, 把代码放在Editor文件夹下 在Asset下创建一个Editor文件夹,名字不能换 Editor大小写不能写错

      (0) 回复
    • heng 2017-06-22

      回复 @ siki: 但是我发布到PC后,这个Editor下面的代码是不会被打包的吧,所以用不了,我就是想发布出来后运行了可以动态把游戏体保存成Prefab,然后可以被使用,

      (0) 回复
    • sdhexu 2017-06-22

      回复 @ heng:你动态保存成prefab有毛用呀,prefab只是在编辑的时候叫做prefab,预制体也是在编辑的时候才有意义,发布之后,都是游戏物体,没有prefab这么一说,只有未加载的资源、已经加载的资源、已经加载并且实例化的资源......你想继续使用prefab的意图,可能是为了再次实例化他方便一些吧??可是, 原本的物体是哪里来的捏??你原本的物体都能实例化,那么再次实例化肯定不是问题。
      我知道有一种方法,你可以把你的物体放在Resources下面,然后再代码中动态的Load它。。事实上,如果你的物体不是很复杂,你用代码直接生成也是可以的。

      (0) 回复
    • heng 2017-06-22

      回复 @ sdhexu: 就因为复杂,我才想这么弄得,看来想法是错的,

      (0) 回复
    还有0条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-06-22

    sdhexu说的没错

    Prefab是只有在Unity下面使用的,如果你想在发布出来的游戏上保存某个物体的话,只能保存它的目录结构,下次再重新组装生成

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!