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

佛山网站制作哪个好薇网站客服系统

佛山网站制作哪个好薇,网站客服系统,网站是先制作后上线么,电子商务网站推广策划方案唐老师关于对物体分类的OOD的写法确实十分好,代码也耦合度也低,但是我有个简单的写法同样能实现一样的效果,所以我就充分发挥了一下主观能动性 相较于基本功能,这一版做出了如下改动 1.限制了对象池最大数量,多出来的…

唐老师关于对物体分类的OOD的写法确实十分好,代码也耦合度也低,但是我有个简单的写法同样能实现一样的效果,所以我就充分发挥了一下主观能动性

相较于基本功能,这一版做出了如下改动

1.限制了对象池最大数量,多出来的要入池就会销毁掉

  // 最大容量private int maxCapacity = 100;

2.对生成出来的对象做出了二级分类更加清晰

 public void SetParent(string name, GameObject obj) {// 设置一级父对象if (poolObjF == null)poolObjF = new GameObject("一级分类");// 查找或创建二级父对象if (!poolObjS.ContainsKey(name)) {//创建临时物体当作二级分类空对象,之后添加到字典中GameObject tempObj = new GameObject("二级分类" + name);tempObj.transform.parent = poolObjF.transform;poolObjS[name] = tempObj;}obj.transform.parent = poolObjS[name].transform;}

98e18a00ff7a4b409b6f1ac7c7ecd596.gif

3.优化了清空池的方法

 public void ClearPool() {foreach (var item in pool) {foreach (var obj in item.Value) {GameObject.Destroy(obj);}}pool.Clear();poolObjF = null;poolObjS.Clear();}

4.添加了处理其他逻辑的函数,可以写一些重置AI状态的逻辑,会在拿出物体的时候调用

   /// <summary>/// 处理其他事情的逻辑可以写在这里面,比如重置怪物血量等/// </summary>public void OtherThing(){ }

 

5.切换场景不销毁池物品调用方法即可

    //public void DontDestoryPool(GameObject gameObject)//    {//   GameObject.DontDestroyOnLoad(gameObject);//}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MyPool : SingleBase<MyPool> {// 一级父对象private GameObject poolObjF;// 二级父对象字典private Dictionary<string, GameObject> poolObjS = new Dictionary<string, GameObject>();// 抽屉字典 string => 物品名字,List => 具体物品public Dictionary<string, List<GameObject>> pool = new Dictionary<string, List<GameObject>>();// 最大容量private int maxCapacity = 100;/// <summary>/// 得到对象池中的物品/// </summary>/// <param name="path">预制体路径</param>/// <returns></returns>public GameObject GetObj(string path) {GameObject obj = null;// 如果有该物体,从抽屉中取出,如果没有则创建一个if (pool.ContainsKey(path) && pool[path].Count > 0) {obj = pool[path][0];pool[path].RemoveAt(0);}else {obj = GameObject.Instantiate(Resources.Load<GameObject>(path));obj.name = path;}obj.SetActive(true);//OtherThing();return obj;}/// <summary>/// 向对象池放回物品/// </summary>/// <param name="name">要放回的抽屉名</param>/// <param name="obj">要放回的物品对象</param>public void PutBackObj(string name, GameObject obj) {SetParent(name, obj);obj.SetActive(false);// 如果有抽屉则放回去,没有则新建一个抽屉放进去,同时注意限制最大数量if (pool.ContainsKey(name)) {if (pool[name].Count < maxCapacity) {pool[name].Add(obj);}else {GameObject.Destroy(obj);}}else {pool.Add(name, new List<GameObject>() { obj });}}public void SetParent(string name, GameObject obj) {// 设置一级父对象if (poolObjF == null)poolObjF = new GameObject("一级分类");// 查找或创建二级父对象if (!poolObjS.ContainsKey(name)) {//创建临时物体当作二级分类空对象,之后添加到字典中GameObject tempObj = new GameObject("二级分类" + name);tempObj.transform.parent = poolObjF.transform;poolObjS[name] = tempObj;}obj.transform.parent = poolObjS[name].transform;}public void ClearPool() {foreach (var item in pool) {foreach (var obj in item.Value) {GameObject.Destroy(obj);}}pool.Clear();poolObjF = null;poolObjS.Clear();}/// <summary>/// 处理其他事情的逻辑可以写在这里面,比如重置怪物血量等/// </summary>public void OtherThing(){ }
}

 

 

http://www.hkea.cn/news/391230/

相关文章:

  • 注册域名之后如何做网站优化清理大师
  • wordpress+在线播放推广seo网站
  • 丽水网站建设明恩玉杰网站开发框架
  • 如何设计网站中的上传功能搜索引擎技术基础
  • 余江区建设局网站百度搜索引擎优化的方法
  • 做网站用c 还是java万网域名注册教程
  • 青岛做网站那家好专业的网站优化公司排名
  • 网站如何做淘宝推广seo服务 收费
  • 学完js了可以做哪些网站营业推广的形式包括
  • 网站会员系统怎么做模版seo是指什么职位
  • 上海集团网站制作新闻 近期大事件
  • 商城网站验收标准seo关键词排名优化怎样收费
  • 睢宁做网站公司珠海百度关键字优化
  • 临安市住房和建设局网站伊春seo
  • 天津百度做网站多少钱游戏代理平台哪个好
  • b2b模式的网站google网站
  • 做优化网站哪个公司好十大营销策略
  • 软件商店app苏州网站关键词优化推广
  • wordpress添加日历首页优化公司
  • 日本可以自己做网站吗查询网站服务器
  • 做网站维护的人叫啥友情链接交换工具
  • 云南网站定制真正永久免费的建站系统有哪些
  • 温州做网站技术员沧州做网络推广的平台
  • wordpress media上海排名优化seobwyseo
  • 深圳网站建设科技有限公司注册一个网站
  • 网站设计改版seo关键词优化推广价格
  • 做网站什么主题比较好上海网站seo诊断
  • 设计苹果手机的网站病毒什么时候才能消失
  • 国外做化工产品的网站自媒体发布平台
  • 怎么做资源类网站百度搜索热度排名