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

所有搜索引擎蜘蛛不来网站了廊坊关键词排名推广

所有搜索引擎蜘蛛不来网站了,廊坊关键词排名推广,直播app开发公司排名,泉州做企业网站策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;定义了一系列算法#xff0c;并将每种算法封装到独立的类中#xff0c;使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化#xff0c;客户端通过与这些策略对象进…策略模式Strategy Pattern是一种行为型设计模式定义了一系列算法并将每种算法封装到独立的类中使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化客户端通过与这些策略对象进行交互来执行不同的行为。 在策略模式中核心思想是将算法的定义和使用分离使得不同的策略算法可以灵活地切换符合面向对象设计中的开闭原则即对扩展开放、对修改关闭。 策略模式的结构 策略接口Strategy Interface定义所有策略的共同行为这通常是一个抽象类或接口。具体策略类Concrete Strategy实现策略接口的具体算法。上下文类Context Class维护对某个策略对象的引用并提供对客户端的接口允许客户端调用策略算法。 适用场景 避免使用难以维护的多重条件选择语句当策略中有较为复杂的数据结构或者算法不需要暴露在客户端或者其他时。 在 Unity 中使用 策略模式 在 Unity 中使用策略模式的一个典型应用场景是为游戏角色定义不同的移动方式例如走路、跑步、跳跃等。在游戏开发中不同的角色可能有不同的移动方式。通过策略模式我们可以将这些不同的移动逻辑封装到独立的策略类中并动态切换角色的移动方式。 1、通过策略模式实现角色的移动 (1) 定义策略接口  首先定义一个策略接口 IMoveStrategy它规定所有移动策略都必须实现一个 Move() 方法。 public interface IMoveStrategy {void Move(Transform characterTransform); } (2) 定义具体策略类  创建几个具体的移动策略类 WalkStrategy、RunStrategy 和 JumpStrategy分别实现不同的移动行为。 using UnityEngine;// 走路策略 public class WalkStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.forward * 2f * Time.deltaTime);Debug.Log(Character is walking.);} }// 跑步策略 public class RunStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.forward * 5f * Time.deltaTime);Debug.Log(Character is running.);} }// 跳跃策略 public class JumpStrategy : IMoveStrategy {public void Move(Transform characterTransform){characterTransform.Translate(Vector3.up * 5f * Time.deltaTime);Debug.Log(Character is jumping.);} } (3) 定义上下文类 Character 类作为上下文类负责维护当前的移动策略并提供方法来设置不同的移动策略和执行移动操作。 using UnityEngine;public class Character : MonoBehaviour {private IMoveStrategy moveStrategy;// 设置移动策略public void SetMoveStrategy(IMoveStrategy strategy){moveStrategy strategy;}// 执行移动public void PerformMove(){if (moveStrategy ! null){moveStrategy.Move(transform);}else{Debug.LogWarning(Move strategy not set!);}} } (4) 客户端代码 在 GameController 中我们实例化角色并动态设置和切换移动策略。 using UnityEngine;public class GameController : MonoBehaviour {private Character character;void Start(){// 创建角色character gameObject.AddComponentCharacter();// 初始化为走路策略character.SetMoveStrategy(new WalkStrategy());}void Update(){// 执行移动character.PerformMove();// 根据输入切换策略if (Input.GetKeyDown(KeyCode.W)){character.SetMoveStrategy(new WalkStrategy());}else if (Input.GetKeyDown(KeyCode.R)){character.SetMoveStrategy(new RunStrategy());}else if (Input.GetKeyDown(KeyCode.Space)){character.SetMoveStrategy(new JumpStrategy());}} } 示例解释 WalkStrategy角色以较慢的速度向前移动模拟走路的行为。RunStrategy角色以较快的速度向前移动模拟跑步的行为。JumpStrategy角色向上跳跃模拟跳跃的行为。 在 GameController 中使用键盘输入W 键、R 键和空格键来动态切换角色的移动策略。按下相应的键后角色将切换到走路、跑步或跳跃模式。 通过策略模式角色的移动方式可以灵活切换而不需要修改任何核心代码。 策略模式 在 Unity 中的优势是可以动态切换角色行为如移动、攻击等。通过将不同的移动方式封装到独立的类中我们可以更方便地扩展系统并根据游戏需求随时切换策略。 2、通过策略模式实现修改图片的颜色 1定义策略接口 首先定义一个抽象类或接口ChangeColor并且声明一个image参数和ExChangeColor的虚方法 using UnityEngine.UI; public abstract class ChangeColor {public Image img;public virtual void ExChangeColor() { } }2定义具体策略类 然后创建几个具体的策略类ChangeColor和ChangeBlue分别用来改变不同颜色 //修改图片颜色为红色 using UnityEngine; public class ChangeRed : ChangeColor {public override void ExChangeColor(){img.color Color.red;} }------------------- //修改图片颜色为蓝色 using UnityEngine; public class ChangeBlue : ChangeColor {public override void ExChangeColor(){img.color Color.blue;} }3定义上下文类 维护对strategy 对象的引用并提供方法来设置不同的操作 using UnityEngine.UI; public class StategyContext {ChangeColor strategy;public StategyContext(ChangeColor strategy,Image img){this.strategy strategy;this.strategy.img img;}public void StategyContextInterface(){strategy.ExChangeColor();} }4客户端代码 在 StategyManager 中我们实例化角色并动态设置和切换移动策略。 using UnityEngine.UI; public class StategyManager : MonoBehaviour {[SerializeField] private Image img;StategyContext stategyContext;void Update(){if (Input.GetKeyDown(KeyCode.R)){stategyContext new StategyContext(new ChangeRed(), img);stategyContext.StategyContextInterface();}if (Input.GetKeyDown(KeyCode.B)){stategyContext new StategyContext(new ChangeBlue(), img);stategyContext.StategyContextInterface();}} }今天是2024年12月4日 重复一段毒鸡汤来勉励我和你 你的对手在看书 你的仇人在磨刀 你的闺蜜在减肥 隔壁的老王在练腰 而你在干嘛
http://www.hkea.cn/news/14573702/

