Я пытаюсь изменить скорость двигателя для моего HingeJoint2D с помощью скрипта, он делает случайное значение, но не применяет его к компоненту - PullRequest
0 голосов
/ 05 февраля 2020

Я пытался изменить скорость двигателя на случайное число, однако оно изменяет его только в компоненте сценария, а не в компоненте HingeJoint2D

  public float speed;
  private HingeJoint2D hj;

// Start is called before the first frame update
void Start()
{
    hj = GetComponent<HingeJoint2D>();
    speed = Random.Range(80f, 700f);
    Debug.Log(speed);

    hj.useMotor = true;

    var motor = hj.motor;
    motor.motorSpeed = speed;


}

1 Ответ

2 голосов
/ 05 февраля 2020

вы забыли установить hj в конце. измените свой код на

public float speed;
private HingeJoint2D hj;

// Start is called before the first frame update
void Start()
{
    hj = GetComponent<HingeJoint2D>();
    speed = Random.Range(80f, 700f);
    Debug.Log(speed);

    hj.useMotor = true;
    var motor = hj.motor;
    motor.motorSpeed = speed;
    hj.motor = motor;

}

В своем коде вы создали JointMotor2D и передали ему параметр из случайной функции, но никогда не передавали свой шарнирJoint недавно созданному двигателю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...