Преместване на куб на дадено разстояние
Huruffus 11 април 2013 г., 14:46
Здравейте. Пиша скрипт за преместване на куба на дадено разстояние. Пътуването е равно на страната на куба, т.е. 0,36.
Опитвам се да направя следното: след като главният герой натисне спусъка, тамерът се включва. Таймерът е изтекъл, променливата започва да се добавя към височината на куба. Когато кубът се издигне до желаната височина, променливата става равна на нула.
Но факт е, че текущата височина не се сравнява с желаната височина (или се случва неправилно) и следователно променливата не се нулира и кубът лети в небето.
моля, помогнете да се поправи
използване на UnityEngine; използване на System.Collections ;
публичен клас MovingCubeUp : MonoBehaviour < обществена вътрешна посока; //отговорен за избора на един от четирите случая public TriggerMovingCube _trigMovCube ; обществен AnimationClip [] animClip; обществен плаващ таймер; публичен bool timerStart; публичен материал secondMaterial;
Трансформирайте startPos; //начална позиция на обект public float speedUp ; //скорост на издигане на зара
void Начало ( ) < _trigMovCube = ( TriggerMovingCube ) FindObjectOfType ( typeof ( TriggerMovingCube ) ); //задействащ скрипт startPos = gameObject. трансформирам ; >
void Update() < Отстраняване на грешки. Дневник (начална позиция. y); Отстраняване на грешки. Дневник (gameObject. transform. position. y);
if ( _trigMovCube. triggerStay ) //ако сме попаднали в тригера < timerStart = true; //отброяването на таймера е започнало ако ( таймер 0 ) //ако отброяването е спряло < ускоряване = 0,8F * Време. deltaTime ; // променливата, добавена към височината (скорост на издигане), нараства gameObject . визуализатор. материал = secondMaterial;
превключвател ( посока ) // "1" е зададено в инспектора < случай 0: animPlay( 0) ; почивка ; случай 1: Независима анимация() ; //увеличаване на височината на куба break ; случай 2:
void animPlay ( int number ) < анимация. Възпроизвеждане (animClip [номер]. име); >
void IndependentAnimation ( ) //увеличаване на височината на куба < обект на играта. трансформирам . позиция = нов Vector3 ( gameObject . transform . position . x , gameObject . transform . position . y + speedUp, gameObject . transform . position . z ) ; if ( gameObject . transform . position . y > ( startPos. position . y + 0.36F ) ) //сравнение на височини: стартиране и изискване за спиране < ускоряване = 0; > > >