1
我试图改变一个排序层的顺序团结2D游戏,但下面的脚本不工作对我来说:重要性排序无法正常工作
using UnityEngine;
using System.Collections;
public class LevelManager : MonoBehaviour {
public GameObject player;
public SpriteRenderer deadGuy;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if (player.transform.position.y < deadGuy.transform.position.y)
{
deadGuy.sortingOrder = 0;
} else
{
deadGuy.sortingOrder = 2;
}
}
}
的对象已经在被链接在运行游戏之前,检查员窗口统一。
编辑
现在这是我的代码:
using UnityEngine;
using System.Collections;
public class LevelManager : MonoBehaviour {
public GameObject player;
public GameObject deadGuy;
public bool belowTheY;
// Use this for initialization
void Start() {
deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 2;
}
// Update is called once per frame
void Update() {
if (player.transform.localPosition.y < deadGuy.transform.localPosition.y)
{
belowTheY = true;
deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 0;
} else
{
belowTheY = false;
deadGuy.GetComponent<SpriteRenderer>().sortingOrder = 2;
}
}
}
如果用户低于deadGuy的Y位置bekowTheY被激活,所以我知道if语句被正确执行。然而排序层没有被改变
什么不行?该属性是否在编辑器中更改,但图像没有按照您想要的顺序显示?你如何评论Update函数中的代码,在Update函数中放置'deadGuy.sortingOrder = 2;'。在编辑器中选择SpriteRenderer,并检查sortingOrder是否更改了属性.... – Programmer
看着deadGuy对象,我可以看到它根本没有改变它的排序层。它只停留在2(检查器窗口中设置的属性) –
当我说把它放在Update函数中时,我的意思是'开始'功能。还有一件事。删除更新中的所有代码并将'deadGuy.sortingOrder = 4;'放入启动函数中。我想看看你的代码是否工作。告诉我编辑器中的价值。 – Programmer