Помогите, пожалуйста, исправить скрипт. Нужно чтобы анимация проигрывалась по нажатию кнопки. Пока что лишь выдает ошибку "Assets/Scripts/Attack.cs(15,23): error CS1061: Type `UnityEngine.Component' does not contain a definition for `Play' and no extension method `Play' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)". Вот скрипт
using UnityEngine; using System.Collections;
public class Attack : MonoBehaviour {
// Use this for initialization void Start () {
}
// Update is called once per frame void Update () { if (Input.GetKey(KeyCode.Space))//если не ошибаюсь, что 0, а не 1 { animation.Play("Attakc");//как-то так должно быть } } }
Сообщение отредактировал Vitelch - Пятница, 29 Апреля 2016, 22:33
Хм... исправил.Теперь вот так при нажатии кнопки пишет "MissingComponentException: There is no 'Animation' attached to the "Player" game object, but a script is trying to access it. You probably need to add a Animation to the game object "Player". Or your script needs to check if the component is attached before using it. UnityEngine.Animation.Play (System.String animation) (at C:/buildslave/unity/build/artifacts/generated/common/modules/Animation/AnimationsBindings.gen.cs:420) Player2.Update () (at Assets/Scripts/Player2.cs:35)".Попробовал поставить Animation на объект. Но ничего не изменилось
Перевел ошибку, начал исправлять. Теперь пишет, мол, нет клипа анимации "The animation state Attack could not be played because it couldn't be found! Please attach an animation clip with the name 'Attack' or call this function only for existing animations. UnityEngine.Animation:Play(String) Attack:Update() (at Assets/Scripts/Attack.cs:16)"
Вот такое выдает Assets/Scripts/Attack.cs(11,37): error CS1525: Unexpected symbol `(', expecting `identifier' Я так понял, он ожидал идентификатор вместо какой-то скобки.
Сообщение отредактировал Vitelch - Пятница, 29 Апреля 2016, 23:21
Пошаманил немного, во общем осталась одна ошибка Assets/Scripts/A_attackPl1.cs(2,7): error CS0246: The type or namespace name `Unity' could not be found. Are you missing a using directive or an assembly reference?
using UnityEngine; using System.Collections; using System;
public class AnimatePlayer : MonoBehaviour { public Animation anim; //=====
//=====
public AnimationClip Run; public AnimationClip stay1; public AnimationClip RunLeft; public AnimationClip RunRight; public AnimationClip RunBack; public AnimationClip Shoot; private PlayerInfo PlInf; //==== public void Start () { PlInf = GetComponent<PlayerInfo> (); anim.Stop(); }
Добавлено (30 апреля 2016, 13:31) --------------------------------------------- Zekkin, во общем такой скрипт я навоял, опираясь на ваш,
using Unity.Engine; using System.Collections; using System;
public class A_attackPl1 : MonoBehaviour { public Animation anim;
public AnimationClip a_attackPL1; //Use this for initialization void Start() { PlInf = GetComponent<PlayerInfo> (); anim.Stop(); }
//Update is called once per frame void Update() {
if (Input.GetKey (KeyCode.Space)){
RunAnimation(); anim ["Attack"].speed = 1f; } } }
но все-равно выдает ошибку The type or namespace name `Unity' could not be found. Are you missing a using directive or an assembly reference?
Добавлено (30 апреля 2016, 14:12) --------------------------------------------- Ребят, решил заняться пока скриптом для бота, писал по туториалу, но все-равно выдает ошибку The type or namespace name `Unity' could not be found. Are you missing a using directive or an assembly reference? Пробовал в полностью чистом проекте. Как исправить эту ошибку?
Добавлено (02 мая 2016, 18:33) --------------------------------------------- Помогите еще разок, пожалуйста. Нужно сделать так, чтобы когда бот приближался к игроку, он вращался с заданной скоростью. Заранее спасибо.
Добавлено (02 мая 2016, 18:43) --------------------------------------------- Вот скрипт
Код
using UnityEngine; using System.Collections;
public class MonsterAI : MonoBehaviour { //настраиваемое public Transform target; // Цель public int moveSpeed; // Скорость перемещения public int rotationSpeed; // Скорость поворота public float maxDistance; // Максимальное приближение к игроку private float curDistance; // Текущая дистанция public int ReactionDistance; // Дистанция на которой монстр реагирует private float PointDistance; // Дистанция до поинта public GameObject ObjPoint; // Объект поинта private Transform Point; // Трансформ поинта для возвращения
private Transform myTransform; // Временная переменная для хранения ссылки на свойство transform
void Awake(){ //ссылка на transform чтоб сократить время обращения его в теле скрипта myTransform = transform;
}
// Use this for initialization void Start () { //ищем по тегу player GameObject go = GameObject.FindGameObjectWithTag("Player"); //поставить на него прицел target = go.transform; Point = ObjPoint.transform;
if(maxDistance == null) maxDistance = 3; }
// Update is called once per frame void Update () {