У меня 2D игра.Сделал стрельбу и пули. При нажатии на кнопку выстрела, создаётся пуля со скриптом "moveScript".Но появляется проблема, если персонаж идёт вправо, то всё хорошо, пуля летит вправо. А если он идёт влево, то пуля так же идёт вправо. В скрипте есть directionInput и он всегда равен 1, как мне его менять? Я думаю может сделать вызявать во время спавна пули скрипт персонажа, в котором мы возьмём уже имеющийся facingright и переобразуем его в переменную int directionInout, так что бы есть FR(true) тогда DI = 1, а если false то -1.
Делал так, но не
using UnityEngine;
using System.Collections;
public class MoveScript : MonoBehaviour
{
public Vector2 speed = new Vector2(10, 10);
public bool facingRight = true;
public int directionInput = 1;
public Vector2 direction = new Vector2(0,0);
public bool LeftRight;
private Vector2 movement;
void Update()
{
CharacterController1 LR = GetComponent<CharacterController1>();
LeftRight = LR.facingRight;
if (LeftRight == true)
{
directionInput = 1;
}else if (LeftRight == false)
{
directionInput = -1;
}
movement = new Vector2(speed.x * directionInput, speed.y * direction.y);
}
void FixedUpdate()
{
GetComponent<Rigidbody2D>().velocity = movement;
if (directionInput > 0 && !facingRight)
Flip();
else if (directionInput < 0 && facingRight)
Flip();
}
void WalkLeft()
{
directionInput = -1;
}
void WalkRight()
{
directionInput = 1;
}
void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
работает( Что делать?