Unity制作塔防游戏

资源地址

相机移动

float mouse = Input.GetAxis("Mouse ScrollWheel");   # 获取鼠标轮滑
transform.Translate(new Vector3(h * speed, mouse * mspeed, v * speed) * Time.deltaTime, Space.World);
# Space.World 相对世界坐标的移动

敌人生成

[System.Serializable]   //表面该类可序列化,可直接在Unity上显示操作

// 协成开始
void Start()
{
    StartCoroutine(EnemyGenerate());
}

// 协成生成敌人
IEnumerator EnemyGenerate()
{
    foreach (Wave wave in waves)
    {
        for (int i = 0; i < wave.count; i++)
        {
            GameObject.Instantiate(wave.enemy, MONSTER_START.position, Quaternion.identity);
            enemyCount++;
            if (i != wave.count - 1)
            {
                yield return new WaitForSeconds(wave.rate);
            }
        }
        while (enemyCount > 0)
            yield return 0;
        // 一波敌人结束后才生成另一波敌人
        yield return new WaitForSeconds(waveTime);
    }
}

创建炮塔

切换炮塔事件

![1527150238](E:\unity3d\Tower Defense\doc\1527150238.png)

  • 点击Toggle Inspector里面对应的On Value Changed,绑定改变炮塔对应调用的函数

获取鼠标点击的游戏对象

// 返回一个从相机到屏幕点的光线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// debug
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
RaycastHit hit; // 存放碰撞物体的信息
bool isCollider;

// ray:射线对象
// layerMask:选择那个层进行碰撞检测
// hit:存放碰撞物体的信息
// maxDistance:最远距离
isCollider = Physics.Raycast(ray, out hit, 1000, LayerMask.GetMask("MapCube"));
if (isCollider)
{
    // 得到点击的mapcube
    GameObject mapCube = hit.collider.gameObject;
}

地图方块控制

  • [HideInInspector] // 不需要显示在面板
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity3D塔防游戏是使用Unity游戏引擎开发的一种游戏类型。Unity是一款功能强大的游戏引擎,可以用来创建各种类型的游戏,包括3D塔防游戏。在开发Unity3D塔防游戏时,可以使用一些现成的资源,例如Unity3D塔防游戏源码3D Tower Defense Kit 1.7,它提供了一些基本的游戏功能和模板,可以帮助开发者更快速地创建一个基本的塔防游戏。 在开始开发Unity3D塔防游戏时,首先需要进行游戏设计,确定游戏的目标、规则和玩法。接着,可以使用Unity的编辑器来创建游戏场景,并添加一些基本的元素,比如地图、敌人和防御塔。对于防御塔的创建,可以使用Unity的3D对象来制作防御塔模型,并将其添加到游戏场景中。 在游戏进行过程中,玩家需要选择和放置防御塔来抵御敌人的进攻。防御塔可以根据设定的规则自动攻击敌人,玩家需要策略性地选择防御塔的位置和类型,以有效地保护基地。同时,玩家还可以升级和升级防御塔,增强其攻击能力和防御能力,以对抗更强大的敌人。 总之,Unity3D塔防游戏是一种使用Unity游戏引擎开发的游戏类型,玩家需要选择和放置防御塔来抵御敌人的进攻,并使用策略性和升级能力来保护基地。通过使用现成的资源和Unity的编辑器,开发者可以更快速地创建一个基本的塔防游戏。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [unity3D塔防游戏源码3D Tower Defense Kit 1.7](https://download.csdn.net/download/qq_32065601/87258309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Unity实现一个3D塔防游戏](https://blog.csdn.net/voidinit/article/details/130370944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值