Здравствуйте, есть определенное количество объектов, которые должны передвигаться. При вызове функции PlayerWalking(класс PlayerMovement) из другого скрипта(Test) ничего не происходит(если вызывать вызывать в PlayerMovement, то всё работает). Помогите разобраться.
Код класса PlayerMovement:
public class PlayerMovement : MonoBehaviour
{
private float _playerSpeed = 500f;
// Ходьба осуществляется в соответствии с заданым направлением, пример: (1, 0, 0); (1, 0, -1)...
public void PlayerWalking(Vector3 movementVector, float movementCoefficient)
{
float playerDirectionX = movementVector.x;
float playerDirectionZ = movementVector.z;
gameObject.transform.Translate(
Vector3.forward * _playerSpeed * playerDirectionX * movementCoefficient * Time.deltaTime +
Vector3.right * _playerSpeed * playerDirectionZ * movementCoefficient * Time.deltaTime);
}
}
Код класса Test:
public class Test : MonoBehaviour
{
private List<GameObject> objects;
private PlayerMovement playerMovement;
void Update()
{
objects = FindInActiveObjectsByTag("Player");
for (int n = 0; n < objects.Count; n++)
{
playerMovement = objects[n].GetComponent<PlayerMovement>();
playerMovement.PlayerWalking(new Vector3(1f, 0f, 1f), 1f);
}
}
// Функция, которая находит все объекты с определенным тегом
private List<GameObject> FindInActiveObjectsByTag(string tag)
{
List<GameObject> validTransforms = new List<GameObject>();
Transform[] objs = Resources.FindObjectsOfTypeAll<Transform>() as Transform[];
for (int i = 0; i < objs.Length; i++)
{
if (objs[i].hideFlags == HideFlags.None)
{
if (objs[i].gameObject.CompareTag(tag))
{
validTransforms.Add(objs[i].gameObject);
}
}
}
return validTransforms;
}
}
Насколько я понял из тестов, то ссылки на все объекты работают, а вот движения так и не происходит