每次我休息时改变砖块精灵位置

时间:2016-12-15 09:57:27

标签: c# unity5

我正在制作一个砖块破碎机游戏,其中砖块放置如下:

bricks

现在我想要的是每当我开始我的新游戏或者在比赛结束后重新开始时应该随机改变,但位置不应该改变!

有谁知道我怎么做到这一点?我应该更改Bricks脚本或Inspector本身还是两者?

这是砖块脚本:

public class BricksScript : MonoBehaviour {

    // Use this for initialization
    void Start () {
    }

    // Update is called once per frame
    void Update () {
    }

    void OnCollisionEnter2D(Collision2D col){
        if (col.gameObject.tag == "ball") {
            gameObject.SetActive (false);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我的Unity安装在其他地方,但这是一个总体想法:

  • 创建一个空的游戏对象并附加管理砖块的脚本。
  • 在层次结构中,将砖块附加到brickmanager对象。
  • 在brick manager脚本Start()方法中:
    • 循环通过砖块以获得所有位置并将它们存储在列表中
    • 并第二次从列表中为他们分配随机位置。

或者,您可以将位置硬编码为砖块管理器脚本中的代码,或使用空的游戏对象来保存位置。

答案 1 :(得分:0)

谢谢你,我解决了我的问题如下:

  • 首先我创建了empty gameobject并附加script
  • 然后我按如下方式编写了脚本:

    public class positionsBricks : MonoBehaviour {
    
        public GameObject[] bricks;
        int brickNo;
        // Use this for initialization
        void Start () {
            Vector3 Brickpos = new Vector3 (transform.position.x, transform.position.y, transform.position.z);
            brickNo = Random.Range (0, bricks.Length);
            Instantiate (bricks [brickNo], Brickpos, transform.rotation);
        }
    
        // Update is called once per frame
        void Update () {
    
        }
    }
    

在检查员处,我在脚本中拖放所有预制件然后

  • 我复制了gameobject并将其放在原先prefabs所在的相同位置,并删除了原来的 $user = $this->get('security.token_storage')->getToken()->getUser(); $chartnew = $Charts->setChartNo(9999); $user->addUserschart($chartnew); $em->persist($user); $em->flush();
相关问题