unity使用二段构建的方式动态加载模型

发布时间:2021-11-03

概述

经历过各种UNITY的游戏开发项目,分享一下最喜欢的一种在游戏中创建模型的方式,这是从以前开发cocos2dx的时候就一直喜欢的方式,把new分配内存空间和init初始化两个过程分开。解压文件后把CreateModel.unitypackage拖拽如Unity中即可

详细

  • 运行效果

lll.gif

  • 实现过程

这里主要是为了说明二段构造模式

public class Model : MonoBehaviour
{
    public static Model Create(string resPath)
    {
        GameObject obj = new GameObject("Model");
        Model model = obj.AddComponent<Model>();
        if(obj && model && model.Init(resPath))
        {

            return model;
        }
        return null;
    }

    bool Init(string resPath)
    {
        GameObject obj = ResourceManager.Single.LoadOjb(resPath);
        if(obj)
        {
            obj.transform.SetParent(transform);
            obj.GetComponent<Transform>().localPosition = new Vector3(0, 0, 0);

            return true;
        }
        return false;
    }
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

使用Resources.Load加载模型资源:

public GameObject LoadOjb(string objPath)
    {
        GameObject Prefab = (GameObject)Resources.Load(objPath);
        return Instantiate(Prefab);
    }
  • 项目结构图

image.png

本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码