Я создаю управление на одном джойстике, для двух различных объектов. Ось X отвечает за один объект, а ось Z за другой. Чтобы они двигались в нужном направлении я использую тернарные операторы. Вот часть кода:
public float speed;
private float moveInput;
private Rigidbody rb;
public Joystick j;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
if (j.Horizontal < 0)
{
j.Vertical < 0 ? ((j.Vertical < j.Horizontal) ? moveVertical() : moveHorizontal()) : ((j.Vertical > -j.Horizontal) ? moveVertical() : moveHorizontal());
}
else
{
j.Vertical < 0 ? ((-j.Vertical > j.Horizontal) ? moveVertical() : moveHorizontal()) : ((j.Vertical > j.Horizontal) ? moveVertical() : moveHorizontal());
}
}
void moveHorizontal()
{
moveInput = -j.Horizontal;
rb.velocity = new Vector3(moveInput * speed, rb.velocity.y, rb.velocity.z);
}
void moveVertical()
{
moveInput = -j.Vertical;
rb.velocity = new Vector3(rb.velocity.x, rb.velocity.y, moveInput * speed);
}
Но юнити выдает ошибку:
Я знаю, что эти тернарные операторы нужно присвоить, но так как я использую ссылки на функции, я не могу понять к чему присваивать их.