Поворот объекта на заданный угол.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Поворот объекта на заданный угол.

Сообщение reimon245 29 ноя 2011, 14:17

Добрый день. Будьте добры подсказать как осуществить скрипт поворота объекта по таймеру на определенный угол с определенной скоростью поворота???? Мучаюсь уже 2 дня а он никак не желает корректно плавно поворачиваться.
Вот мой скрипт который не желает работать.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class EnemyMove : MonoBehaviour {
       
        public Transform target;
        public int rotationSpeed=2;
        public float moveCoolDown;
        public float waitTime=1;
        private Transform myTransform;
       
        void Awake (){
                myTransform = transform;
               
        }

        void Start () {
                if(moveCoolDown==0)moveCoolDown=5.0f;
        }
       
        void Update () {
                if(moveCoolDown>0)moveCoolDown-=Time.deltaTime;
                if(moveCoolDown<0)moveCoolDown=0;
                if(waitTime<0)waitTime=0;
                if(waitTime==0)waitTime=5;
                if(moveCoolDown==0)RandomMove();
                }
        private void RandomMove(){
                waitTime-=Time.fixedDeltaTime;
                myTransform.RotateAround(myTransform.position, Vector3.up,Random.Range(-360,360)*rotationSpeed*Time.deltaTime);
                if(waitTime<0){
                        RaycastHit hit;
                        Ray ray = new Ray(myTransform.position,myTransform.forward);
                        if (Physics.Raycast(ray, out hit)){
                                if(hit.distance>10)moveCoolDown=5;}
                        }
                else{waitTime=5;
                        myTransform.position+=myTransform.forward * moveSpeed * Time.deltaTime;
                        waitTime-=Time.deltaTime;
                        if(waitTime<0)moveCoolDown=5;
                        }
                }
                }

В конце скрипт того что если объект повернулся то он должен идти,он взят с сайта где был подобный пример и он тоже не работает(
По-моему в скрипте с поворотом myTransform.RotateAround не тот запрос,ближайшим мне в справке показался этот. Если кто-нибудь знает как все это осуществить помогите пожалуйста.
reimon245
UNIт
 
Сообщения: 72
Зарегистрирован: 22 ноя 2011, 07:54

Re: Поворот объекта на заданный угол.

Сообщение bomberest 29 ноя 2011, 18:05

Написал, но не проверял. Может, что-то напутал

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class CorutineClass : MonoBehaviour
{
    public IEnumerator Povorot(float angle, float speed, transform trans)
    {
        while (angle>0)
        {
                       
            trans.RotateAround(trans.up, speed*Time.deltaTime);
                        angle - speed*Time.deltaTime;

            yield return new WaitForEndOfFrame();
        }
    }
}
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23