Untitled
unknown
csharp
4 years ago
5.6 kB
6
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class testiPommi : MonoBehaviour
{
public GameObject explodeSide;
private int explodeStep = 1;
private int explodeSize = 3;
public LayerMask blockLayer;
// Start is called before the first frame update
void Start()
{
for(int i = 0; i < 4; i++)
{
Explode();
explodeStep++;
}
}
void Explode()
{
switch(explodeStep)
{
//Explode to RIGHT
case 4:
GameObject childExplodeRight = Instantiate(explodeSide, new Vector2(transform.position.x, transform.position.y), Quaternion.identity);
childExplodeRight.transform.parent = transform;
//Check space to Right
for (int o = 0; o < explodeSize; o++)
{
RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x + o, transform.position.y), Vector2.right, 0.65f, blockLayer);
if(hit.collider == null)
{
childExplodeRight.transform.position = new Vector2(transform.position.x + 1 + o * 0.5f, transform.position.y);
childExplodeRight.transform.localScale = new Vector2(transform.localScale.x + o, transform.localScale.y);
}
else
{
return;
//break;
}
// GameObject childExplode =
// childExplode.transform.parent = parentExplode.transform;
}
break;
//Explode to Left
case 3:
GameObject childExplodeLeft = Instantiate(explodeSide, new Vector2(transform.position.x, transform.position.y), Quaternion.identity);
childExplodeLeft.transform.parent = transform;
//Check space to Left
for (int o = 0; o < explodeSize; o++)
{
RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x - o, transform.position.y), Vector2.left, 0.65f, blockLayer);
if (hit.collider == null)
{
childExplodeLeft.transform.position = new Vector2(transform.position.x - 1 - o * 0.5f, transform.position.y);
childExplodeLeft.transform.localScale = new Vector2(transform.localScale.x + o, transform.localScale.y);
}
else
{
return;
//break;
}
// GameObject childExplode =
// childExplode.transform.parent = parentExplode.transform;
}
break;
//Explode to Down
case 2:
GameObject childExplodeDown = Instantiate(explodeSide, new Vector2(transform.position.x, transform.position.y), Quaternion.identity);
childExplodeDown.transform.parent = transform;
childExplodeDown.transform.eulerAngles = Vector3.forward * 90f;
//Check space to Down
for (int o = 0; o < explodeSize; o++)
{
RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x , transform.position.y - o), Vector2.down, 0.65f, blockLayer);
if (hit.collider == null)
{
childExplodeDown.transform.position = new Vector2(transform.position.x , transform.position.y - 1 - o * 0.5f);
childExplodeDown.transform.localScale = new Vector2(transform.localScale.x + o, transform.localScale.y);
}
else
{
return;
//break;
}
// GameObject childExplode =
// childExplode.transform.parent = parentExplode.transform;
}
break;
//Explode to Up
case 1:
GameObject childExplodeUp = Instantiate(explodeSide, new Vector2(transform.position.x, transform.position.y), Quaternion.identity);
childExplodeUp.transform.parent = transform;
childExplodeUp.transform.eulerAngles = Vector3.forward * 90f;
//Check space to Up
for (int o = 0; o < explodeSize; o++)
{
RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x, transform.position.y + o), Vector2.up, 0.65f, blockLayer);
if (hit.collider == null)
{
childExplodeUp.transform.position = new Vector2(transform.position.x, transform.position.y + 1 + o * 0.5f);
childExplodeUp.transform.localScale = new Vector2(transform.localScale.x + o, transform.localScale.y);
}
else
{
return;
//break;
}
// GameObject childExplode =
// childExplode.transform.parent = parentExplode.transform;
}
break;
}
}
}Editor is loading...