我正在使用Unity制作一个基于教程的跨棋盘游戏。当我添加一个跳跃动画时会出现这个问题。我所有的代码都来自那个教程,除了一个值之外没有做任何更改。
我知道哪一行代码是错误的,但我不知道为什么,我不知道如何修复它。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Playermovement : MonoBehaviour
{
private Rigidbody2D rb;
public float jumpAmount = 1;
bool isGrounded;
public Transform groundCheck;
public LayerMask groundlayer;
public Animator anim;
public float overlap = 0.5f;
void Start()
{
rb = gameObject.GetComponent<Rigidbody2D>();
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (isGrounded)
{
Jump();
}
}
}
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, overlap, groundlayer);
}
void Jump()
{
rb.AddForce(Vector2.up *5* jumpAmount, ForceMode2D.Impulse);
}
if(isGrounded)
{
anim.SetBool("Jump",false);
}
else
{
anim.SetBool("Jump", true);
}
}
有人知道这是什么问题吗?提前感谢那些回答的人!
资源\脚本\玩家动作.cs(52,1):错误CS1022:应为类型或命名空间定义或文件结尾
这是我收到的错误信息。我知道它告诉我错误发生在第52行(也就是最后一行)的第一个字符上,但除此之外我什么都不知道,因为该行只有一个花括号。
1条答案
按热度按时间z0qdvdin1#
问题出在
if (isGrounded)
语句上。if/else
语句需要在method/function
中,没有method/function
就无法工作。