WasTabon
@WasTabon

Как сделать сравнение объектов по цвету?

Пытался сделать как здесь - https://coderoad.ru/39349906/Unity-как-проверить-с... и не помогло
Вот код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class CourierWorkDragnDrop : MonoBehaviour, IDragHandler
{

    public AllVariables allVariables;
    private Rigidbody2D rigidbody2D;
    private Vector2 vector2;
    public Works works;
    public SpriteRenderer spriteRenderer;

private void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.CompareTag("Shop"))
        {
            Color myColor = spriteRenderer.color;
            Color otherColor = works.spriteRendererSHOP.color;
            if (myColor == otherColor)
            {
                allVariables.money += 5;
                works.howMuchEarn += 5;
                works.textMoneyCourierEarn.text = "Заработано - " + works.howMuchEarn;
                Destroy(gameObject);
            }
        }
    }
}

Вот код получения SpriteRenderer
using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;

public class Works : MonoBehaviour
{
    public SpriteRenderer spriteRendererSHOP;
    private void Awake()
    {
        spriteRendererSHOP = shop.GetComponent<SpriteRenderer>();
    }

А вот сам скрипт, который изменяет цвет объекта
public IEnumerator CourierWorkShopColor()
    {
        while(true)
        {
            //Debug.Log("Started!");
            System.Random r = new System.Random();
            int ci = r.Next(0, coloredPrefabs.Length);
            spriteRendererSHOP.color = new Color32(prefabColor[ci].r, prefabColor[ci].g, prefabColor[ci].b, 255);
            yield return new WaitForSeconds(3.5f);
        }
    }

Прозрачность указал не prefabColor[ci] a 255 т.к объект просто пропадает (прозрачность на 0 встает почему-то, хотя сам объект был на 255)
Пытался сделать так же сравнение только по prefabColor[ci].r, но это тоже не помогло
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
WasTabon
@WasTabon Автор вопроса
Вообщем, я нашел решение, а именно: я переименовал всё нужные объекты в юнити на цифры 6067281fcc6f6222192563.png
И сделал вот так
private void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.CompareTag("Shop") && gameObject.name == works.ci.ToString())
        {
            allVariables.money += 5;
            works.howMuchEarn += 5;
            works.textMoneyCourierEarn.text = "Заработано - " + works.howMuchEarn;
            Destroy(gameObject);
        }
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы