一、游戏对象创建
直接创建
- 直接拖动游戏素材到 Scene 窗口中
通过创建2D Object创建
- 在 Hierarchy 视窗下右键选择 2D Object,再选择 Sprites,根据游戏对象图形选择 Square、Circle 或者其他图形
- 将游戏素材拖动到 Inspector 视窗下的 Sprite Renderer 的 Sprite 中,此时游戏对象会呈现游戏素材的样式(要提前设置图片尺寸,一般将 Pixeis Per Unit 设置为16为合适)
碰撞体的设置
- 点击游戏物体后在Inspector窗口下点击 Add Component,分别添加 Rigidbody 2D 以及合适的碰撞体(碰撞体有方形碰撞体 Box Collider 2D、圆形碰撞体 Circle Collider 2D、自定义碰撞体 Capule Collider 2D,要根据需求选择)
二、动画的设置
创建动画器与动画
- 在资源目录下右键 Creat -> Animation ,将 Animation 命名
- 将 Animation 拖到要创建动画的物体上面,此时目录下会出现一个 Animator Controller
Animator和Animation窗口的使用
- 点击 Window -> Animation -> Animation / Animator
- 设置采样率:点击 Animation 窗口的右上角,点击再勾选 Show Sample Rate
- 点击要创建动画的物体,将创建好的 Animation 拖动到 Animator 窗口中
- 重复播放:点击目录下创建的 Animation ,在 Inspect 勾选 Loop Time
动画切换
- 在 Animator 窗口的左上角点击 Parameters , 点击 + 号选择合适类型创建
- 点击 Animator 中动画之间的连接箭头,去掉 Has Exit Time 的勾,再点击 Setting ,将 Transition Duration 设置为0(动画切换更快)
4. 点击 Animator 中动画之间的连接箭头,在 Inspector -> Conditions -> 添加已创建的触发器
三、多动画切换(以 Int 类型为例)
- 在 Animator 窗口的左上角点击 Parameters , 点击+号选择 Int 类型,创建state
- 点击 Animator 中动画之间的连接箭头,在 Inspector -> Conditions -> 添加 state ,选择 Equals ,再选择要切换的动画
- 创建C Sharp脚本控制
Class AnimController
{
private float dirX = 0f;
private Animator anim;
private SpriteRenderer sprite;
private enum MovementState {
idle, running, jumping, falling }
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
UpdateAnimationState();
}
public void UpdateAnimationState()
{
MovementState state;
if(diX > 0f)
{
state = MovementState.running;
sprite.flipx = false;//反转动画的X轴
}
else if(dirX < 0f)
{
state = MovementState.running;
sprite.flipx = true;
}
else
{
state = MovementState.idle;
}
if(rb.velocity.y > .1f)
{
state = MovementState.jumping;
}
else if(rb.velocity.y < -.1f)
{
state = MovementState.falling;
}
anim.SetInterger("state",(int)state);
}
}