Я художник, обреченный написать C# код для моего колледжа: D, и я хотел бы получить здесь руку помощи:)
Проблема: у меня небольшая местность с двумя объектами на это (помещено через перетаскивание в игре), и у меня есть l oop, который должен проверить, имеет ли ObjectA то же значение (и), что и ObjectB. Так как я мог это сделать? Я пробовал с foreach l oop, но условие истинно, если один из них имеет правильное значение, а не оба.
На данный момент поле или небольшая местность проверяет все.
Он проверяет, есть ли в нем вода, если true -> continue, иначе возвращает,
, если у него есть два объекта, если true -> continue, иначе возвращает
, и если два объекты имеют одинаковые значения, иначе возвращают, если все верно, чем помещают объект ... и я застрял в последней части -> сравнивая два объекта.
Каждый объект имеет значение, целое число, есть для разных объектов ... объект один имеет значение 0, объект 2 значение 1 и т. д. c ... но игрок должен только объединить объект - значение 0 с объектом - значение 0. Что означает, если я перетаскиваю объект - значение 0 и объект - значение 1 в поле, ничего не происходит, только если я перетаскиваю объект - значение 2 и значение объекта - 2 в поле или объект - значение 3 и значение объекта - 3 .....
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Plantgrowing : MonoBehaviour
{
[SerializeField] LayerMask layer, layer2;
[SerializeField] GameObject plantPref;
GameObject plant;
bool compatible = false;
float waterlvl;
private void Update()
{
Collider2D[] hitInfo = Physics2D.OverlapCircleAll(transform.position, .5f, layer);
Collider2D[] hitInfo2 = Physics2D.OverlapCircleAll(transform.position, .5f, layer2);
foreach(Collider2D hit in hitInfo)
{
if (hit && hit.gameObject.CompareTag("Field"))
{
waterlvl = hit.gameObject.GetComponent<Fields>().waterLevel;
}
}
if (hitInfo2.Length == 2)
{
foreach (Collider2D hit2 in hitInfo2)
{
if (hit2.gameObject.GetComponent<Crop>().cropID == 1) //cropID is only a script with one single variable
{
compatible = true;
}
else return;
if (waterlvl >= 5 && compatible)
{
if (!plant) plant = Instantiate(plantPref, new Vector3(transform.position.x, transform.position.y, -2), Quaternion.identity) as GameObject;
Destroy(hit2.gameObject);
}
}
}
}
private void OnDrawGizmos()
{
Gizmos.color = Color.green;
Gizmos.DrawWireSphere(transform.position, .5f);
}
}