本文梳理第二周训练营视频中所提到的知识点,便于大家复习巩固,也便于自己日后查阅。视频内容主要分为三个部分:

1.Unity功能介绍

2.玩泥巴游戏开发

3.Unity调试操作 

1.Unity功能界面介绍

本部分主要介绍Unity的安装、界面布局以及菜单栏几个部分,便于大家快速熟悉Unity这个开发引擎。

Unity安装与界面介绍:https://blog.csdn.net/liyuerge/article/details/78518972

Unity菜单栏介绍:https://www.jianshu.com/p/d859b60c48ae (简书上图文并茂的比较好理解)

https://www.cnblogs.com/CZoro7/p/6938937.html (文字版适合随时查找)

2.丢泥巴游戏开发

丢泥巴游戏是在线视频中的实战demo案例,本节实现基本功能的开发,并在此基础上添加“丢泥巴”作业中的额外操作功能。

2.1 基础物体的创建

首先新建一个Cube,命名为Ground,将Scale调整为适合的尺寸,为其添加一个材质信息,可以在Projerct面板下创建一个Material,调整颜色,并赋给Ground。

之后添加一个Cube作为砖块,命名为brick,添加一个Rigidbody,加入材质(这里的材质是在Asset Store下载的,是一个处理砖块纹理的材质包,其余物体例如地面和“泥巴”的材质也可以在Asset Store中下载),并拖放到Asset下,作为一个Prefab

为了管理所有的砖块,建立一个Empty GameObject,将所有砖块拖放进来,在以后对砖块统一操作时会比较方便。最终效果如下。

创建好这堵“墙”后,我们创建一个Sphere作为“泥巴”,命名为mud,添加RigidBody以及对应的材质信息,同样做成一个Prefab

2.2 为物体添加脚本,实现功能

有了上述准备工作后,就可以利用脚本控制相机视角的移动和球的发射了。

为相机创建一个脚本,脚本代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMoveAndShoot : MonoBehaviour {public float moveSpeed = 5f;public Rigidbody bullet;public float power = 1500f;private bool isRotating = false;    //旋转标志位public float rotateSpeed = 2f;public float timer = 0;public float changeTime = 2f;   //自动发射时间间隔// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {//控制移动float h = Input.GetAxis("Horizontal") * Time.deltaTime*moveSpeed;float v = Input.GetAxis("Vertical") * Time.deltaTime * moveSpeed;transform.Translate(h, v, 0f);//左键发射if (Input.GetButtonUp("Fire1")){FireMud();}//自动发射timer += Time.deltaTime;    //定时器开始工作if(timer >= changeTime)    //当定时器大于2秒时{timer = 0;FireMud();}//Camera旋转控制if (Input.GetMouseButtonDown(1))isRotating = true;if (Input.GetMouseButtonUp(1))isRotating = false;if (isRotating){Vector3 originalPosition = transform.position;Quaternion originalRotation = transform.rotation;transform.RotateAround(transform.position, transform.up, rotateSpeed * Input.GetAxis("Mouse X"));transform.RotateAround(transform.position, transform.right, -rotateSpeed * Input.GetAxis("Mouse Y"));float x = transform.eulerAngles.x;if (x < 10 || x > 80){transform.position = originalPosition;transform.rotation = originalRotation;}}}void FireMud(){Rigidbody instance = (Rigidbody)Instantiate(bullet, transform.position, transform.rotation);Vector3 fwd = transform.TransformDirection(Vector3.forward);instance.AddForce(fwd * power);}
}

并将Asset下的mud小球赋给代码中的RigidBody。

至此,可以通过键盘↑↓控制镜头移动,鼠标右键控制镜头转向,泥巴的发射默认为2秒一次,通过定时器实现,也可通过鼠标左键点击发射,根据需要选取发射方式。

3.Unity代码的调试

U3D的调试一般分为Debug.Log(简单的输出到控制台)、自带的MonoBehavior或是利用其它编译器(如VS),以下两篇博客对各类调试方法进行了较详尽的说明,可以参考:

Debug.Log和MonoBehavior调试介绍:https://www.cnblogs.com/HangZhe/p/7460413.html

Visual Studio下的调试:https://blog.csdn.net/gtncwy/article/details/44594371

