【unity】完全新手入门教程----创建项目到控制方块移动
百度新手教程,都是卖课广告,故做一个超简单的入门操作。
文章不会多做解析,只注重手把手创建一个能动的东西。最后的效果是用键盘控制方块几个方向移动一下。
一、下载安装
安装VS,个人使用的是vs2015.3.ent_chs.iso
unity使用的是:UnitySetup64-2018.2.1f1.exe百度下载安装后,下载安装**UniPatcher2018_v1.exe
二、创建项目
打开软件,点击新建:
设置好路径、项目名字等信息:
三、基础说明
1.控制说明
鼠标滚轮大小可以控制工作台缩放
按一下快捷键切换当前控制的功能,从左至右为QWERT,功能为
Q:调整视图
W:移动工具
E:旋转工具
R:缩放工具
T:选择工具
控制画面
按住键盘Alt键,然后鼠标左键拖拽画面,可以随意变换画面视角
和scene右上角的控制类似作用
如果你的设计识图角度不喜欢,点击Q然后鼠标拖拽,或者使用Alt+鼠标左键拖拽
2.摄像机
视图中的摄像机图标:
选中摄像机时,右下方有个摄像机当前拍摄出来的效果预览。
按一下w,然后鼠标点击摄像机,摄像机对象有三条红绿蓝的箭头线条,分别对应xyz轴的移动,单击箭头拖拽体验改变摄像机的位置。
按一下E,然后鼠标选中围绕的立体圈随意一条线,尝试拖拽表示改变摄像机的镜头方向。
3.光源
如图表示阳光方向为指向右下方
同理摄像机
按一下w,然后鼠标点击光源,光源对象有三条红绿蓝的箭头线条,分别对应xyz轴的移动,单击箭头拖拽体验改变光源的位置。
按一下E,然后鼠标选中围绕的立体圈随意一条线,尝试拖拽表示改变光源的照射方向。
四、开启项目
1.创建物体
鼠标右键空白处创建两个方块命名为Player和Floor,玩家和地板。
(或者创建一个方块后,下面第2部调整位置后再复制一个)
2.变形和位置
快捷键W,同理上面摄像机,三个箭头表示移动位置,将它们放在摄像机前面。
将Floor下移到Player的下面(靠近灰色地板方向拉)。
快捷键R,选中Floor三个箭头变成小方块,拉伸大小,使它变成一个地板形状
鼠标滚轮大小控制,点击Q然后鼠标拖拽,或者使用Alt+鼠标左键拖拽,使你的工作台展示如下:
3.导入资源
菜单栏的Assets---Import New Assets
导入之后会在下面Assets栏有一个资源图片,然后鼠标拖拽图片到Floor上绑定地板资源。
4.运行预览
点击头部的运行按钮,箭头
再次点击关闭运行回到编辑视图
5.物理效果
选中Player,菜单栏Compoent---Physics---Rigidbody,添加了一个重力物理效果,再次点击运行会发现它可以*下落了
6.创建脚本
鼠标右键空白处创建Script文件夹
然后选中文件夹右键,创建C#脚本命名:PlayerMove用来做控制物体移动
7.代码控制
双击脚本文件,打开VS2015
打开后脚本已经存在两个方法
修改代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour {
// 定义移动速度
public float MoveSpeed = 2f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
// 点击w或者上箭头键,前移动
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
{
this.transform.Translate(Vector3.forward * MoveSpeed * Time.deltaTime);
}
// 点击S或者下箭头键,后移动
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))
{
this.transform.Translate(Vector3.left * MoveSpeed * Time.deltaTime);
}
// 点击D或者右箭头键,右移动
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
this.transform.Translate(Vector3.right * MoveSpeed * Time.deltaTime);
}
// 点击空格键,跳跃
if (Input.GetKey(KeyCode.Space))
{
this.transform.Translate(Vector3.up);
}
// 点击c键,还原物体的锚点
if (Input.GetKey(KeyCode.C))
{
this.transform.localEulerAngles = new Vector3(0, 0, 0);
}
}
}
代码修改结束后
将脚本拖拽到物体Player上绑定
点击运行就能看到效果