数据结构

在游戏开发中的常见用途
在Unity游戏开发中,字典常用于:
资源管理:Dictionary<string, GameObject> prefabCache
状态管理:Dictionary<string, IState> stateMap
输入映射:Dictionary<KeyCode, Action> inputBindings
动画控制:Dictionary<string, Animator> animators
场景管理:Dictionary<string, Scene> sceneRegistry

用:private Dictionary<string, Animator> animatorNameDict = new Dictionary<string, Animator>();

协程IEnumberator,接口迭代器

点击查看代码
private IEnumerator Fade(float targetAlpha) // 淡入淡出效果协程,控制画面的渐变过渡
        {
            isFade = true; // 设置淡入淡出状态标志为真,表示正在进行淡入淡出过程
            fadeCanvasGroup.blocksRaycasts = true; // 阻止射线穿透画布,防止玩家在过渡期间与UI交互
            float speed = Mathf.Abs(fadeCanvasGroup.alpha - targetAlpha) / Settings.fadeDuration; // 计算透明度变化速度,基于当前值与目标值的差距和预设的持续时间
            while (!Mathf.Approximately(fadeCanvasGroup.alpha, targetAlpha)) // 循环直到当前透明度接近目标透明度
            {
                fadeCanvasGroup.alpha = Mathf.MoveTowards(
                    fadeCanvasGroup.alpha, // 当前透明度
                    targetAlpha, // 目标透明度
                    speed * Time.deltaTime // 当前帧的变化量,确保动画速度与帧率无关
                ); // 平滑地更新透明度值,使用MoveTowards函数实现线性插值
                yield return null; // 等待下一帧继续执行,允许画面刷新并显示过渡效果
            }
            fadeCanvasGroup.blocksRaycasts = false; // 恢复射线穿透,允许玩家与UI交互
            isFade = false; // 重置淡入淡出状态标志,表示过渡效果已完成
        }
posted @ 2024-10-17 16:47  doudouqie66  阅读(49)  评论(0)    收藏  举报