Страница 1 из 1

Вызов анимации другого объекта

СообщениеДобавлено: 20 фев 2018, 01:36
GULL
Привет.Подскажите пожалуйста. У меня когда персонаж пересекает объект(триггер), нужно чтобы другой объект делал поворот на 90 градусов. Я пытаюсь это сделать через анимации. Но не знаю как теперь в скрипте вызвать эту анимацию, ведь она весит на другом объекте.Помогите ~x( ~x(
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObRot : MonoBehaviour
{
    private GameObject Rote;

    private Animator anim;
    }

    private void Awake()
    {
        anim = GetComponent<Animator>();
        Rote = GameObject.FindGameObjectWithTag("BlRot");
    }

    private void OnTriggerEnter2D(Collider2D collider)
    {
        Character unit = collider.GetComponent<Character>();

        if (unit is Character)
        {
           //Тут должен быть вызов анимации
        }
    }
}
 


И заодно тогда второй вопрос. Не вижу смысла в компоненте Animation, если есть Animator. Точнее не до конца понимаю их разницу.Можете объяснить?

Re: Вызов анимации другого объекта

СообщениеДобавлено: 20 фев 2018, 06:23
BFZ
не понятно у кого именно должна быть вызвана анимация.
если у объекта которому принадлежит collider, то например так:
Синтаксис:
Используется csharp
        if (unit is Character)
        {
           //Тут должен быть вызов анимации
           Animator animObj = unit.GetComponent<Animator>();
           animObj.SetTrigger("startMyAnim");
        }

Re: Вызов анимации другого объекта

СообщениеДобавлено: 20 фев 2018, 09:51
GULL
нет, анимация должна быть вызвана вообще у другого объекта. Ни у того что я пересекаю, ни у персонажа. Вообще у другого.

Re: Вызов анимации другого объекта

СообщениеДобавлено: 20 фев 2018, 11:03
samana
GULL писал(а):анимация должна быть вызвана вообще у другого объекта.

У вас есть ссылка на этот объект? Это объект Rote? В чём тогда проблема, обращайтесь к аниматору объекта Rote и запускайте анимацию.
Синтаксис:
Используется csharp
Rote.GetComponent<Animator>()....