Unity游戏开发的启蒙老师是麦扣老师(在bilibili),讲的非常的棒,后悔没有早点发现麦扣老师。
第一个案例游戏(Sunny Land)
印象最深的问题:在按下空格进行跳跃时,跳不起来,或者说偶尔能跳起来,这是因为GetButtonDown() 和 FixedUpdate()
不能一起使用。FixedUpdate()需要和Time.fixeddeltaTime配合使用。
如何解决跳跃的问题:
将跳跃代码拆分开,先在Update()中设置一个bool值来判断当前状态是否为跳跃状态,然后在FixedUpdate()
中判断跳跃状态然后进行跳跃。
具体代码如下:
void Update()
{
if (Input.GetButton(“Jump”) && coll.IsTouchingLayers(Ground) == true)
{
isJumping = true;
}
//角色下蹲
Crouch();
cherryNum.text = cherryCount.ToString();
}
private void FixedUpdate()
{
if (!isHurt)
{
Move();
}
SwitchAnim();
if (isJumping == true)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce * Time.fixedDeltaTime);
anim.SetBool("jumping", true);
jumpSource.Play();
}
isJumping=false;
}
遭遇的问题2:将Setting按钮添加到场景2中时,点击按钮没反应,经百度后找到原因,是因为在Hierarchy中缺少了EventSystem导致的,
添加上即可正常使用Setting按钮。
Time.timeScale;当需要暂停时可将Time.timeScale = 0f;此时游戏静止,如果要取消静止,可以将Time.timeScale = 1f;