В иерархии У меня есть два ThirdPersonController сценарий прилагается к каждому из нихПочему при изменении скорости ходьбы персонажей во время игры работает только для одного из них?
Тогда я пошел в сценарий ThirdPersonController и изменил переменную скорость, чтобы быть открытыми:
[SerializeField] public float m_MoveSpeedMultiplier = 1f;
Тогда в моем сценарии сверху я сделал:
public float walkSpeed = 10f;
private ThirdPersonCharacter[] thirdPersonCharacter;
Тогда в Awake
void Awake()
{
thirdPersonCharacter = new ThirdPersonCharacter[2];
for(int i = 0; i < thirdPersonCharacter.Length; i++)
{
thirdPersonCharacter[i] = GetComponent<ThirdPersonCharacter>();
}
}
Затем в обновлении
void Update()
{
thirdPersonCharacter[0].m_MoveSpeedMultiplier = walkSpeed;
thirdPersonCharacter[1].m_MoveSpeedMultiplier = walkSpeed;
}
Но когда игра запущена, и я меняюсь в одном из ThirdPersonController в инспекторе в сценарии значение walkSpeed от 10 до 1 или от 10 до 20 это осуществление только один из символов. Почему это не влияет на обоих из них?
Поскольку он не работает я пробовал:
public ThirdPersonCharacter[] thirdPersonCharacter;
Затем в функции Start удалили код раньше. И просто перетащил ThirdPersonController и ThirdPersoncontroller (1) инспектору в скрипт после изменения размера третьегоPersonCharacter на 2. Скрипт теперь привязан только к ThirdPersonController.
И все же при изменении значения скорости во время работы он производит только один из них только ThirdPersonController.
Моя общая цель - иметь возможность контролировать как ThirdPersonController, так и ThirdPersonController (1) с той же скоростью в режиме реального времени во время игры, а затем также иметь возможность управлять каждой скоростью в отдельности. Поэтому я буду иметь 3 значения скорости. Один для обоих и двух для каждого. Но я пока не могу изменить их скорость.
Это еще один способ сделать это. Обратите внимание, что если вы делаете это так, вам нужно выполнить дополнительную работу, например, проверить имя игрового объекта, если вы беспокоитесь о порядке возврата «ThirdPersonCharacter». В противном случае он может вернуть 'ThirdPersonCharacter1' в качестве первого индекса на этот раз и в любое время в вашей игре, он может сначала возвратить' ThirdPersonCharacter2'. – Programmer