Unity的学习笔记-1

本次Unity的学习将跟随 M_Studio 的“Unity2018教程2D入门“进行学习

1月15日已经观看了该教程的4/30

首先是安装软件和下载素材,与教程不同的是,现在素材商店的SunnyLand不支持2018.5。最低要求为2021.3.12

所以我将教程中的2018.5,在Unity Hub中重新安装成2021.3.16,同时发现这个安装过程中的Visual Studio 2019似乎不能正常安装,需要进行一下科学上网。

在安装好软件,创建好项目之后,会发现界面似乎与教程中有一点点不同,发现教程中的Asset Stroe不在了,

创建项目要注意,不要选择上这个启用版本管理!!!

在菜单中可以找到这个

当点开Asset Stroe会发现

意思就是现在只能在线访问,点击Search online,就可以进入在线商城,搜索SunnyLand进入详情,或者点击这里直达,在登录账号之后,点击添加到我的资源,会弹出一个

接受就好

会出现一个这个

选择在unity内打开,然后就可以看到与教程中一致的import

在导入素材之后,会发现已经有切好的素材,当然也可以尝试自己切一下

而且在你打开Tile Palette(平铺调色板)之后也会看到已经自动切好的素材

布置场景

先将背景拖入场景中,注意将这里的Pixels Per Unit(单位像素数)统一调整成16,该界面是点击资源管理器中的素材进行调整

然后在Hierarchy创建Tilemap,这里和教程中不同的的是,多了很多选择。

我们选择第一个Rectangular(矩形的),其余几个是Hexagonal-Pointed-Top(六角尖顶),Hexagonal-Flat-Top(六角平顶),isometric(翻译是斜的,其实就是菱形),Isometric Z as Y(没看懂。。。)

然后就选择Tile Palette的素材进行场景绘制

就像画画一样简单进行绘制,

图层问题

图层的先后可以有两种调整方式,一种是调整order in layer(也就是同一图层上的顺序)还有Sorting Layer(图层排序?就是不同的图层)

order in layer 在同一图层上,数字越大,越在上面。

Sorting layer可以添加新图层

与以往的认知不同,这个图层越在上面它在屏幕上是越底层。

添加小狐狸

接下来,添加小狐狸,可以直接拖进去,也可以在Hierarchy右键,2D,Sprites

看到有这么多选项,(所以直接拖最好)

Triangle(三角形)Square(方形)Circle(圆形)Capsule(胶囊形)Isometric Diamond(等轴测菱形)Hexagon Flat-Top(平顶六边形)Hexagon Pointed-Top(尖顶六边形)9-Sliced(9切片)

这个小狐狸应该是方形的

将小狐狸的素材拖到sprite一栏

同时,也要注意将Pixels Per Unit(单位像素数)调整成16。

调整图层使小狐狸在最上层

设置碰撞

将小狐狸放好之后,要先让它有一定的物理特性,给小狐狸添加刚体,并赋予重力加速度

选中小狐狸,点击Add Component(添加组件),给小狐狸添加一个RigidBody 2D(刚体2D)

如果这时候点击播放,会发现小狐狸会一直往下掉

这个时候需要添加碰撞盒子,给小狐狸和地图都需要添加

小狐狸选择Add Component,在Physics 2D(2D物理)内有,BoxCollider 2D(2D方形碰撞盒子),默认的碰撞盒子会有一些大,可以点击Edit Collider(碰撞编辑)后面那个按钮去调整碰撞盒子的大小

背景也就是Tilemap,需要选择Tilemap里面的Tilemap Collider 2D(2D瓦片地图碰撞),会自动全部添加,现在小狐狸就不会一直往下掉。

设置行走

设置行走就需要进行C#代码的编写

选中小狐狸,Add Component,New Script,设置一个名字叫做PlayerControl.

然后就是代码

首先创建两个变量,一个用于承接小狐狸的刚体,一个是小狐狸行走的速度

public Rigidbody2D rb;
public float speed;

然后单独创建一个行走的方法void moveMent(){}

这时,2D游戏中行走时靠A或D,左方向键或右方向键来实现的

可以在Edit的Project Setting里有一个Input Manager(输入管理器)里面的这个Axes(轴)内的第一个Horizontal(水平的)就是我们要用到的输入对象,它可以将AD←→,变为一个float的,范围为[-1,1]的数字。

而左右移动其实也就是X坐标的值在变化,也就可以时在RigidBody上施加左右的一个力,去改变它的坐标

为0不动。

那么rb.velocity(刚体的速度) = new Vector2 ( horizontalMove * speed , rb.velocity.y),创建一个新的值,x轴的速度是速度乘以一个float的控制方向的量,y保持原有的不变

然后,将Movement放到void Update(){}内,让它每一帧都在运行这个行走函数。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerControl : MonoBehaviour
{
    public Rigidbody2D rb;
    public float speed;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame 
    void Update()
    {
        moveMent();
    }
    void moveMent()
    {
        float horizontalMove;
        horizontalMove = Input.GetAxis("Horizontal");//0是不动,正数向右,负数向左
        if (horizontalMove != 0)
        {
            rb.velocity = new Vector2(horizontalMove * speed, rb.velocity.y);
        }

    }

}

VS2019代码联想失败的解决办法

1.在Edit的Preferences(偏好设置)内的External Tools(外部工具),有一个External Script Eidter(外部script编辑器),选成vs2019,重启vs即可。

2.如果你的项目选择了PlasticSCM云端托管,会有未知错误,最好的办法是重新建立一个项目。。

版权声明:除特殊说明,博客文章均为栋dong原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
如有需要,请在留言板留言,或者添加我的QQ或者微信
我只是一个学生,如有错误或者侵权,请联系我,谢!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