产生僵尸就在Unity的相机范围之外

时间:2017-06-20 11:51:30

标签: c# unity3d

通常在任何新引擎中我都尝试使用简单的图形(通常是正方形/矩形)制作一个自上而下的僵尸射击游戏,这就是我目前在Unity中尝试做的事情。

我已达到我的目的:

  • 射击的球员(并通过WASD /箭头键控制 小鼠)
  • 产生并转向玩家的僵尸
  • 可以杀死的僵尸(一旦所有僵尸都死了,另一个僵尸 波生产)

但是,目前,似乎我产生它们的方式产生的方式离玩家太远。我使用的是正交相机。

代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ZombieSpawner : MonoBehaviour {
    private int waveNumber = 0;
    public int enemiesAmount = 0;
    public GameObject zombie;
    public Camera cam;
    // Use this for initialization
    void Start () {
        cam = Camera.main;
        enemiesAmount = 0;
    }

// Update is called once per frame
void Update () {
        float height = 2f * cam.orthographicSize;
        float width = height * cam.aspect;
        if (enemiesAmount==0) {
            waveNumber++;
            for (int i = 0; i < waveNumber; i++) {
                Instantiate(zombie, new Vector3(cam.transform.position.x + Random.Range(-width, width),3,cam.transform.position.z+height+Random.Range(10,30)),Quaternion.identity);
                enemiesAmount++;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

如果你想让它们在摄像机视图之外产生僵尸,请不要增加正交尺寸。

float height = cam.orthographicSize; // now zombies spawn od camera view border
float height = cam.orthographicSize + 1 // now they spawn just outside

这是一个很小的变化,但您也可以将宽度设置为:

float width = cam.orthographicSize * cam.aspect + 1;

当剩下一个僵尸时,尝试生成另一个wave并查看游戏节奏的变化情况;)