主页 > 开源代码  > 

在Unity中用简单工厂模式模拟原神中的元素反应

在Unity中用简单工厂模式模拟原神中的元素反应
1. 第一步创建3个脚本Factory(反应工厂),Reactions(具体反应),FactoryText(测试反应的脚本)  2.编写工厂脚本 using UnityEngine; // 定义一个元素反应的接口,所有具体的元素反应类都需要实现这个接口 // 接口写在Factory命名空间外部,方便其他类实现 public interface Ireaction { void react(); }; public class Factory : MonoBehaviour { // 单例模式 public static Factory instance; void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } } // 定义一个 TransportFactory 类,用于根据传入的元素类型获取对应的元素反应类 public class TransportFactory { public static Ireaction GetTransport(string type1, string type2) { switch (type1.ToLower(), type2.ToLower()) // 将传入的元素类型转换为小写,以便进行不区分大小写的比较 { case ("水", "草"): case ("草", "水"): return new combustion(); case ("水", "火"): case ("火", "水"): return new evaporation(); case ("水", "冰"): case ("冰", "水"): return new Freeze(); case ("火", "冰"): case ("冰", "火"): return new Melting(); default: Debug.Log("无法反应"); return null; } } } 3.编写具体的反应类 

 不同的反应继承Ireaction接口并实现反应方法。

using UnityEngine; public class combustion : Ireaction { public void react() { Debug.Log("燃烧"); } } public class evaporation : Ireaction { public void react() { Debug.Log("蒸发"); } } public class Freeze : Ireaction { public void react() { Debug.Log("冻结"); } } public class Melting : Ireaction { public void react() { Debug.Log("融化"); } } 4.编写测试脚本 using UnityEngine; public class FactoryText : MonoBehaviour { void Update() { //按下空格 if (Input.GetKeyDown(KeyCode.Space)) { //通过工厂模式得到具体要执行的反应 var x = TransportFactory.GetTransport("水", "草"); //如果反应不为空就执行反应 if (x != null) { x.react(); } } //按下A if (Input.GetKeyDown(KeyCode.A)) { var x = TransportFactory.GetTransport("水", "火"); if (x != null) { x.react(); } } //按下S if (Input.GetKeyDown(KeyCode.S)) { var x = TransportFactory.GetTransport("火", "水"); if (x != null) { x.react(); } } } } 5.创建一个空对象并将测试脚本挂到空对象上

6.运行游戏 

然后依次按下空格,A,S。就看到具体的反应被打印出来了。

本篇文章提供了元素反应的具体思路,当然具体效果还需要在游戏中进行处理 。希望这篇文章对你有帮助。

标签:

在Unity中用简单工厂模式模拟原神中的元素反应由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“在Unity中用简单工厂模式模拟原神中的元素反应