всем привет, имеется такой скрипт:
public class Hero : MonoBehaviour
{
public CharacterController hero;
public float speed = 10;
public float gravity = 5F;
private Vector3 moveDirection;
GameObject[] tree = GameObject.FindGameObjectsWithTag("tree");
private AnimationClip NewAnimationn;
// Use this for initialization
void Start()
{
hero = gameObject.GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
Vector3 moveDirection = Vector3.zero;
if (hero.isGrounded)
{
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
// раскоментировать для прыжка
// if (Input.GetButton("Jump"))
// moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
hero.Move(moveDirection * Time.deltaTime);
if (Input.GetKey(KeyCode.A))
{
for (int i=0;i<tree.Length;i++)
{
var p= tree[i].GetComponent<Animation>();
p.AddClip( NewAnimationn,"TimeLapse");
p.Play();
}
}
}
На сцене имеется префаб- дерево, и не одно, на все префабы я добавил тег "tree" - и на строке
GameObject[] tree = GameObject.FindGameObjectsWithTag("tree");
- ищу объекты по тегу и запихиваю их в массив, затем при нажатии кнопки D(У меня и персонаж в сторону двигается) и я перебера этот массив - т.е обращаюсь к каждоиу объекту с таким тегом и его компоненте анимация и все это присваиваю в поле с именем p , что бы потом на нем вызвать метод AddClipp() - с помощью которого добовить к каждому префабу дерева нужную мне анимацию, которую я по идее должен передать в качестве аргумента AddClipp()
Как мне в поле NewAnimationn - передать ссылку на
Это вообще анимация? почему спрашиваю? Потому что не знаю! Ведь в проекте также создался файл
И как я понимаю это сам файл анимации, а первый - это так называемый аниматор. Разъясните что к чему.
И последнее - Unity исключение
- при нажатии на клавишу A . В студии же это строка
for (int i=0;i<tree.Length;i++)
- т.е начало цикла