第一次用unity b站轻松塔防游戏
一.跟教程走把地面和障碍做好
至于寻路我对自带的自动寻路有印象,就用的那个组件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static UnityEngine.GraphicsBuffer;public class Find : MonoBehaviour
{public GameObject Endnote;public Transform TraFindDestination ;//寻路目标点public UnityEngine.AI.NavMeshAgent _Agent;//寻路组件// Start is called before the first frame updatevoid Start(){_Agent = this.GetComponent<UnityEngine.AI.NavMeshAgent>();Endnote = GameObject.Find("end");TraFindDestination = Endnote.transform;//Debug.Log("666");}// Update is called once per framevoid Update(){//Debug.Log("666");set findingif (_Agent && TraFindDestination) {//Debug.Log("7");_Agent.SetDestination(TraFindDestination.transform.position);}Vector3 dir = transform.position - TraFindDestination.position;if (dir.x == 0 && dir.z == 0){Destroy(Endnote);return;}}
}
就这一点代码我先是不太会整vector3判断,就用x,z了.后加了个摧毁目标(原来那个摧毁自己简直有问题)
然后就出问题了...
代码没问题,但渲染的时候没给障碍标明Navigation Static,导致敌人直接从上面走过去了.不过开始我以为是障碍不够高(当时墙只有0.1)又是调步高角度,又是调代理大小...
二.然后创建敌人生成器
把敌人一删,我发现生成敌人可以,但它们不动!
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;public class Enemy_Spawner : MonoBehaviour
{public GameObject enemyPrefrb;//敌人预制体public Transform start;public float spawnImterval = 6f;//敌人生成时间间隔float cutDown;void Start(){cutDown = spawnImterval;}// Update is called once per framevoid Update(){cutDown -= Time.deltaTime;if (cutDown <= 0){cutDown = spawnImterval;SpawnEnemy();}}void SpawnEnemy() {Instantiate(enemyPrefrb, start.position, start.rotation);}}
当时觉得世界炸了...
这不该生成后自动运行脚本吗?翻视频教程,在csdn上查,找不到相关说明(太基础了),而且我有自动运行的印象,我又在Find里Debug.Log("666");(hhh)卡了一晚上;第二天,先检查了一遍,哦!
加速度定的0.0001...(可能是把创建过程的敌人删掉改的速度没保存)然后动的没生的快...把前面的挤走了...
三.摄像机控制
这我能跟教程一样?(bushi)教程加了个范围边界,我觉得应该保留游戏特色(),没加;不过整了个空格复位;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Camera_move : MonoBehaviour
{public float moveSpeed = 5;float scrollSpeed = 600;float space = 10;Vector3 Origin;// Start is called before the first frame updatevoid Start(){Origin = transform.position;}// Update is called once per framevoid Update(){if (Input.GetKey(KeyCode.A) || Input.mousePosition.x < space){transform.position += Vector3.left * moveSpeed * Time.deltaTime;}if (Input.GetKey(KeyCode.D) || Input.mousePosition.x > Screen.width - space){transform.position += Vector3.right * moveSpeed * Time.deltaTime;}if (Input.GetKey(KeyCode.W) || Input.mousePosition.y > Screen.height - space){transform.position += Vector3.forward * moveSpeed * Time.deltaTime;}if (Input.GetKey(KeyCode.S) || Input.mousePosition.y < space){transform.position += Vector3.back * moveSpeed * Time.deltaTime;}float scroll = Input.GetAxis("Mouse ScrollWheel");if (scroll != 0) {transform.position += Vector3.up * scrollSpeed * scroll * Time.deltaTime;}if (Input.GetKeyDown(KeyCode.Space)){transform.position = Origin;}}
}
实在是整不明白怎么把transform全覆盖了,只用了position(lll¬ω¬)
第一次用unity b站轻松塔防游戏相关推荐
- 用Unity开发一款塔防游戏(一):攻击方设计
大家好.偶尔想起了这个手把手教学的.但现已长满杂草的坑,还是来挖几铲子. 这一期的游戏是最常见的类型之一--塔防. 塔防游戏相信大家并不陌生,几个主要元素如下: 1.敌方士兵 2.我方防御塔 3.我方 ...
- 塔防游戏c语言源代码,用Unity开发一款塔防游戏(一):攻击方设计
private void Update() { hpObj.rotation = mainCamera.rotation; //血条始终面向镜头 if (GameMain.instance.gameO ...
- unity制作一款塔防游戏
文章目录 介绍 寻路系统 怪物生成器 制作3种初级炮台.3种升级炮台 设置炮台属性 选择炮台,添加监听事件 炮弹追踪攻击敌人 拖动鼠标实现相机视角转换 鼠标光标放在cube上变色 文字动画 介绍 关键 ...
- 如何在unity中制作塔防游戏
塔防游戏非常流行,毫无疑问--没有什么比看着自己的防御消灭讨厌的侵略者更让人满足!在这两部分教程中,用unity来制作一个塔防游戏! 将会学习怎样...... 创建一波敌人 让它们跟随线路点 ...
- 【Unity小游戏】游戏开发案例,轻松打造一款塔防游戏!(下)
欢迎来到如何在 Unity 中创建塔防游戏的第二部分.你正在Unity中制作一个塔防游戏,在第一部分结束时,你可以放置和升级怪物.你还有一个敌人攻击饼干. 然而,敌人不知道该面对哪条路!此外,这是攻击 ...
- unity塔防游戏怪物转向_Unity官方新手游戏项目推荐合集
Unity官方新手游戏项目推荐合集 今天给同学们介绍一些Unity官方发布过的一些游戏项目,这些项目都简化了游戏开发的入门学习过程,可以快速地制作出游戏,适合新手入门体验,下面就带同学们看一看: Un ...
- unity塔防游戏怪物转向_玩一玩这款塔防游戏?
关注上方蓝字获得更多内容 今日分享塔防游戏 塔防游戏,曾经也是风靡一时,非常受人喜欢的. 今天小皮分享的这款和保卫萝卜可以说是异曲同工,还是不错的. 该游戏拥有精美的画面,并且在形象设计上也制作的相当 ...
- unity塔防游戏,可以正常运行
unity塔防游戏 游戏截图如下:(下载链接在文末) 点我下载资源 https://download.csdn.net/download/weixin_43474701/64828307
- unity轻松制作塔防游戏
课程介绍:玩儿过塔防游戏吗?听说过<保卫萝卜>和<塔防战争>吗?本系列课程使用简单易懂的逻辑带你一起剖析这类游戏制作的过程.本案例完美展示了该类项目从搭建到完成的完整架构体系, ...
最新文章
- 你需要掌握的有关.NET DateTime类型的知识点和坑位 都在这里
- 号称能自动编程60年,“进化计算”究竟进化到哪一步了?
- 不错的jquery插件
- 健身环爆打老头环!超高难度击败boss,宫崎英高估计也想不到,代码+硬件教程已开源...
- linux 对象 调出r_【转】Linux - chown 中的 -R 参数
- 95-235-065-源码-task-SourceStreamTask
- matplotlib画图一行三个图
- 快速解决低版本Xcode不支持高版本iOS真机调试问题
- jvm 调优 2020.09.07
- Xray扫描器SQL注入检测:sqldet
- EXCEL抓取SQL查询数据
- 解决 fxp/composer-asset-plugin 包报错问题
- python使用phone实现手机号归属地查询
- Word文档乱码恢复操作----免费指导
- markdown使用
- 微信小程序总结(阶段第一次总结)
- 软考高项——【第一章-信息系统】超详细知识点
- wine下微信中文乱码修订
- 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。
- 北京卓镭激光完成近亿元B轮融资,君联资本领投
热门文章
- 数据库表里有数据如何修改字段类型
- MX-6924F5 高通QCN9024/5GHz/4x4 MIMO/802.11a/n/ac/ax/WiFi6模块
- RK3568 LCD使用
- conda Solving environment: failed InvalidVersionSpecError: Invalid version spec: =2.7
- c盘html文件能删除吗,appdata是什么文件夹 C盘Appdata文件能不能删除?
- android手机模拟屏幕点击
- 15kw充电桩模块设计,源代码,原理图,pcb
- Python中的UI设计程序Designer配置
- docker部署jar包的几种方式
- 音视频系列--音频基本操作(音频裁剪,音频和音频混合,音频和视频混合)