private Rigidbody2D rigidbody2D;
//获取当前组件的rigidbody
rigidbody2D = GetComponent<Rigidbody2D>();
获取横向输入,并且通过给予速度移动
// float horizontalInput = Input.GetAxis("Horizontal");//-1~1,float 该方式存在加速度
float horizontalInput = Input.GetAxisRaw("Horizontal");//-1~1 该方式立即
rigidbody2D.velocity = new Vector2(horizontalInput * speed, rigidbody2D.velocity.y);
3种翻转方式:
1. 修改transform中的scale,使x=-1;
2. 修改transform中的rotation,使y=180;
3. sprite renderer, 修改flip 选中x, 该方式不改变当前对象的碰撞体等挂载内容;
修改scale属性的代码:
if (horizontalInput != 0)
{
transform.localScale = new Vector3(horizontalInput, 1, 1);
}
创建物理摩擦材质,设置fiction为0不会和场景中组件固定;
F2集体修改
在同一个组件下,建立子object, 用于检测触ground, gizmo可以设置icon大小
图层实例: public LayerMask groundLayer;
isGround = Physics2D.OverlapCircle(groundCheck.position, checkRadius, groundLayer);
绘制辅助点显示:
private void OnDrawGizmos()
{
Gizmos.DrawWireSphere(groundCheck.position, checkRadius);
}
可实时观察效果