如何修复SpriteRenderers在运行时不更改

时间:2019-04-14 18:59:46

标签: c# unity3d unity3d-2dtools

我正在尝试在运行时更改2D字符的元素。我使用了下面的代码,它似乎根本没有改变字符的精灵。没有错误或其他任何变化,但物理精灵没有改变。我已经使用Debug.Log来查看方法是否被调用(它们是)。我还提供了一些有关它在检查器内部的屏幕截图。

这是我到目前为止所拥有的。

InventoryPanel.cs

public CharacterAppeance ca;


if (item.location == ItemLocation.Boot)//This is set in ItemData.ca
{
    ca.SetBoot(item.appaerance[0], item.appaerance[1]);
}

CharacterApperance.cs

public SpriteRenderer leg1ArmorRenderer;
public SpriteRenderer leg2ArmorRenderer;
public SpriteRenderer pelvisArmorRenderer;
public SpriteRenderer shin1ArmorRenderer;
public SpriteRenderer shin2ArmorRenderer;

public void SetBoot(Sprite leg, Sprite shin)
{
    leg1ArmorRenderer.sprite = leg;
    leg2ArmorRenderer.sprite = leg;
    shin1ArmorRenderer.sprite = shin; 
    shin2ArmorRenderer.sprite = shin;
}

ItemData.cs

public Sprite[] appaerance;

检查器中的项目数据:http://prntscr.com/nbvgj9

检查器中的CharacterApperance:http://prntscr.com/nbvh7w

检查器中的库存面板:http://prntscr.com/nbvhlr

谢谢所有帮助的人:)

0 个答案:

没有答案