gpt4 book ai didi

c# - 如何将 Sprite 完全移出屏幕?

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:00 25 4
gpt4 key购买 nike

我的 sprite 向左移动,正如它应该的那样,但它停止移动并且没有离开屏幕,正如我希望的那样。就好像有一堵看不见的墙。

我试过了https://www.youtube.com/watch?v=YfIOPWuUjn8 .

在视频中,人的 Sprite 完全离开了屏幕,但我的没有。

public Sprite Pokemon_0;
public Sprite Pokemon_1;

void Update()
{
if (transform.position.x >= -40)
{
this.gameObject.GetComponent<SpriteRenderer>().sprite = Pokemon_0;
transform.Translate(-1f,0f,0f);
}

我正在处理从左侧屏幕移出的 Sprite ,以及从右侧出现并移动到屏幕中央的另一个 Sprite 。该代码不包含有关第二个 Sprite 的任何内容,但这就是我在代码中引用该 Sprite 的原因。

最佳答案

你告诉它只向左移动 if (transform.position.x >= -40)

因此,要么改变你的相机,使 x = -40 在你的屏幕之外,要么将 bool 表达式中的值减小到低于 -40 的值,以便它向左移动直到停止移动,例如:

if (transform.position.x >= -80f) 
{
transform.Translate(-1f,0f,0f);
}

此外,GetComponent 是一个昂贵的过程,您只需设置 Sprite 一次,因此您应该创建一个执行 Sprite 分配的Start 方法。这样,您就不会在每一帧都浪费时间获取相同的组件并分配已经分配给它的 Sprite 。

this.gameObject. 部分是多余的,因此您也可以删除该部分:

Start()
{
GetComponent<SpriteRenderer>().sprite = Pokemon_0;
}

关于c# - 如何将 Sprite 完全移出屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57079730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com