调整readme
This commit is contained in:
49
scripts/ChineseFontLoader.gd
Normal file
49
scripts/ChineseFontLoader.gd
Normal file
@@ -0,0 +1,49 @@
|
||||
extends Node
|
||||
## 中文字体加载器
|
||||
## 自动为所有 Label 和 RichTextLabel 应用中文字体
|
||||
|
||||
# 字体文件路径(根据你的实际路径修改)
|
||||
const FONT_PATHS = [
|
||||
"res://assets/fonts/msyh.ttc",
|
||||
"res://assets/fonts/simhei.ttf",
|
||||
"res://assets/fonts/simsun.ttc",
|
||||
]
|
||||
|
||||
var chinese_font: Font = null
|
||||
|
||||
func _ready():
|
||||
# 加载字体
|
||||
load_chinese_font()
|
||||
|
||||
# 应用到所有现有节点
|
||||
if chinese_font:
|
||||
apply_font_to_all_labels(get_tree().root)
|
||||
print("中文字体已应用到所有 Label 节点")
|
||||
else:
|
||||
push_warning("未找到中文字体文件,请检查 assets/fonts/ 目录")
|
||||
|
||||
func load_chinese_font():
|
||||
# 尝试加载字体文件
|
||||
for font_path in FONT_PATHS:
|
||||
if FileAccess.file_exists(font_path):
|
||||
chinese_font = load(font_path)
|
||||
if chinese_font:
|
||||
print("成功加载中文字体: " + font_path)
|
||||
return
|
||||
|
||||
# 如果没有找到字体文件,尝试创建一个带回退的字体
|
||||
push_warning("未找到预设的中文字体文件")
|
||||
|
||||
func apply_font_to_all_labels(node: Node):
|
||||
# 如果是 Label 或 RichTextLabel,应用字体
|
||||
if node is Label or node is RichTextLabel:
|
||||
node.add_theme_font_override("font", chinese_font)
|
||||
|
||||
# 递归处理所有子节点
|
||||
for child in node.get_children():
|
||||
apply_font_to_all_labels(child)
|
||||
|
||||
# 公共方法:为新创建的节点应用字体
|
||||
func apply_font_to_node(node: Node):
|
||||
if chinese_font and (node is Label or node is RichTextLabel):
|
||||
node.add_theme_font_override("font", chinese_font)
|
||||
Reference in New Issue
Block a user