triangle.cs

 avatar
unknown
csharp
4 years ago
3.1 kB
5
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class triangle : MonoBehaviour
{
    private bool canClick = false;

    void Start()
    {
        if(transform.name == "2")
        {
            transform.GetComponent<SpriteRenderer>().color = Color.yellow;
        }
        if(transform.name == "3")
        {
            transform.GetComponent<SpriteRenderer>().color = Color.blue;
        }
        if(transform.name == "4")
        {
            transform.GetComponent<SpriteRenderer>().color = Color.magenta;
        }
    }

    void Update()
    {
        Look();
        Move();

        if(Input.GetKeyDown(KeyCode.UpArrow) && canClick && transform.name == "1")
        {
            if(GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderTop.IndexOf(gameObject) != 0) return;
            GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderTop.Remove(this.gameObject);
            Destroy(this.gameObject);
        }
        if(Input.GetKeyDown(KeyCode.RightArrow) && canClick && transform.name == "2")
        {
            if(GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderRight.IndexOf(gameObject) != 0) return;
            GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderRight.Remove(this.gameObject);
            Destroy(this.gameObject);
        }
        if(Input.GetKeyDown(KeyCode.DownArrow) && canClick && transform.name == "3")
        {
            if(GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderDown.IndexOf(gameObject) != 0) return;
            GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderDown.Remove(this.gameObject);
            Destroy(this.gameObject);
        }
        if(Input.GetKeyDown(KeyCode.LeftArrow) && canClick && transform.name == "4")
        {
            print(GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderLeft.IndexOf(gameObject).ToString());
            if(GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderLeft.IndexOf(gameObject) != 0) return;
            GameObject.Find("Main Camera").GetComponent<SpawnTriangles>().orderLeft.Remove(this.gameObject);
            Destroy(this.gameObject);
        }
    }

    private void OnCollisionEnter2D(Collision2D other)
    {
        GameObject.Find("protect").transform.SetParent(Camera.main.transform);
        if(other.transform.name == "protect") Destroy(this.gameObject);
        if(other.transform.name == "click") canClick = true;  
    }

    void Look()
    {
        Vector3 diff = (GameObject.Find("protect").transform.position - transform.position);
        float angle = Mathf.Atan2(-diff.y, -diff.x);
        transform.rotation = Quaternion.Euler(0f, 0f, angle * Mathf.Rad2Deg);
    }

    void Move()
    {
        transform.position = Vector3.MoveTowards(transform.position, GameObject.Find("protect").transform.position, 6 * Time.deltaTime);
    }
}
Editor is loading...