本节好多BUG
本节好多BUG
程序
Card: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; enum CardState { Cooling, WaitingSun, Ready } public class Crad : MonoBehaviour { private CardState cardState = CardState.Cooling; public GameObject cardLight; public GameObject cardGray; public Image cardMask; [SerializeField] private float cdTime = 2; private float cdTimer = 0; [SerializeField] private int needSunPoint = 50; private void Update() { switch (cardState) { case CardState.Cooling: CoolingUpdate(); break; case CardState.WaitingSun: WaitingSunUpdate(); break; case CardState.Ready: ReadyUpdate(); break; default: break; } } void CoolingUpdate() { cdTimer += Time.deltaTime; cardMask.fillAmount = (cdTime - cdTimer) / cdTime; if(cdTimer >= cdTime) { TransitionToWaitingSun(); } } void WaitingSunUpdate() { if (needSunPoint <= SunManager.Instance.SunPoint) { TransitionToReady(); } } void ReadyUpdate() { if (needSunPoint > SunManager.Instance.SunPoint) { TransitionToWaitingSun(); } } void TransitionToWaitingSun() { cardState = CardState.WaitingSun; cardLight.SetActive(false); cardGray.SetActive(true); cardMask.gameObject.SetActive(false); } void TransitionToReady() { cardState = CardState.Ready; cardLight.SetActive(true); cardGray.SetActive(false); cardMask.gameObject.SetActive(false); } void TransitionToCooling() { cardState = CardState.Cooling; cdTimer = 0; cardLight.SetActive(false); cardGray.SetActive(true); cardMask.gameObject.SetActive(true); } public void OnClick() { if (needSunPoint > SunManager.Instance.SunPoint) return; TransitionToCooling(); } } SunManager: using System.Collections; using System.Collections.Generic; using UnityEngine; public class SunManager : MonoBehaviour { public static SunManager Instance { get; private set; } private void Awake() { Instance = this; } [SerializeField] private int sunPoint; public int SunPoint { get { return sunPoint; } } }
僵尸代码还未写,需要再kan
此时此刻 我要杨诗一首 我在b18 心在18外 老师针对我 我也没办法 上课也不会 下课就回去 这个学怎么上也 孺子不可教也 而3思而不思则带 带而不思则网 古人云 你不学就不学 大家一起不学不就行了 假日曰班里人都不学 教主肯定也不说 他奶奶的 一曲高歌 一群假吊斯在这块学 曰:无语。
第四课程:开始制作
第三课时:展示类图
1.plants
2.Zombies
3.开始结束
······
第二课时:资料下载
1.资料包
(1)声音
(2)图片
2.载入2D模板
第一课时:整体游戏展示
1.开始
2.植物
3.僵尸
4.主页面
cdTimer+=Time.deltaTime;
cardMask.fillAmount=(cdTime-cdTimer)/cdTime;
if(cdTimer>=cdTime){
TransitionToWaitingSun();
}
void TransitionToWaitingSun(){
cardState=CardState.WaitingSun;
cardLight.SetActive(false);
cardGray.SetActive(true);
cardMask.gameObject.SetActive(false);
}
使用unity2023.2.2.20f1,创建的anim播放会闪烁,只有部分图片会显示。
问题原因:部分向日葵图片被背景遮挡
解决方案,调整Sundflower的sprite renderer 的order in layer 为1,默认Background为0
这里
动画也是可以加入关键帧来 设置子元素的相关操作
33 节 控制僵尸产生先跳过
10-开发卡片点击后的植物生成和跟随
在Manager上创建脚本:HandManager
09-创建第一个植物-向日葵
双击【Back Ground】放大视图
给所有植物添加一个父类plant
给Sun flower添加脚本:Plant
08-开发阳光值的消耗和更新
阳光值直接放在【CardListUI】里
07-卡片的点击和状态切换到冷却
【冷却状态】【等待阳光状态】已完成
在Card Light上添加一个【button】
06-检测阳光值是否足够
右键创建一个【空物体 】:Manager
在Manager上添加一个脚本:SunManager
在CardTemplate上添加【脚本】:Card
(控制卡片行为)
在【canvas】下
右键- UI- image:选择卡片
command+d 来一个【灰色】的
command+d 来一个【冷却中】的,改一个alpha值为103的透明度
控制冷却效果
imagetype:filled
把3张图片,右击-- create empty parent :CardTemplate
代表一个模版