В Иерархии у меня есть 2 ThirdPersonController. В окне> Animator я создал новое пустое состояние, названное его Walk, и установил его на HumanoidWalk, поэтому при запуске игры оба игрока идут.Как я могу изменить скорость движения каждого игрового объекта?
На одном из них я добавил скрипт и как Prefab второй ThirdPersonController (1).
Затем, при запуске игры, он создает клоны ThirdPersonController (1). Итак, я вижу в иерархии больше N ThirdPersoncontrollers.
Сегодня, чтобы изменить скорость ходьбы для каждого третьего контролера, я меняю инспектор на множитель скорости перемещения. Но если я хочу в скрипте уже при создании клонов, чтобы установить для каждой другой скорость, как я могу это сделать?
using UnityEngine;
using System.Collections;
public class Multiple_objects : MonoBehaviour {
public GameObject prefab;
public GameObject[] gos;
public int NumberOfObjects;
void Awake()
{
gos = new GameObject[NumberOfObjects];
for(int i = 0; i < gos.Length; i++)
{
GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
gos [i] = clone;
}
}
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
}
Что я попытался сейчас, чтобы получить Animator компонент префаб и установите скорость всех клонов:
using UnityEngine;
using System.Collections;
public class Multiple_objects : MonoBehaviour {
public GameObject prefab;
public GameObject[] gos;
public int NumberOfObjects;
private Animator _animaotr;
void Awake()
{
gos = new GameObject[NumberOfObjects];
for(int i = 0; i < gos.Length; i++)
{
GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
gos [i] = clone;
_animaotr.speed = 10;
}
}
// Use this for initialization
void Start() {
_animaotr = prefab.GetComponent<Animator>();
}
// Update is called once per frame
void Update() {
}
}
Но главная проблема в том, что на моем первом ThirdPersonController в иерархии оригинальный, который я создал в окне> Пустое состояние аниматора, называемое «Прогулка» и установите HumandoidWalk.
Теперь, чтобы установить скорость по какой-то причине изменения скорости аниматор никогда эффект ничего, например:
_animaotr.speed = 10;
только при изменении скорости в ThirdPersonController> Инспектор> Third Person символов (Script)> Move Speed мультипликатор. И он меняет одну и ту же скорость на все третьи контроллеры в иерархии, включая этот клон.
Но как изменить каждую скорость клонирования на другую скорость? И почему _animator.speed ничего не меняет, и мне нужно использовать этот множитель скорости перемещения?
Свойство m_MoveSpeedMultiplier не существует. –
@ TheLostLostit Пожалуйста, прочтите инструкцию еще раз. ** ", чтобы получить доступ к нему во время выполнения, вам нужно перейти от' float m_MoveSpeedMultiplier = 1f; 'к' public float m_MoveSpeedMultiplier = 1f; 'в сценарии' ThirdPersonCharacter'. ** – Programmer