Hello I have been trying to find 3 objects in same column and blow them
with bad coding I’m stuck and I’m out of options how can I solve this problem
what I did so far:
Autogenerate hexatiles and placing
select 3 of them end turn them
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Selector : MonoBehaviour
{
//public GameObject selector;
GameObject arac, arac2, arac3, hafiza, hafiza1,hafiza2, hafiza3;
public static Selector first,second,third;
Auto_Generator generator;
Vector2 firstPressPos, secondPressPos, currentSwipe;
string rotation;
Vector2 targrtloc;
// Start is called before the first frame update
void Start()
{
arac = GameObject.FindGameObjectWithTag("secici");
arac2 = GameObject.FindGameObjectWithTag("secici2");
arac3 = GameObject.FindGameObjectWithTag("secici3");
hafiza = GameObject.FindGameObjectWithTag("ghost");
hafiza.transform.position = new Vector2(-1.0f, -1.0f);
arac.transform.position = new Vector2(-1.0f, -1.0f);
arac2.transform.position = new Vector2(-1.0f, -1.0f);
arac3.transform.position = new Vector2(-1.0f, -1.0f);
first = null;
second = null;
third = null;
generator = GameObject.Find("Generator").GetComponent<Auto_Generator>();
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
firstPressPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
}
if (Input.GetMouseButtonUp(0))
{
secondPressPos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
currentSwipe = new Vector2(secondPressPos.x - firstPressPos.x, secondPressPos.y - firstPressPos.y);
currentSwipe.Normalize();
if (currentSwipe.x < 0 && currentSwipe.y > -0.5f && currentSwipe.y < 0.5f)
{
checker(sonuclar.left);
dondur(sonuclar.left);
}
//swipe right
if (currentSwipe.x > 0 && currentSwipe.y > -0.5f && currentSwipe.y < 0.5f)
{
checker(sonuclar.right);
dondur(sonuclar.right);
}
}
}
private void OnMouseDown()
{
hafiza.transform.position = transform.position;
Debug.Log(hafiza.transform.position);
if (first == null)
{
arac.transform.position = transform.position;
hafiza.transform.position = transform.position;
first = this;
}
if (first != null && second == null && hafiza.transform.position != arac.transform.position)
{
var f1 = Mathf.Abs(arac.transform.position.y - hafiza.transform.position.y);
var f2 = Mathf.Abs(arac.transform.position.x - hafiza.transform.position.x);
if (f1 == 1f || f1 == 0.5f && f2 >= 0 && f2 <= 1)
{
arac2.transform.position = hafiza.transform.position;
second = this;
first.targrtloc = second.transform.position;
}
}
else if (second != null && arac.transform.position != hafiza.transform.position && arac2.transform.position != hafiza.transform.position)
{
var f3 = Mathf.Abs(arac2.transform.position.y - hafiza.transform.position.y);
var f4 = Mathf.Abs(arac2.transform.position.x - hafiza.transform.position.x);
if (f3 == 1f || f3 == 0.5f && f4 >= 0 && f4 <= 1)
{
arac3.transform.position = transform.position;
third = this;
second.targrtloc = third.transform.position;
third.targrtloc = first.transform.position;
}
}
}
public void debug()
{
ress(sonuclar.debug);
}
void ress(sonuclar sonuclar)
{
if (sonuclar == sonuclar.debug)
{
first = null;
second = null;
third = null;
arac.transform.position = new Vector2(-1, -1);
arac2.transform.position = new Vector2(-1, -1);
arac3.transform.position = new Vector2(-1, -1);
}
else
{
//first = null;
//second = null;
//third = null;
}
}
void dondur (sonuclar sonuclar)
{
if (first != null && second != null && third != null )
{
if (sonuclar==sonuclar.right)
{
first.transform.position = Vector2.Lerp(arac3.transform.position, arac3.transform.position, 0.00001f);
second.transform.position = Vector2.Lerp(arac.transform.position, arac.transform.position, 0.00001f);
third.transform.position = Vector2.Lerp(arac2.transform.position, arac2.transform.position, 0.00001f);
ress(sonuclar.normal);
}
else if (sonuclar == sonuclar.left)
{
first.transform.position = Vector2.Lerp(arac2.transform.position, arac2.transform.position, 0.00001f);
second.transform.position = Vector2.Lerp(arac3.transform.position, arac3.transform.position, 0.00001f);
third.transform.position = Vector2.Lerp(arac.transform.position, arac.transform.position, 0.00001f);
ress(sonuclar.normal);
}
}
}
//GameObject.Destroy(gameObject);
//generator.regenerate(transform.position.x,transform.position.y);
void checker(sonuclar sonuclar)
{
if(sonuclar==sonuclar.left)
{
}
}
public enum sonuclar
{
debug,
normal,
left,
right
}
}
/Generator Codes/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Auto_Generator : MonoBehaviour
{
public GameObject[] objeler;
GameObject game;
public float width, height;
// float Xoffset= 0.619f;
float Yoffset = 0.5f;
public static Auto_Generator first, second, third;
int randomInt;
void Start()
{
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
randomInt = (Random.Range(0, objeler.Length));
game = Instantiate(objeler[randomInt]);
if (x % 2 == 0)
{
game.transform.position = new Vector2(x, y+0.5f);
}
else
{
game.transform.position = new Vector2(x, y );
}
}
}
}
public void regenerate(float x, float y)
{
Debug.Log("Silinen "+x+" "+y);
game = Instantiate(objeler[randomInt]);
game.transform.position = new Vector2(x, y);
}
}