Unity 设计模式之 组合模式的实例介绍

 时间:2024-10-30 17:25:53

1、打开Unity,新建一个空工程,具体如下图

Unity 设计模式之 组合模式的实例介绍

2、在工程中,新建几个脚本,然后双击打开,具体如下图

Unity 设计模式之 组合模式的实例介绍

3、脚本的具体代码和代码说明如下图

Unity 设计模式之 组合模式的实例介绍
Unity 设计模式之 组合模式的实例介绍
Unity 设计模式之 组合模式的实例介绍
Unity 设计模式之 组合模式的实例介绍

4、CompanyComponent 脚本具体内容如下:publicabstractclassCompany潮贾篡绐Component{protectedstringname;publicCompanyComponent(stringname){ this.name=name; }publicabstractvoidAdd(CompanyComponentcompany); publicabstractvoidRemove(CompanyComponentcompany); publicabstractvoidDisplay(intdepth); publicabstractvoidLineOfDuty();}

5、ConcreteCompanyCompo衡痕贤伎site脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingSystem;publicclassConcreteCompanyComposite:CompanyComponent{privateList<CompanyComponent>children=newList<CompanyComponent>();publicConcreteCompanyComposite(stringname):base(name){ }publicoverridevoidAdd(CompanyComponentcompany) { children.Add(company); }publicoverridevoidRemove(CompanyComponentcompany) { children.Remove(company); }publicoverridevoidDisplay(intdepth) { Debug.Log(newString('-',depth)+name);foreach(CompanyComponentcomponentinchildren){ component.Display(depth+2); } }publicoverridevoidLineOfDuty() { foreach(CompanyComponentcomponentinchildren){ component.LineOfDuty(); } }}

6、HRDepartmntLeaf脚本具体内容如下:u衡痕贤伎singUnityEngine;usingSystem;publicclassHRDepartmntLeaf:CompanyComponent{publicHRDepartmntLeaf(stringname):base(name){}publicoverridevoidAdd(CompanyComponentcompany) { }publicoverridevoidRemove(CompanyComponentcompany) { }publicoverridevoidDisplay(intdepth) { Debug.Log(newString('-',depth)+name); }publicoverridevoidLineOfDuty() { Debug.Log(name+"员工招聘培训管理"); }}

7、Test脚本具体内容如下:usingUnityEngine;publicc盟敢势袂lassTest:MonoBehaviour{//Usethisforinitialization voidStart(){ ConcreteCompanyCompositeroot=newConcreteCompanyComposite("总公司"); root.Add(newHRDepartmntLeaf("总公司人力资源部"));ConcreteCompanyCompositecompany1=newConcreteCompanyComposite("分公司1"); company1.Add(newHRDepartmntLeaf("分公司1人力资源部")); root.Add(company1);ConcreteCompanyCompositecompany2=newConcreteCompanyComposite("分公司2"); company2.Add(newHRDepartmntLeaf("分公司2人力资源部")); root.Add(company2);ConcreteCompanyCompositecompany3=newConcreteCompanyComposite("分公司3"); company3.Add(newHRDepartmntLeaf("分公司3人力资源部")); company2.Add(company3);Debug.Log("\n公司结构图"); root.Display(1);Debug.Log("\n公司职责"); root.LineOfDuty(); } }

8、脚本编译正确,回到Unity界面,在场景中新建一个 GameObject,并把 Test 脚本赋给 GameObject,具体如下图

Unity 设计模式之 组合模式的实例介绍

9、运行场景,控制台 Console 打印如下图

Unity 设计模式之 组合模式的实例介绍

10、到此,《Unity 设计模式之 组合模式的实例介绍》讲解结束,谢谢

  • php怎样指定条件查询mysql数据
  • 教大家使用Axure制作时间倒计时效果
  • 如何修改select的样式
  • JS怎么改变提示内容字体样式
  • Axure如何制作后台产品导航栏
  • 热门搜索
    五年级上册英语手抄报 十二生肖手抄报 垃圾不落地手抄报 保护环境的手抄报内容 文字手抄报 万圣节手抄报内容 小学生行为规范手抄报 小学五年级手抄报 三年级下册手抄报大全 讲文明讲礼仪手抄报