数据结构
在游戏开发中的常见用途
在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; // 重置淡入淡出状态标志,表示过渡效果已完成
}

浙公网安备 33010602011771号