Unity2D_神奇宝贝#1
furrain 5/15/2022 Unity
# 大纲
目前策划是这个游戏主要分两个部分
- 大世界移动窗口
- 遇怪战斗窗口
首先大世界部分
# 下载资源
https://github.com/GameDevExperiments/Pokemon-Tutorial-Art-Assets
里面有一些图片资源
# 创建项目
打开unity-新建项目-2d
将下载的资源放在Assets下面
图片资源需要调整一下。
选择所有图片
按着下图修改
方便后面在整张图片中取得某些元素
# 绘制地图
首先处理图片资源。
选择tileset,案图片修改,点击Spirite Editor
选择按区域大小分割,16*16。
在下图区域
右键--2D Object--TileMap 瓦片地图上面paint我们切割的tile 制作地图
c菜单栏---window--2d--tilepaltte 打开瓦片调色板
创建一个新的调色板,保存在Assert > Tiles
把分割好的tileset图片拖进去,导入。保存在 Assert > Tiles
选择一个tile,在scene上paint 注意当前paint的Tilemap哪一个,不要涂错了
# 创建角色
用同样的流程处理chacater图片
选择一个chacater0 拖到scene上
自动生成一个gameobject,改名叫Player
但是此时界面上看不到,因为layer 层级关系,被 background覆盖了
选择Layer > Edit Layer
新建 排序层,显示顺序 由下到上的 player显示在最上层
分别设置每个gameobject的sortlayer
正常显示。
# 角色移动脚本
新建 PlayerController.cs文件
用visual studio打开
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// public的变量会在unity中显示 或者[SerializeField] float moveSpeed;也是一样的
public float moveSpeed = 5.0f;
private bool isMoving;
private Vector2 input;
void Update()
{
if (!isMoving)
{
input.x = Input.GetAxisRaw("Horizontal");
input.y = Input.GetAxisRaw("Vertical");
// 确保不能斜着移动
if (input.x != 0)
{
input.y = 0;
}
if (input != Vector2.zero)
{
animator.SetFloat("moveX", input.x);
animator.SetFloat("moveY", input.y);
Vector3 targetPos = transform.position;
targetPos.x += input.x;
targetPos.y += input.y;
// 开启协程,暂时不懂
StartCoroutine(Move(targetPos));
}
}
}
IEnumerator Move(Vector3 targetPos)
{
isMoving = true;
// 这里,感觉是如果移动的距离大于一个定值,才会移动,否则继续累积这个移动距离
while((targetPos - transform.position).sqrMagnitude > Mathf.Epsilon) {
transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
yield return null;
}
transform.position = targetPos;
isMoving = false;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
把脚本拖到Player的这个位置,或者点击add Component搜索脚本名字都可以
修改数值
点击屏幕中间最上面运行游戏按钮测试,ok
写文档是真累啊 淦
!!!