Я пытаюсь заставить игрока прыгать, но я получаю сообщение об ошибке в fixedUpdate с rb.AddForce «Не могу назначить AddForce, потому что это группа методов», однако он работал до того, как я добавил скорость прыжка и функция прыжка, как я могу сделать эту работу?Как заставить игрока прыгать в единстве с помощью C#
Код:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed; //Creates Speed Variable
public Text countText; //Creates Count Text Variable
public Text winText; //Creates Win Text Variable
public float JumpSpeed;
private Rigidbody rb; //Creates Rigidbody Variable
private int count; //Creates Count Variable
void Start()
{
rb = GetComponent<Rigidbody>(); //sets variable for Rigidbody
count = 0;
SetCountText();
winText.text = "";
}
void FixedUpdate() //Controls
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
float moveForward = Input.GetAxis ("Forward");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce = (movement * speed);
if (Input.GetKeyUp (KeyCode.Space))
{
JumpSpeed = 5.0f;
Vector3 jump = new Vector3 (0.0f, moveForward, 0.0f);
}
}
void OnTriggerEnter(Collider other) //Collect Items
{
if (other.gameObject.CompareTag ("Pickup")) {
other.gameObject.SetActive (false);
count = count + 1;
SetCountText();
}
}
void SetCountText() //Updates Count Text
{
countText.text = "Count: " + count.ToString();
if (count >= 8)
{
winText.text = "You Win!"; //Displays Win Text
}
}
}
как это отличается от rb, AddForce (движение * скорость); bleow vector3 движение? Edit: nevermind remove the = is the difference – Nirset
Ну, есть дополнительный знак '='. Это не должно быть там. '=' - оператор присваивания. Вы присваиваете значение '(движение * скорость)' методу rb.AddForce, который, как я объясняю в своем ответе, не имеет смысла. Если вы хотите вызвать метод, вам нужно использовать оператор '()' и поместить параметры между ними, как показано в моем ответе. –