123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class MyTile : MonoBehaviour
- {
- public List<GameObject> elementObj = new List<GameObject>();
- public List<Terrain> terrainTile;
- private bool isEntry = false;
- // Start is called before the first frame update
- void Start()
- {
-
- }
- public void AddElement(GameObject element)
- {
- elementObj.Add(element);
- element.gameObject.SetActive(isEntry);
- }
- public void AddSplitTerrain(Terrain tile)
- {
- terrainTile.Add(tile);
- }
- public void Show()
- {
- bool del = true;
- while (del)
- {
- del = false;
- foreach (var item in elementObj)
- {
- if (item == null)
- {
- elementObj.Remove(item);
- del = true;
- break;
- }
- else
- {
- item.SetActive(true);
- }
- }
- }
- }
- public void Hide()
- {
- bool del = true;
- while(del)
- {
- del = false;
- foreach (var item in elementObj)
- {
- if (item == null)
- {
- elementObj.Remove(item);
- del = true;
- break;
- }
- else
- {
- item.SetActive(false);
- }
- }
- }
-
- }
- private void OnTriggerEnter(Collider other)
- {
- if (other.gameObject.layer == LayerMask.NameToLayer("Enemy"))
- {
- bool ifFind = elementObj.Find(delegate (GameObject item){ return item == other.gameObject; });
- if(ifFind)
- {
- return;
- }
- elementObj.Add(other.gameObject);
- }
- if (other.gameObject.layer != LayerMask.NameToLayer("CameraCube"))
- {
- return;
- }
- isEntry = true;
- Show();
- }
- private void OnTriggerExit(Collider other)
- {
- if (other.gameObject.layer == LayerMask.NameToLayer("Enemy"))
- {
- elementObj.Remove(other.gameObject);
- }
- if (other.gameObject.layer != LayerMask.NameToLayer("CameraCube"))
- {
- return;
- }
- isEntry = false;
- Hide();
- }
- private void OnCollisionEnter(Collision collision)
- {
- if (collision.gameObject.layer == LayerMask.NameToLayer("Enemy"))
- {
- bool ifFind = elementObj.Find(delegate (GameObject item) { return item == collision.gameObject; });
- if (ifFind)
- {
- return;
- }
- elementObj.Add(collision.gameObject);
- }
- if (collision.gameObject.layer != LayerMask.NameToLayer("CameraCube"))
- {
- return;
- }
- isEntry = true;
- Show();
- }
- private void OnCollisionExit(Collision collision)
- {
- if (collision.gameObject.layer == LayerMask.NameToLayer("Enemy"))
- {
- elementObj.Remove(collision.gameObject);
- }
- if (collision.gameObject.layer != LayerMask.NameToLayer("CameraCube"))
- {
- return;
- }
- isEntry = false;
- Hide();
- }
- }
|