相关文章:

  • 大连seo网站seo免费诊断电话
  • 百度网站怎么做视频做网站领券收佣金
  • 龙华网页设计公司网站网络营销的招聘信息
  • 网站建设特效素材新闻媒体网站开发文档
  • 自己做的网站怎么样合法网线制作工具
  • 网站可以做匿名聊天吗嘉兴网站建设电话
  • 网站什么时候做解析做网站几个步骤
  • 网站开发众包平台影视广告片拍摄厂家
  • 鞍山网站网站建设加工平台设计
  • 如何让网站火起来wordpress邮件验证评论
  • 交流平台网站架构怎么做wordpress 折线图
  • 重庆模板建站软件厦门网站seo外包
  • php网站如何导入数据库网站开发工资一般多少钱
  • 可商用的图片素材网站做网站三年3万块钱
  • 标题制作网站wordpress 改 分隔
  • 广州好蜘蛛网站建设网架公司需要给设计院提交的资料
  • 免费crm网站不用下载的软件惠州seo公司
  • 怎样做免费商城网站我是做网站的 怎么才能提高业绩
  • 门户网站 页面集成成都广告设计公司排名
  • 深圳给企业做网站怎么网站建设到百度
  • 阿里云做视频网站犯法吗贵阳网站建设q.479185700惠
  • 长春做网站好的公司南宁在百度上建网站
  • 赛扶做网站做代刷网站赚钱不
  • 四川住房城乡和城乡建设厅网站首页linux系统如何做网站
  • 黄冈seo推广软件的更新版本重庆seo顾问
  • 做个网站要多久济阳网站建设
  • 中国八冶建设集团网站山东网站建设网
  • 外贸人常用网站社区工作者有编制吗
  • 中山手机网站建设报价seoul是什么品牌
  • 天津网站seo策划网站访问量的单位