BuildWall.cs

来源:互联网 发布:mac战网如何更改地区 编辑:程序博客网 时间:2024/06/18 06:34
using UnityEngine;[ExecuteInEditMode]//编辑模式下执行public class BuildWall : MonoBehaviour{    public enum EDirection { Up, Down, Left, Right, UpLeft, UpRight, DownLeft, DownRight }    public GameObject Brick;    public EDirection WhichDirection;    public int HowLong;    void Start()    {        //清空子物体        gameObject.transform.DestroyChildren();        //判定方向        var dir = Vector3.zero;        var spacing = 0;        switch (WhichDirection)        {            case EDirection.Up:                dir = Vector3.up;                spacing = Brick.GetComponent<UISprite>().height;                break;            case EDirection.Down:                dir = Vector3.down;                spacing = Brick.GetComponent<UISprite>().height;                break;            case EDirection.Left:                dir = Vector3.left;                spacing = Brick.GetComponent<UISprite>().width;                break;            case EDirection.Right:                dir = Vector3.right;                spacing = Brick.GetComponent<UISprite>().width;                break;            case EDirection.UpLeft:                dir = Vector3.up + Vector3.left;                spacing = Mathf.Max(Brick.GetComponent<UISprite>().width, Brick.GetComponent<UISprite>().height);                break;            case EDirection.UpRight:                dir = Vector3.up + Vector3.right;                spacing = Mathf.Max(Brick.GetComponent<UISprite>().width, Brick.GetComponent<UISprite>().height);                break;            case EDirection.DownLeft:                dir = Vector3.down + Vector3.left;                spacing = Mathf.Max(Brick.GetComponent<UISprite>().width, Brick.GetComponent<UISprite>().height);                break;            case EDirection.DownRight:                dir = Vector3.down + Vector3.right;                spacing = Mathf.Max(Brick.GetComponent<UISprite>().width, Brick.GetComponent<UISprite>().height);                break;        }        //创建墙体        for (var i = 0; i < HowLong; i++)        {            var newBrick = Instantiate(Brick, Vector3.zero, Quaternion.identity, transform);            newBrick.transform.localPosition = dir * i * spacing;            newBrick.tag = Brick.tag;            newBrick.name = Brick.name + i;        }    }}

0 0
原创粉丝点击