网龙暑期训练营第二周:Unity介绍、调试以及小游戏demo开发相关推荐

  1. 网龙暑期训练营第三周:标准资源包的应用与岗哨、打靶任务的开发

    第三阶段的任务比较复杂,涉及到了Unity各方面的知识,叶老师也对Unity的各个重要部分进行了详细讲解.本文主要针对视频中提到的各项技术进行总结,并梳理岗哨和打靶案例的开发流程.便于各位复习与参照. ...

  2. 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频

    基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...

  3. 微信小游戏|unity搭建3D篮球小游戏场景

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 欢迎加入团队圈子!与作者面对面!直接点击! 问题描述 上一次小 ...

  4. 【抖音小游戏】 Unity制作抖音小游戏方案 最新完整详细教程来袭【持续更新】

    前言 [抖音小游戏] Unity制作抖音小游戏方案 最新完整详细教程来袭[持续更新] 一.相关准备工作 1.1 用到的相关网址 1.2 注册字节开发者后台账号 二.相关集成工作 2.1 下载需要的集成 ...

  5. Unity牧师与魔鬼小游戏(动作分离版)

    Unity牧师与魔鬼小游戏(动作分离版) 前言 这是中大计算机学院3D游戏编程课的一次作业,在这里分享一下设计思路. 主要代码上传到了gitee上,请按照后文的操作运行. 项目地址:https://g ...

  6. unity小球吃金币小游戏

    链接放在这里 unity小球吃金币小游戏-Unity3D文档类资源-CSDN下载这是我在学完虚拟现实技术这门课程后利用unity所做的小球吃金币小游戏,里面有源码和作品源文件,用u更多下载资源.学习资 ...

  7. Unity 之 转微信小游戏本地数据存储方法分享

    Unity 之 转微信小游戏本地数据存储 问题背景 微信小游戏读写本地文件 WebGL平台的一些限制 报错查看方法分享 问题背景 近期在将Unity转换为小游戏的时候发现在读写本地文件的时候,使用Ap ...

  8. Unity牧师与魔鬼小游戏

    Unity牧师与魔鬼小游戏 前言 这是中大计算机学院3D游戏编程课的一次作业,在这里分享一下设计思路. 主要代码上传到了gitee上,请按照后文的操作运行. 项目地址:https://gitee.co ...

  9. 校园导航系统---2019暑期项目第二周总结

    序: HALO,各位看客们大家好,距离暑假已经过去了两周,我们实验室的暑期留校生活也已经过去了两周,在第一周之后的一个星期,对暑期项目----校园导航系统进行了最后的完善. 历时两周完成了校园导航系统 ...

最新文章

  1. 58前端内推笔试2017(含答案)
  2. js中如何通过身份证号计算出生日期和年龄
  3. oracle12数据库安装步骤,ORACLE RAC 12C(12.2.0.1)数据库软件安装步骤
  4. JZOJ__DAY 4:【普及模拟】最大值
  5. Memcache mutex设计模式
  6. 学习android操作系统,学习Android手机操作系统笔记总结
  7. 进程和线程的本质和区别
  8. 令牌桶 限速_Go 限流器实战系列(2) Token Bucket 令牌桶
  9. C++socket编程(三):3.7 服务端回应send客户端数据
  10. mysql并发量是多少_如何为 MySQL 选择 CPU?
  11. mysql查看线程详解(转载)
  12. Java Servlet 和JSP教程(2)
  13. nmon结果分析工具_Jmeter测试工具实践:如何为Jmeter开发测试插件定制专属取样器?...
  14. Ubuntu 系列学习(四)ubuntu 22.04 安装 微信、QQ
  15. 教师要合理使用计算机,教师职称计算机考试题库
  16. 耗时两天,Html实现小米官网
  17. webpack看这一篇就够了
  18. 如何构建VoIP来是实现电话诈骗之——Asterisk的设置
  19. 学Python用什么系统?
  20. DataPipeline亮相“2021科技助力湾区数字金融发展峰会”,解锁“实时数据管理”密码

热门文章

  1. 深度学习 常用的trick
  2. vue实现自定义身份证,数字键盘(光标,输入框,键盘)
  3. 博客系统 - 数据库设计(一)
  4. java版溺尸掉三叉戟吗_「我的世界」新武器三叉戟见过吗?教你怎么获得怎么玩...
  5. 操作系统(2)_硬件环境
  6. JS的this关键字
  7. 软件测试级别之系统测试
  8. 190528每日一句,在最黑暗的时刻,我们必须集中精神寻找光明
  9. android bitmap 失真,Bitmap.createScaledBitmap 失真
  10. 王海桑《爷爷是个老头》