Unity2D游戏制作的基本流程
⼈物动画:序列帧动画(多图),整体图⽤之前需要切割,并保证每个精灵的打开Animation后,拖⼊对映动画的⼏张图⽚,⾃动⽣成帧动画,需要操作动画的⾓⾊需要添加Animator组件,除UI以外的精灵需要注意,Pixels Per Unit需要设置为同样⼤⼩。⾓⾊的朝向可以通过总之Scale的X来控制或者通过Sprite Renderer的Flip的X来控制。
动画控制:Animator,理清每个动画之间相互切换的关系和条件,设置对应的参数。值得注意的⼀点,因为是2D动画,所以可以把动画的切换关闭,将Has Exit Time关闭,Transition Duratin设置为0。有时动画需要播放完成后执⾏⼀些函数可以在需要播放的动画中添加⼀个事件,事件将在设置事件的地⽅执⾏,事件需要指定⼀个函数,函数需要为public修饰。
蹲下穿越障碍:⼀般是通过设置两个碰撞体,上下各⼀个,蹲下时,关闭上⽅的碰撞体
跳跃动画:为了防⽌⽆线跳跃,可以在⾓⾊脚下放⼀个空物体,通过Physics2D来检测
private bool isGround;
public Transform groundJump;//外部设置的那个空物体
public LayerMask ground;//外部传⼊
isGround = Physics2D.OverlapCircle(groundJump.position, 0.2f, ground);//可以获得⼀个布尔值来判断是否在地⾯上
⾏⾛动画:代码上通过Input来书写,通过刚体⾃带属性velocity来施加移动,如果想要通过虚拟按键,,下附组件包Joystick Pack,对应⽂件中有Prefabs,将Variable Joystick拖⼊到Canvas下就可以使⽤了,其他的可以试试。
public Joystick joy;
public class Player: MonoBehaviour
{
void PlayerMove()
{
//⾓⾊移动
movePos = joy.Horizontal;
playerAni.SetFloat(“running”, Mathf.Abs(movePos));
if (movePos != 0)canvas动画
{
playerRb.velocity = new Vector2(movePos * moveSpeed * Time.fixedDeltaTime,
playerRb.velocity.y);
}
if (movePos < 0)
{
playerTrans.localScale = new Vector3(-1, 1, 1);
}
else if (movePos > 0)
{
playerTrans.localScale = new Vector3(1, 1, 1);
}
}
}
地形:需要先创建Tilemap游戏物体,地形所需图⼀般需要切割好后拖⼊Tile Palette⾯板中,可创建多个TilePalette,⽤于不同的作⽤,举例,有些是地板或者⼀些需要有碰撞,另⼀些可以是背景之类的,如果需要有碰撞,可以添加特有的碰撞体Tilemap Collider 2D。这⾥提到⼀个组件,Platform Effector 2D,可实现从下跳跃到上⽅,并在上⽅站⽴。(并不完美,后续可以⾃⼰写脚本来实现下跳。)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。