Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Unity中使用移动摄影机进行GUI文本对齐_C#_Unity5_Guitext - Fatal编程技术网

C# 在Unity中使用移动摄影机进行GUI文本对齐

C# 在Unity中使用移动摄影机进行GUI文本对齐,c#,unity5,guitext,C#,Unity5,Guitext,我正在联合制作一款自上而下的射击游戏。玩家可以在世界上移动,但是相机和他一起移动,所以玩家总是在屏幕中间。 我试图在屏幕的左上角显示一些文本,所以我在主摄像头上附加了一个吉他文本组件。结果非常有趣——玩家将文本省道移出屏幕的那一刻 文本应该显示的内容由播放器控制,因此我在播放器脚本中添加了以下代码片段: public GUIText scoreText; void Update () { scoreText.pixelOffset = new Vector2 (300,

我正在联合制作一款自上而下的射击游戏。玩家可以在世界上移动,但是相机和他一起移动,所以玩家总是在屏幕中间。

我试图在屏幕的左上角显示一些文本,所以我在主摄像头上附加了一个吉他文本组件。结果非常有趣——玩家将文本省道移出屏幕的那一刻

文本应该显示的内容由播放器控制,因此我在播放器脚本中添加了以下代码片段:

public GUIText scoreText;
void Update ()
    {
        scoreText.pixelOffset = new Vector2 (300, 300);
    }

void UpdateScore ()
    {
        scoreText.text = "Lives: " + lives;
    }
但这并没有改变任何事情,
voidupdatescore()
也不起作用

我对Unity比较陌生,所以这可能是一个非常简单的错误。。。但我做错了什么

编辑:
voidupdatescore()
现在可以工作了,我从
voidfixeupdate()
调用它


编辑(再次):我修复了这个问题,创建了一个新的空对象,其中除了转换(从不移动)和一个GUI文本组件之外没有任何内容。我现在遇到的问题是,GUI文本上的锚非常奇怪——它只在我把它放在左下角(而我希望它放在左上角)时才起作用。尝试更改锚定会将其移到屏幕之外的某个位置。这是我的层次结构:

确保您的吉他文本组件连接到它自己的不移动的游戏对象。我猜现在它就在你的播放器或相机上


(当吉他文本组件所连接的游戏对象移动时,显示文本的屏幕位置也会移动。)

您确定知道吉他文本的锚定功能吗?定位点是偏移应用于文本上的哪个点。例如,如果定位点为“左上”,像素偏移量为(300300),则文本的左上角将为屏幕右下角的300像素和屏幕左下角上方的300像素。如果锚定为“左下”,则文本的左下角将位于屏幕右下角300像素和屏幕左下角上方300像素

如果希望文本是屏幕左上角而不是左下角的特定像素数,请将代码更改为:

scoreText.pixelOffset = new Vector2 (300, Screen.height - 300);

或者,使用画布文本元素而不是吉他文本。文本元素的锚定点是它在屏幕上的偏移量,这与GuitText不同。

你的层次结构是什么样子的?我通过创建一个新的空对象来解决这个问题,该对象中除了转换(从不移动)和GUI文本组件外,没有任何内容。我现在遇到的问题是,GUI文本上的锚非常奇怪——它只在我把它放在左下角(而我希望它放在左上角)时才起作用。尝试更改锚定会将其移到屏幕之外的某个位置。