Unity3D新手教学,让你十二小时,从入门到掌握!(一)_unity3d使用教程-程序员宅基地

技术标签: Unity3D  Unity教学  Unity  Unity入门教学  Unity新手教学  

(日期2021.3.6)声明!


此系列文章是我多年前自学时写的几篇随笔,漏洞百出,承蒙大家的厚爱!
即日起,最新**《Aries-Unity入门》**系列课程开始更新,欢迎大家关注赏脸,也请大家多多指教
本站:https://blog.csdn.net/aries_h/category_10841366.html
B站:https://space.bilibili.com/818634/video
QQ交流群:794690306

以下为2015年原文


首先声明一下,我用的Unity版本是4.6.6,编译环境是VS2010,其余的我会慢慢介绍,安装的过程这里我就不做讲解了,度娘那会做的比我详细。安装包可以在最下面的联系方式找我要,现在开始进入主题。
打开Unity以后,我们先新建工程,这里要注意,一定要一个汉字都不能有,**一定!**避免出现不必要的Bug。
这里写图片描述

打开工程以后,就可以看到我们的Unity的操作界面。

这里写图片描述

这个我用着不方便,按照我个人的习惯,变成了这样的布局,当然这是个人喜好,可以不用模仿我。

这里写图片描述

那么这里每个模块的每个功能我就不一一介绍了,具体功能介绍我推荐给大家几本书,以供参考。

这里写图片描述

这里写图片描述

首先看这里

这里写图片描述

快捷键从左至右为QWERT,功能为
Q:调整视图
W:移动工具
E:旋转工具
R:缩放工具
T:选择工具
鼠标右键为旋转视图,鼠标中键等于按下Q的左键操作。

现在,我们来创建一个GameObject来练习如何操作Unity3D。

首先,创建一个Cube。

这里写图片描述

然后调整到MainCamera能观看到的范围内。

这里写图片描述

在这里我要介绍一下MainCamera,这个是游戏的主摄像机,也就是说我们玩游戏的视图都是这个东西拍摄下来的游戏引擎里的游戏对象。因为,场景没有光源,所以MainCamera看到的东西比较暗,那么我们为场景添加光源,然后选中这个Cube按F2重命名为Floor,并将Floor通过缩放工具变成我们需要用的地板。

这里写图片描述

这里写图片描述

下面我们在Floor的上方再新建一个Cube,作为我们的主角,命名为Player。

这里写图片描述

现在我们点击Unity上方像播放似的那个按钮,就是运行游戏,可以法线并没有什么变化,现在我们给主角添加刚体。----Rigidbody
并运行游戏。

这里写图片描述

这里写图片描述

可以看到我们的Player掉到了Floor上,因为我们添加了物理引擎。他可以模拟重力,模拟碰撞、、、等等。

下面开始用代码让我们的Player动起来吧!

首先先创建C#脚本文件。

创建脚本前以防我们的工程文件会很乱,所以我们要新建一些文件夹,为我们的资源分类,我分了这些类,并且创建了一个PlayerMove的C#脚本。

这里写图片描述

这里写图片描述

双击用VS2010打开脚本。

这里写图片描述

下面我们开始写移动的代码。

public class PlayerMove : MonoBehaviour {

    //定义移动的速度
    public float MoveSpeed = 2f;
    //定义旋转的速度
    public float RotateSpeed = 0.01f;


	void Start () {

	}
	
	void Update () {

        //如果按下W或上方向键
        if(Input.GetKey(KeyCode.W)||Input.GetKey(KeyCode.UpArrow))
        {
            //以MoveSpeed的速度向正前方移动
            this.transform.Translate(Vector3.forward*MoveSpeed*Time.deltaTime);
        }
        if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
        {
            this.transform.Translate(Vector3.back * MoveSpeed*Time.deltaTime);
        }

        //如果按下A或左方向键
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
        {
            //以RotateSpeed为速度向左旋转
            this.transform.Rotate(Vector3.down * RotateSpeed);
        } 
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            this.transform.Rotate(Vector3.up * RotateSpeed);
        }
	
	}
}

把这个代码托给Player。

这里写图片描述

好了,运行游戏,你的Player已经可以移动了。

这里写图片描述

按下Ctrl+S保存场景,第一讲到此结束,未完待续。。。 。。。

联系方式
QQ交流群:794690306

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Aries_H/article/details/47307799

智能推荐

UDP通信_udp虽然是非面向连接的通信,在发送数据之前也需要先调用tcon指令-程序员宅基地

文章浏览阅读532次。代码下载地址:http://download.csdn.net/detail/u011324501/9420980UDP和TCP均指通信协议,那么,既然代表通信协议,UDP和TCP都是建立一个“通道”就可以进行服务端/客户端间的数据收发。它们的区别主要在于:UDP协议是面向非连接(不可靠)的传输协议,也就是不需要与服务端建立连接,就直接将数据发送给服务端,同时,无机制保证这条数据已成功发送给服_udp虽然是非面向连接的通信,在发送数据之前也需要先调用tcon指令

【菜鸟也能玩转OpenGL】OpenGL绘制正方形_ooengl菜鸟-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏24次。本系列文章由 莫问 出品,转载请注明出处。文章链接:http://blog.csdn.net/mni2005/article/details/27228111作者:莫问(mni2005) 邮箱:[email protected]_ooengl菜鸟

