unity中2d的角色控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity中2d的角色控制相关的知识,希望对你有一定的参考价值。

角色控制包括

移动

跳跃

下蹲

前期准备

为了使我们的角色更加符合物理规律,需要一个Rigidbody2D组件,同时移动需要一个速度,跳跃需要一个向上的力。因此定义:

private Rigidbody2D rb;
public float speed;
public float jumppower;

防止忘记将组件拖动到脚本,可以在 start函数写

 rb= GetComponent<Rigidbody2D>();

移动

void movement()

float moveX=Input.GetAxisRaw("Horizontal");

其中GetAxisRaw可以用GetAxis代替,区别在于前者通过AW键获得的是-1,0,1三个值,后者获得的是-1~1之前的值。

通过改变二维坐标来改变我们角色的位置,scale的x值可以改变角色的朝向(1朝初始面,-1则相反)因此

void movement()

float moveX=Input.GetAxisRaw("Horizontal");
rb.velocity= new Vector2(x*speed,rb.velocity.y);
if(x!=0)

if (x > 0)

transform.localScale = new Vector3(1, 1, 1);

else

transform.localScale = new Vector3(x, 1, 1);


到这实现了角色的左右移动及其转向。

跳跃

只需要在我们按下一个键位的时候,角色会获得一个向上的力就可以解决。

Isjump = Input.GetKeyDown(KeyCode.W);
if(Isjump)

rb.velocity = Vector2.up * jumppower;

但这样会无限跳,需要添加一个检测点,只有在地面上时才可以进行跳跃,可以使用我已知的两种方法

//函数:Physics2D.OverlapCircle()
//方法:private void OnTriggerEnter2D(Collider2D collision)

控制只能在地面上时才可以跳跃。

二段跳

下蹲

以上是关于unity中2d的角色控制的主要内容,如果未能解决你的问题,请参考以下文章

unity中2d的角色控制

Unity笔记将角色的碰撞体朝向鼠标点击方向——角色朝向鼠标

Unity初学1——角色移动控制(2d)

Unity 2D:玩家角色移动脚本

unity3D:游戏分解之角色移动和相机跟随

在Unity中做一个2D游戏,放入了两个按钮: "<" 和" >",想问如何通过点击这两个按钮控制角色的左右移动