C# UNITY CS1061精灵不包含已启用的定义

C# UNITY CS1061精灵不包含已启用的定义,c#,unity3d,C#,Unity3d,我正在关注《统一》中关于2048的教程。他使用文本和图像来渲染他的“瓷砖”,我决定使用精灵,因为我已经在adobe中预先制作了瓷砖。第一位代码是TileStyleHolder,第二个脚本称为Tile(将附加到实际的精灵/图像本身,该精灵/图像本身将被启用/禁用) 这是第二个脚本~~ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public

我正在关注《统一》中关于2048的教程。他使用文本和图像来渲染他的“瓷砖”,我决定使用精灵,因为我已经在adobe中预先制作了瓷砖。第一位代码是TileStyleHolder,第二个脚本称为Tile(将附加到实际的精灵/图像本身,该精灵/图像本身将被启用/禁用)

这是第二个脚本~~

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Tile : MonoBehaviour
{
    public int Number 
    {
        get 
        {
            return number;
        }
        set 
        {
            number = value;
            if (number == 0)
                SetEmpty();
            else 
            {
                ApplyStyle(number);
                SetVisible();
            }
        }
    }
    private int number;

    private Sprite TileSprite;

    void Awake() 
    {
        TileSprite = transform.Find("numcell").GetComponent<Sprite>();
    }

    void ApplyStyleFromHolder(int index) 
    {
        TileSprite = TileStyleHolder.Instance.TileStyles[index].tile_number.ToSprite();
    }

    void ApplyStyle(int num) 
    {
        switch (num) 
        {
            case 2:
            ApplyStyleFromHolder(0);
            break;

            case 4:
            ApplyStyleFromHolder(1);
            break;

            case 8:
            ApplyStyleFromHolder(2);
            break;

            case 16:
            ApplyStyleFromHolder(3);
            break;

            case 32:
            ApplyStyleFromHolder(4);
            break;

            case 64:
            ApplyStyleFromHolder(5);
            break;

            case 128:
            ApplyStyleFromHolder(6);
            break;

            case 256:
            ApplyStyleFromHolder(7);
            break;

            case 512:
            ApplyStyleFromHolder(8);
            break;

            case 1024:
            ApplyStyleFromHolder(9);
            break;

            case 2048:
            ApplyStyleFromHolder(10);
            break;

            case 4096:
            ApplyStyleFromHolder(11);
            break;

            default:
            Debug.LogError("Check the numders that you pass to ApplyStyle");
            break;
        }
    }

    private void SetVisible() 
    {
        TileSprite.enabled = true;
    }

    private void SetEmpty() 
    {
        TileSprite.enabled = false;
    }


    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
使用UnityEngine.UI;
公共类瓷砖:单一行为
{
公共整数
{
得到
{
返回号码;
}
设置
{
数字=数值;
如果(数字==0)
SetEmpty();
其他的
{
ApplyStyle(数字);
SetVisible();
}
}
}
私有整数;
私人雪碧瓷砖;
无效唤醒()
{
TileSprite=transform.Find(“numcell”).GetComponent();
}
无效ApplyStyleFromHolder(整数索引)
{
TileSprite=TileStyleHolder.Instance.TileStyles[index].tile_number.ToSprite();
}
无效应用程序样式(int num)
{
开关(num)
{
案例2:
ApplyStyleFromHolder(0);
打破
案例4:
ApplyStyleFromHolder(1);
打破
案例8:
ApplyStyleFromHolder(2);
打破
案例16:
ApplyStyleFromHolder(3);
打破
案例32:
ApplyStyleFromHolder(4);
打破
案例64:
ApplyStyleFromHolder(5);
打破
案例128:
ApplyStyleFromHolder(6);
打破
案例256:
ApplyStyleFromHolder(7);
打破
案例512:
ApplyStyleFromHolder(8);
打破
案例1024:
ApplyStyleFromHolder(9);
打破
案例2048:
ApplyStyleFromHolder(10);
打破
案例4096:
ApplyStyleFromHolder(11);
打破
违约:
LogError(“检查传递给ApplyStyle的numder”);
打破
}
}
私有void SetVisible()
{
TileSprite.enabled=true;
}
私有void SetEmpty()
{
TileSprite.enabled=false;
}
//在第一帧更新之前调用Start
void Start()
{
}
//每帧调用一次更新
无效更新()
{
}
}

如果您使用的是
图像
组件,您可以使用以下内容引用精灵:

Sprite mySprite = GetComponent<Image>().sprite;
Sprite mySprite = GetComponent<SpriteRenderer>().sprite;

是的,你不能。。精灵是一种财富。您更希望使用该精灵启用/禁用组件/游戏对象。。。请添加完整的代码请停止您的问题并在此处添加所有相关代码。使用
{}
按钮格式化它!好的,我希望这是明确的,是的,更好;)
Sprite
不是一个组件,因此您不能使用
GetComponent
,因为您必须找到使用该Sprite的组件,例如
SpriteRenderer
Image
并启用/禁用该组件,而问题是您在尝试什么?这个
Sprite
是从哪里来的?在哪里使用?你想要达到的预期行为是什么?这个。这救了我。因为这个,我刚刚完成了很大一部分,非常感谢!
Sprite mySprite = GetComponent<SpriteRenderer>().sprite;