C# 将文本放置在画布内

C# 将文本放置在画布内,c#,unity3d,text,C#,Unity3d,Text,我想在画布内部呈现一些文本(Unity) 当我为我的游戏收集升级时,我的文本将出现(例如“通电”)。它渲染文本,但始终位于屏幕中心。这就是问题所在。它不会出现在升级位置 顺便说一下,画布设置为“屏幕空间-覆盖”。文本在场景中间附近渲染。x和y值很奇怪(几乎为零:x为-0.42,y为-0.79) 字体的参考: public Font myFont; 生成文本的方法: GameObject CreateText(Transform canvas_transform, float x, float

我想在画布内部呈现一些文本(Unity)

当我为我的游戏收集升级时,我的文本将出现(例如“通电”)。它渲染文本,但始终位于屏幕中心。这就是问题所在。它不会出现在升级位置

顺便说一下,画布设置为“屏幕空间-覆盖”。文本在场景中间附近渲染。x和y值很奇怪(几乎为零:x为-0.42,y为-0.79)

字体的参考:

public Font myFont;
生成文本的方法:

GameObject CreateText(Transform canvas_transform, float x, float y, string text_to_print, int font_size, Color text_color) {
    GameObject UItextGO = new GameObject("Text2");
    UItextGO.transform.SetParent(canvas_transform);

    RectTransform trans = UItextGO.AddComponent<RectTransform>();
    trans.anchoredPosition = new Vector2(x, y);

    Text text = UItextGO.AddComponent<Text>();
    text.text = text_to_print;
    text.fontSize = font_size;
    text.font = myFont;
    text.color = text_color;

    return UItextGO;
}
GameObject CreateText(画布转换、浮点x、浮点y、字符串文本转换为打印、整型字体大小、彩色文本颜色){
GameObject UItextGO=新游戏对象(“文本2”);
UItextGO.transform.SetParent(canvas\u transform);
RectTransform trans=UItextGO.AddComponent();
trans.anchoredPosition=新向量2(x,y);
Text Text=UItextGO.AddComponent();
text.text=文本到打印;
text.fontSize=字体大小;
text.font=myFont;
text.color=文本颜色;
返回UItextGO;
}
(0,0)
位于屏幕中间。 在这里
UItextGO.transform.SetParent(canvas\u transform)将文本设置为
canvas\u transform
的父级

这意味着文本现在是对象的子对象,
(0,0)
是文本对象的父对象的原点


而不是这个
trans.anchoredPosition=newvector2(x,y)
,尝试以下操作:
trans.transform.position=upgrade.transform.position(如果
(x,y)
位置肯定是升级位置。不需要
升级。转换。位置

“这就是问题所在。它不会出现在升级的位置。”但是没有人知道“升级的位置”是什么。升级的位置也接近于零(但它们不会出现在场景的中心).谢谢你的提示!:D我明天去查一下。