1、打开Unity,新建一个空工程,具体如下图
2、在工程中,新建几个脚本,然后双击打开,具体如下图
3、脚本的具体代码和代码内容如下图
4、Operation 脚本具体内容如下:usingSystem.Collections;usingSystem.Collectio荏鱿胫协ns.Generic;usingUnityEngine;///<summary>///计算器操作运算符的基类///</summary>publicclassOperation{//参数 privatedouble_numberA=0; privatedouble_numberB=0;publicdoubleNumberA{ get{ return_numberA; } set{ _numberA=value; } } publicdoubleNumberB{ get{ return_numberB; } set{ _numberB=value; } }///<summary> ///Getstheresult,结果运算虚函数. ///</summary> ///<returns>Theresult.</returns> publicvirtualdoubleGetResult(){ doubleresult=0; returnresult; }}
5、OperationAdd脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;///<summary>///加法运算///</summary>publicclassOperationAdd:Operation{///<summary> ///Getstheresult,结果运算重载函数. ///</summary> ///<returns>Theresult.</returns> publicoverridedoubleGetResult(){doubleresult=0; result=NumberA+NumberB;returnresult; }}
6、OperationSub脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;///<summary>///减法运算.///</summary>publicclassOperationSub:Operation{///<summary> ///Getstheresult,结果运算重载函数. ///</summary> ///<returns>Theresult.</returns> publicoverridedoubleGetResult(){doubleresult=0; result=NumberA-NumberB;returnresult; }}
7、OperationMul脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;///<summary>///乘法运算///</summary>publicclassOperationMul:Operation{///<summary> ///Getstheresult,结果运算重载函数. ///</summary> ///<returns>Theresult.</returns> publicoverridedoubleGetResult(){doubleresult=0; result=NumberA*NumberB;returnresult; }}
8、OperationDiv脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingSystem;///<summary>///除法运算///</summary>publicclassOperationDiv:Operation{///<summary> ///Getstheresult,结果运算重载函数. ///</summary> ///<returns>Theresult.</returns> publicoverridedoubleGetResult(){doubleresult=0;if(NumberB==0) thrownewException("除数不能为0"); result=NumberA/NumberB;returnresult; }}
9、SimpleOperationFactory脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Gener足毂忍珩ic;usingUnityEngine;///<summary>///Simpleoperationfactory.///</summary>publicclassSimpleOperationFactory{///<summary> ///Createstheoperate. ///</summary> ///<returns>Theoperate.</returns> ///<paramname="operate">Operate.</param> publicstaticOperationCreateOperate(stringoperate){ Operationoper=null;switch(operate){ case"+": oper=newOperationAdd(); break;case"-": oper=newOperationSub(); break;case"*": oper=newOperationMul(); break;case"/": oper=newOperationDiv(); break; }returnoper; }}
10、Test脚本具体内容如下:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassTest:MonoBehaviour{//Usethisforinitialization voidStart(){Operationoper=newOperation();oper=SimpleOperationFactory.CreateOperate("*"); oper.NumberA=2; oper.NumberB=6; doubleresult=oper.GetResult();Debug.Log("2*6="+result); } //Updateiscalledonceperframe voidUpdate(){ }}
11、脚本编译正确,回到Unity界面,在场景中新建一个 GameObject,并把 Test 脚本赋给 GameObject,具体如下图
12、运行场景,控制台 Console 打印如下图
13、到此,《Unity 设计模式之 简单工厂模式的实例介绍》讲解结束,谢谢