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

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

СообщениеДобавлено: 29 ноя 2011, 14:17
reimon245
Добрый день. Будьте добры подсказать как осуществить скрипт поворота объекта по таймеру на определенный угол с определенной скоростью поворота???? Мучаюсь уже 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 не тот запрос,ближайшим мне в справке показался этот. Если кто-нибудь знает как все это осуществить помогите пожалуйста.

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

СообщениеДобавлено: 29 ноя 2011, 18:05
bomberest
Написал, но не проверял. Может, что-то напутал

Синтаксис:
Используется 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();
        }
    }
}