linux sh脚本无法执行_sh脚本无法直接运行-程序员宅基地

文章浏览阅读1.9k次。linux 执行sh文件_sh脚本无法直接运行

Postgresql: 动态SQL语句中不能使用Select into?_postgres 使用string_agg 不能select into 到另一个字段-程序员宅基地

文章浏览阅读7.9k次。下面是出错的存储过程:CREATE or Replace FUNCTION func_getnextbigid( tablename varchar(240), idname varchar(20) default 'id')RETURNS bigint AS $funcbody$Declare sqlstring varchar(240); currentId bigint;Begin sqlstring:= 'select max("' ||_postgres 使用string_agg 不能select into 到另一个字段

Linux环境下的C语言环境配置及安装技巧-程序员宅基地

文章浏览阅读2.7k次。本地环境设置如果您想要设置 C 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。文本编辑器这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/..._linux .exe需要什么环境 c

开始使用Keepass 管理密码-程序员宅基地

文章浏览阅读149次。其实很早以前就用过KeePass Password Safe ,不过没有贯彻下去 后来管理密码的方式有下面四种: 一是不管,后果是惨痛的,也浪费了更多的时间 用一个txt 文件,不过密码是用助记码写的,防止别人 还有是发一封邮件到gmail 中,gmail中搜索功能不错 最常用的是LastPass,很不错,不过害怕突然有一天这一点云服务不能用...

随便推点

postgre报错:RETURNING “id“ was aborted: ERROR: null value in column “id“ violates not-null constraint_null value in column "id" violates not-null constr-程序员宅基地

文章浏览阅读1.3w次,点赞6次,收藏18次。我在使用 postgre 插入数据的时候报了一个错:RETURNING "id" was aborted: ERROR: null value in column "id" violates not-null constraint表的创建 sql 语句如下:CREATE TABLE city( id int8 PRIMARY KEY NOT NULL , name varchar(30) NOT NULL , gov_area VARCHAR(100) NOT NULL );后来我_null value in column "id" violates not-null constraint

buuctf-misc练习(2)_buuctf在线评的misc-程序员宅基地

文章浏览阅读218次。BUUCTFLSB文件中的秘密wiresharkrarqrzip伪加密ningen被嗅探的能量LSB既然是LSB使用Stegsolve得到二维码,扫一扫即可flag是:flag{1sb_i4_s0_Ea4y}文件中的秘密右键属性详细信息flag是:flag{870c5a72806115cb5439345d8b014396}wireshark给了提示是登录登录方法,就直接过滤搜http.request.method==POSTflag是:flag{ffb7567a1d4f4_buuctf在线评的misc

【vue设计与实现】渲染器 1-渲染器与相应系统的结合&渲染器基本概念_innerhtml和渲染器-程序员宅基地

文章浏览阅读347次。由于首次渲染时已经把oldVnode渲染到container内了,所以再次调用renderer.render函数并尝试渲染newVnode的时候,就不能简单的执行挂载动作了。这里,先暂时将渲染器限定在DOM平台,既然渲染器用来渲染真实DOM元素,那么严格来说,下面的函数就是一个合格的渲染器。渲染器就是用来执行渲染任务的,渲染器不仅能够渲染真是DOM元素,还是框架跨平台能力的关键。关于这里为什么用了一个createRender的函数,其实渲染器和渲染的概念是不同的,这就是响应系统和渲染器之间的关系。..._innerhtml和渲染器

iOS JSON与Object之间的映射 ObjectMapper For Swift_swift json到object-程序员宅基地

文章浏览阅读8.9k次。在实际项目开发过程中,很多时候移动终端设备都要与服务器进行数据交互。两者之间的数据格式通常为 JSON 和 XML。而 JSON 数据格式因其简单、易操作、高效率的特点而被广大开发者所使用。在项目开发中,根据不同的业务我们需要创建不同 Model。在成功接收到从服务器返回过来的数据后,我们可以将 JSON 数据当作一个个的键值对然后进行解析,虽然这也算是一种解决方式,但一定程度上加大开发者的工作量。_swift json到object

Linux svn 导出diff修改文件命令_svn如何批量生成diff-程序员宅基地

文章浏览阅读1.1k次。svn st -q 查看在当前目录下的所有修改过的文件。svn diff ./ 查看文件修改内容svn diff > modify.dff ./ 导出当前目录下的所有修改文件diff文件, modify.diff : 自定义命名文件。就是修改的内容文件。svn diff a...._svn如何批量生成diff

在ROS中使用相机_gazebo相机标定板-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏76次。在机器人中经常使用相机,在导航或者抓取规划时需要解析相机数据,需要理解相机图像的模式和相关的标签以及坐标系。本文介绍ROS中相机坐标的变换、相机标定、使用OpenCV进行简单的图像处理。投影变换到相机坐标相机内部校准标定立体相机标定在ROS中使用OpenCV使用OpenCV寻找彩色像素点查找边缘投影变换到相机坐标将图像与空间坐标相关联的投影变换的必要步骤是..._gazebo相机标定板

推荐文章

热门文章

相关标签