当前位置: 首页 > news >正文

郑州做网站汉狮网络网站制作 网站建设

郑州做网站汉狮网络,网站制作 网站建设,网站规划设计流程,江苏水利厅建设网站首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用工厂方法模式 创建 飞船模型, 首先资源商店下载飞船模型&#xff0c…

首先创建一个项目,

在这个初始界面我们需要做一些准备工作,

建基础通用文件夹,

创建一个Plane 重置后 缩放100倍 加一个颜色,

任务:使用工厂方法模式 创建 飞船模型,

首先资源商店下载飞船模型,

拖拽三种类型飞船模型至unity场景中,

将三种模型完全解压缩后放进自己的Prefabs包,

在unity场景中删除三个飞船模型,

接下来编写代码:

1.创建脚本【抽象产品类】

双击AbsShip.cs编写代码:

using UnityEngine;
public abstract class AbsShip{
    public GameObject Ship { get; set; }
    public abstract void Load();
}
2.创建脚本【具体产品类】

双击ShipA.cs编写代码:

using UnityEngine;
public class ShipA : AbsShip{
    public override void Load(){
        Ship = Resources.Load<GameObject>("Prefabs/ship1");
        if (Ship != null)
            Ship = GameObject.Instantiate(Ship, new Vector3(0, 0, 0), Quaternion.identity);
    }
}
3.创建脚本【工厂方法类】

public abstract class AbsFactory{
    public abstract AbsShip GetShip(string type);
}
public class Factory : AbsFactory{
    public override AbsShip GetShip(string type){
        AbsShip ship;
        switch (type){
            case "shipA":
                ship = new ShipA();
                break;
            default:
                ship = null;
                break;
        }
        return ship;
    }
}

4.创建脚本【主类】

using UnityEngine;
public class Main : MonoBehaviour{
    public AbsShip ship;
    public string type;
    void Start(){
        AbsFactory shipFactory = new Factory();
        ship = shipFactory.GetShip("shipA"); 
        if (ship != null)
            ship.Load(); 
        else
            Debug.LogError("空引用");
    }
}
回到unity中修改预制体文件名为ship1

将Main类挂载在地面Plane上,

运行项目即可生成ship1飞船,

如果需要拓展,添加ShipB具体产品类,

using UnityEngine;
public class ShipB : AbsShip{
    public override void Load(){
        Ship = Resources.Load<GameObject>("Prefabs/ship2");
        if (Ship != null)
            Ship = GameObject.Instantiate(Ship, new Vector3(3, 0, 0), Quaternion.identity);
    }
}

只需修改工厂类,

public abstract class AbsFactory{
    public abstract AbsShip GetShip(string type);
}
public class Factory : AbsFactory{
    public override AbsShip GetShip(string type){
        AbsShip ship;
        switch (type){
            case "shipA":
                ship = new ShipA();
                break;
            case "shipB":
                ship = new ShipB();
                break;
            default:
                ship = null;
                break;
        }
        return ship;
    }
}

运行项目即可完成,

End.

http://www.hengruixuexiao.com/news/27489.html

相关文章:

  • 做任务得得q币的网站百度网站建设
  • 坪地做网站做博客的seo技巧
  • 电话做网站的推广最新小组排名
  • 汕头市区平台seo什么意思
  • 手机网站的优势广州网站优化服务商
  • 成都市广告制作公司seo零基础培训
  • 沧州做家装的公司网站广州新闻头条最新消息
  • 百度推广免费送网站互联网平台推广怎么做
  • 一般做兼职在哪个网站上海网站优化
  • 电子商务有限公司经营范围优化网站seo策略
  • 海淀网站建设三门峡网站seo
  • 产品展示型网站模板搜索引擎关键词排名
  • 简述网站建设过程长沙seo优化服务
  • 快站建站怎么收费的seo快速排名软件推荐
  • 网站后台怎样推荐图片数字营销策划
  • 网站平台建设基本情况seo网站推广
  • 虚拟主机可以做视频网站嘛seo网站优化推荐
  • 如何快速新建一个网站如何制作网站赚钱
  • 网站建设公司下载大连seo顾问
  • 昆明好的网站制作seo是什么的
  • 进行网站建设有哪些重要意义最近新闻头条
  • 邹城网站建设品牌营销案例分析
  • 网站建设分析报告12345浏览器
  • 有没有做底单的网站关键词优化怎么操作
  • 网站开发中数据库的功能亚马逊关键词优化软件
  • 网站建设的流程怎么写优化seo网站
  • wordpress获取网址seo关键词的选择步骤
  • wordpress 购物网站seo推广优化
  • html做网站公告app推广接单网
  • wordpress如何设置url重写青岛网站关键词优化公司