首页 > 解决方案 > 如何修复 SpriteRenderers 在运行时不改变

问题描述

我正在尝试在运行时更改 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;
}

项目数据.cs

public Sprite[] appaerance;

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

Inspector 中的 CharacterApperance:http: //prntscr.com/nbvh7w

Inspector 中的 InventoryPanel:http: //prntscr.com/nbvhlr

谢谢所有帮助的人:)

标签: c#unity3dunity3d-2dtools

解决方案


推荐阅读