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

南通专业做网站上海云建站模板

南通专业做网站,上海云建站模板,安顺做网站,广告投放费用前篇#xff1a;Unity实战案例全解析#xff1a;PVZ 植物卡片状态分析-CSDN博客 植物应该如何从卡牌状态转为实物#xff1f; 其实就只需要考虑两个步骤加一个后续处理#xff1a; 1.点击卡牌后就实例化 需要一个植物状态枚举#xff0c;因为卡牌分为拿在手上和种植下…前篇Unity实战案例全解析PVZ 植物卡片状态分析-CSDN博客  植物应该如何从卡牌状态转为实物 其实就只需要考虑两个步骤加一个后续处理 1.点击卡牌后就实例化 需要一个植物状态枚举因为卡牌分为拿在手上和种植下去两种状态 //植物状态枚举 enum PlantsState {Disable,Enable } public class Plants : MonoBehaviour {//拿到植物类型public PlantType plantType;PlantsState plantsState PlantsState.Disable;private void Awake() {plantType PlantType.Sun_Flower;Translate2Disable();}private void Update() {switch (plantsState) {case PlantsState.Disable:PlantDisableUpdate();break;case PlantsState.Enable:PlantEnableUpdate();break;default:break;}}protected virtual void PlantEnableUpdate() {}protected virtual void PlantDisableUpdate() {}public void Translate2Disable() {Debug.Log(关闭);plantsState PlantsState.Disable;GetComponentAnimator().enabled false;}public void Translate2Enable() {Debug.Log(开启);plantsState PlantsState.Enable;GetComponentAnimator().enabled true;} } 同时可以创建一个放置管理器创建一个List表存放植物 GetPlant是获取植物的类型 Addplant是为了获取并实例化该植物 FllowHand是为了将植物跟随鼠标同时关闭植物的功能 OnClick里调用了Cell脚本的种植方法将植物种下去 public class HandManger : MonoBehaviour {private static HandManger instance;private HandManger() {instance this;}public static HandManger Instance instance;//植物预制体列表public ListPlants plantsPrefabList;//当前鼠标内的植物private Plants currentPlant;private void Update() {FllowHand();}//添加植物方法,并且加入一个返回值用来判断当前手上是否有植物public bool AddPlant(PlantType plantType){ if(currentPlant ! null) return false;//获取植物Plants plants GetPlant(plantType);if (plants null) {Debug.Log(未得到对应类型的植物); return false;} //实例化对应植物currentPlant GameObject.Instantiate(plants);return true;}//判断类型获取植物类型private Plants GetPlant(PlantType plantType){foreach (Plants item in plantsPrefabList) {if(item.plantType plantType){ return item;}}return null;}//跟随鼠标private void FllowHand() {if(currentPlant null) return;//放在鼠标上的时候不要有动画currentPlant.Translate2Disable();Vector3 handPos Camera.main.ScreenToWorldPoint(Input.mousePosition);handPos.z 0; currentPlant.transform.position handPos;}//种植到单元格内public void OnCellClick(Cell cells) {if (currentPlant null)return ;bool isPlaned cells.AddPlant(currentPlant);//种植成功if(isPlaned true)currentPlant null; } } 2.放到草地上同时开启其功能 草地的实现就是设置一个个碰撞器作为网格考虑使用mesh组件不然太多的碰撞器会消耗性能 Cell表示单元格放到草地上就是将鼠标上的对象坐标转为单元格的坐标因为单元格锚点默认在中心可以在组件中调整  该脚本的AddPlant是种植方法但是没有触发就只能算是预处理 public class Cell : MonoBehaviour {//检查单元格内是否有植物public Plants CellCurrentPlant;//放置植物到单元格内private void OnMouseDown() {HandManger.Instance.OnCellClick(this); }//为单元格添加植物public bool AddPlant(Plants plants){ if(CellCurrentPlant ! null) {return false;}CellCurrentPlant plants;CellCurrentPlant.transform.position transform.position;plants.Translate2Enable();return true;} } 3.处理阳光消耗 这个函数是写在卡牌切换的脚本之中的needSunPoint是植物卡牌上的所需要阳光数可以对不同卡牌进行不同设置其实就是一个植物卡牌的模板修改一下皮肤修改一下数值就算是新的植物了 public void OnClick(){//阳光不够则什么也不发生if (needSunPoint SunManger.Instance.SunPoint)return;//触发植物种植如果植物被成功种下才触发减少阳光和进入cd状态bool isSuccessPlant HandManger.Instance.AddPlant(plantType);if(isSuccessPlant true){ //触发减少阳光SunManger.Instance.SubSun(needSunPoint);//转入cd状态Translate2Cd();} }
http://www.zqtcl.cn/news/445076/

相关文章:

  • 昆明做网站竞价单页营销型网站建设
  • 网站注销备案查询厦门好的做网站公司
  • 大学生兼职网站做ppt数字化营销模式及特点
  • 网站虚拟主机1gwordpress自定义头像插件
  • 网站建设的栏目策划长沙网站制作价
  • h5商城网站怎么建立建设银行网站号
  • 养殖舍建设网站网站设计建设流程图
  • 麦包包的网站建设分析陕西城乡建设部网站
  • 网站测评必须做灯笼制作手工简单又漂亮
  • 购物网站建设的意义与目的wordpress 插件 加速
  • 大型html5浅蓝色网站设计公司dede模板网店怎么开店详细教程
  • 一个阿里云怎么做两个网站吗樱花16q808a
  • 如何利用服务器做网站网站建设朝阳
  • 比邻店网站开发企查查企业信息查询在线
  • 家乡网站建设策划案专业建设专题网站
  • 网站建设公司挣钱吗wordpress评论内容密码保护
  • 上海专业建站最低价网站程序模板
  • 蚌埠网站建设哪家好创客贴官网
  • php网站建设参考文献wordpress 头像 很慢
  • 大连seo网站推广phpcmsv9手机网站源码
  • 公司做推广做网站好还是俄文网站引擎
  • 上海市建设咨询协会网站asp网站源码
  • 大家都在哪些网站上做医药招商wordpress po文件
  • 国外主题网站兰州app
  • 建设项目自主验收公示网站dedecms英文外贸网站企业模板下载
  • 做网站要服务器吗前端企业网站开发
  • 用html写一个个人介绍多网站怎么做seo
  • 做网站打广告犯法吗中国建设投资集团 网站首页
  • 怎么免费申请个人网站职业技能培训有哪些
  • 小型的企业网站湖南备案网站建设方案书