C# 为什么克隆后精灵不可见?
我创建了一个简单的蛇游戏。克隆蛇吃东西时的身体部分。但在下一步行动之前,新的部分似乎是看不见的。不知道为什么 在Inspector中,克隆对象与预置对象具有相同的设置。 我还试着在图层中设置精灵的顺序,但没有成功C# 为什么克隆后精灵不可见?,c#,unity3d,C#,Unity3d,我创建了一个简单的蛇游戏。克隆蛇吃东西时的身体部分。但在下一步行动之前,新的部分似乎是看不见的。不知道为什么 在Inspector中,克隆对象与预置对象具有相同的设置。 我还试着在图层中设置精灵的顺序,但没有成功 在实例化时,您可能设置了错误的位置。检查它是否位于错误磁贴中的另一个身体精灵上方。我注意到您在一个游戏对象上同时使用了SpriteEnder和Image组件。为什么呢?您应该只使用其中一个…@Programmer尝试了层中的顺序选项,SpriteEndered拥有它。所有部分都只保
在实例化时,您可能设置了错误的位置。检查它是否位于错误磁贴中的另一个身体精灵上方。我注意到您在一个游戏对象上同时使用了SpriteEnder和Image组件。为什么呢?您应该只使用其中一个…@Programmer尝试了层中的顺序选项,SpriteEndered拥有它。所有部分都只保留图像组件。您是否检查了它在实例化的帧中的位置是否正确?难道不是在另一个身体部位,在错误的瓷砖上吗?@Nathalausoragge你是对的。发现它放错位置了。请把这个答案贴出来好吗?
void Move () {
if (_isAlive)
{
Vector2 currentPosition = transform.position;
if (_previousDirection != _direction)
{
if (_direction == SnakeDirection.LEFT)
{
transform.rotation = Quaternion.Euler(0, 0, 90);
}
else if (_direction == SnakeDirection.DOWN)
{
transform.rotation = Quaternion.Euler(0, 0, 180);
}
else if (_direction == SnakeDirection.RIGHT)
{
transform.rotation = Quaternion.Euler(0, 0, 270);
}
else if (_direction == SnakeDirection.UP)
{
transform.rotation = Quaternion.Euler(0, 0, 0);
}
_previousDirection = _direction;
}
transform.Translate(0, 30, 0);
CheckBorders();
if (apple.IsEaten())
{
SnakeSection newSection = Instantiate(sectionPrefab);
newSection.transform.position = currentPosition;
newSection.transform.SetParent(canvas.transform, false);
_tail.Insert(0, newSection);
apple.SetEaten(false);
} else if (_tail.Count > 0)
{
_tail.Last().transform.position = currentPosition;
_tail.Insert(0, _tail.Last());
_tail.RemoveAt(_tail.Count - 1);
}
}
}
}