•
сделал танк на унити http://f-bit.ru/499334 в этой версии он ездит и крутит башней! в новой будет стрелять и ствол поднимать! 02.09.14 01:41
Aleksahka
•
Н0РМАЛЬН0 04.09.14 10:49
3aDP0T
•
ништяк 05.09.14 14:09
Sledgy
•
теперь думаю как отдачу сделать и еще как сделать следы от гусениц __________________________________________________________________________ без манифа не разобраться 05.09.14 20:30
Aleksahka
•
ИМХО!!! Если это ты сам все сделал то лучший твой проект пока))) 06.09.14 10:01
3aDP0T
•
я танк по уроку делал который на Хабре! (http://habrahabr.ru/post/116088/) ____________________________________________________________________ сейчас учу танк стрелять ! (пытаюсь рассчитать силу взрыва снаряда) 06.09.14 14:33
Aleksahka
•
версия под номером 3 (на сем дней) тут мы ездим на Aбрамсе и стреляем по движущимся целям Tanki3.rar размер архива: 11.8 Mb _________________________________________________________________ управление W - в перед S - на зад WA - влево WD - вправо Q - поворот башни влево E - поворот башни вправо R - ствол вверх F - ствол вниз огонь - левая кнопка мыши V - смена камеры __________________________________________________________ п.с. намудрил только я со взрывом ! первые шаги в познании унити мне пока трудно даються в умелых руках на унити можно сделать "EXмашину" 12.09.14 13:21
Aleksahka
•
Aleksahka, файл удалён 12.09.14 18:27
Sledgy
•
куда еще можно залить чтоб не удаляли? 12.09.14 19:52
Aleksahka
•
mediafire.com - войди через фейсбук 12.09.14 23:53
Sledgy
•
залил на другой файлообменник! ссылку на файл исправил! 13.09.14 08:40
Aleksahka
•
Aleksahka, не пашет. Кинь в yadi.sk, mediafire, ... "Сервис не работает" Наверно вирусный сайт 13.09.14 18:18
Sledgy
•
Aleksahka, пусть мне эти другие кинут в ВК - vk.com/sledgy или еще как-то Отключил антивирь, сайт всё равно не работает :( 13.09.14 19:11
Sledgy
•
http://f-bit.ru/505474 вот тебе с F-bita 13.09.14 19:58
Aleksahka
•
норм 14.09.14 12:33
Sledgy
•
Sledgy ты Манифа можешь от шукать??? у меня к нему есть куча вопросов! 14.09.14 14:29
Aleksahka
•
Aleksahka, он в old-games.ru/forum есть и в VK 14.09.14 19:40
Sledgy
•
показываю вам скрипты!!! движение танка ( TankTrackController.cs ) скрипт взял с урока на Хобре и чуток подшаманил Скрытый текст
using UnityEngine; using System.Collections; using System.Collections.Generic; //Разрешаем пространство имен public class TankTrackController : MonoBehaviour { public GameObject wheelCollider; //Объявляем переменную в которой будет храниться префаб нашего Wheel Collider’а public float wheelRadius = 0.15f; //Радиус наших колес. public float suspensionOffset = 0.05f; //Смещение колеса относительно начальной позиции, когда оно не касается поверхности. public float trackTextureSpeed = 2.5f; //Скорость движения гусеницы public GameObject leftTrack; //Левая гусеница. public Transform[] leftTrackUpperWheels; //верхние колеса к которым не будут добавляться Wheel Collider’ы. public Transform[] leftTrackWheels; //Колеса к которым будут добавляться Wheel Collider’ы public Transform[] leftTrackBones; //Кости привязанные к левой гусенице. public GameObject rightTrack; //правая гусеница. public Transform[] rightTrackUpperWheels; //верхние колеса к которым не будут добавляться Wheel Collider’ы. public Transform[] rightTrackWheels; //Колеса к которым будут добавляться Wheel Collider’ы public Transform[] rightTrackBones; //Кости привязанные к правой гусенице. public class WheelData { //Объявим класс в котором будем хранить необходимую нам информацию о каждом колесе (кроме UpperWheels), а именно: public Transform wheelTransform; //Transform колеса; public Transform boneTransform; //Transform кости привязанной к гусенице; public WheelCollider col; //WheelCollider колеса; public Vector3 wheelStartPos; //Начальную позицию колеса; public Vector3 boneStartPos; //Начальную позицию кости; public float rotation = 0.0f; //Угол вращения колеса; public Quaternion startWheelAngle; //Начальные углы поворота колеса. } protected WheelData[] leftTrackWheelData; //Объявляем массивы хранящие данные о левых колесах protected WheelData[] rightTrackWheelData; //Объявляем массивы хранящие данные о правых колесах protected float leftTrackTextureOffset = 0.0f; //объявляем переменные текущее смещение текстурных координат на гусеницах. protected float rightTrackTextureOffset = 0.0f; //объявляем переменные текущее смещение текстурных координат на гусеницах. void Awake() { leftTrackWheelData = new WheelData[leftTrackWheels.Length]; //Объявляем размерность массивов о наших колесах. rightTrackWheelData = new WheelData[rightTrackWheels.Length]; //Объявляем размерность массивов о наших колесах. for(int i=0;i<leftTrackWheels.Length;i++){ leftTrackWheelData = SetupWheels(leftTrackWheels,leftTrackBones); //Заполняем эти массивы } for(int i=0;i<rightTrackWheels.Length;i++){ rightTrackWheelData = SetupWheels(rightTrackWheels,rightTrackBones); //Заполняем эти массивы } Vector3 offset = transform.position; //перемещением объекта tank немного вперед offset.z +=0.01f; //перемещением объекта tank немного вперед transform.position = offset; //перемещением объекта tank немного вперед } WheelData SetupWheels(Transform wheel, Transform bone){ //Заполняем эти массивы WheelData result = new WheelData(); GameObject go = new GameObject("Collider_"+wheel.name); //4пустой GameObject имя которого будет состоять из имени колеса с префиксом Collider_. go.transform.parent = transform; //Делаем только что созданный объект дочерним к объекту к которому прикреплен скрипт (в нашем случае дочерним к объекту tank). go.transform.position = wheel.position; //Перемещаем только что созданный объект на то место где у нас находится колесо. go.transform.localRotation = Quaternion.Euler(0,wheel.localRotation.y,0); //Поворачиваем объект локально вокруг оси Y на тот же угол на который у нас повернуто текущее колесо WheelCollider col = (WheelCollider) go.AddComponent(typeof(WheelCollider));//Добавляем компонент Wheel Collider к нашему пустому GO. WheelCollider colPref = wheelCollider.GetComponent<WheelCollider>();//Получаем настройки Wheel Collider’a из нашего префаба. col.mass = colPref.mass;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.center = colPref.center;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.radius = colPref.radius;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.suspensionDistance = colPref.suspensionDistance;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.suspensionSpring = colPref.suspensionSpring;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.forwardFriction = colPref.forwardFriction;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у col.sidewaysFriction = colPref.sidewaysFriction;//Присваиваем настройки полученные из префаба к вновь созданному Wheel Collider’у result.wheelTransform = wheel; //Присваиваем остальную необходимую нам информацию. result.boneTransform = bone; //Присваиваем остальную необходимую нам информацию. result.col = col; //Присваиваем остальную необходимую нам информацию. result.wheelStartPos = wheel.transform.localPosition; //Присваиваем остальную необходимую нам информацию. result.boneStartPos = bone.transform.localPosition; //Присваиваем остальную необходимую нам информацию. result.startWheelAngle = wheel.transform.localRotation; //Присваиваем остальную необходимую нам информацию. return result; //Возвращаем результат. } void FixedUpdate(){ float accelerate = 0; float steer = 0; accelerate = Input.GetAxis("Vertical"); //4 steer = Input.GetAxis("Horizontal"); //4 UpdateWheels(accelerate,steer); //5 } public void UpdateWheels(float accel,float steer){ //5 float delta = Time.fixedDeltaTime; float trackRpm = CalculateSmoothRpm(leftTrackWheelData); foreach (WheelData w in leftTrackWheelData){ //4 w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); //Вычисляем локальную позицию колеса по оси Y w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); //вычислить локальную позицию кости к которой привязана данная часть гусеницы w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); //Вычисляем угол вращения колеса w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); //Применяем вычисленный угол вращения к локальному углу поворота колеса CalculateMotorForce(w.col,accel,steer); } leftTrackTextureOffset = Mathf.Repeat(leftTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); //Вычисляем смещение текстуры гусеницы. leftTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-leftTrackTextureOffset)); //Применяем смещение гусеницы к координате Y (new Vector2(0,-leftTrackTextureOffset)), главной текстуры ("_MainTex") материала который используют GO leftTrack и rightTrack. trackRpm = CalculateSmoothRpm(rightTrackWheelData); //3 foreach (WheelData w in rightTrackWheelData){ //4 w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); //5 w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); //6 w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); //7 w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); //8 CalculateMotorForce(w.col,accel,-steer); } rightTrackTextureOffset = Mathf.Repeat(rightTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); ///Вычисляем смещение текстуры гусеницы. rightTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-rightTrackTextureOffset)); //Применяем смещение гусеницы к координате Y (new Vector2(0,-leftTrackTextureOffset)), главной текстуры ("_MainTex") материала который используют GO leftTrack и rightTrack. for(int i=0;i<leftTrackUpperWheels.Length;i++){ //Вычисляем вращение верхних колес к которым у нас не привязаны WheelCollider’ы leftTrackUpperWheels.localRotation = Quaternion.Euler(leftTrackWheelData[0].rotation, leftTrackWheelData[0].startWheelAngle.y, leftTrackWheelData[0].startWheelAngle.z); //11 } for(int i=0;i<rightTrackUpperWheels.Length;i++){ //Вычисляем вращение верхних колес к которым у нас не привязаны WheelCollider’ы rightTrackUpperWheels.localRotation = Quaternion.Euler(rightTrackWheelData[0].rotation, rightTrackWheelData[0].startWheelAngle.y, rightTrackWheelData[0].startWheelAngle.z); //11 } } public float forwardTorque = 500.0f; //1 public float rotateOnMoveBrakeTorque = 400.0f; //2 public float minBrakeTorque = 0.0f; //3 public float minOnStayStiffness = 0.06f; //4 public float minOnMoveStiffness = 0.05f; //5 public float rotateOnMoveMultiply = 2.0f; //6 public void CalculateMotorForce(WheelCollider col, float accel, float steer){ WheelFrictionCurve fc = col.sidewaysFriction; //7 if(accel == 0 && steer == 0){ }else if(accel == 0.0f){ fc.stiffness = 1.0f + minOnStayStiffness - Mathf.Abs(steer); }else{ //8 col.brakeTorque = minBrakeTorque; //9 col.motorTorque = accel*forwardTorque; //10 if(steer < 0){ //11 поворот col.brakeTorque = rotateOnMoveBrakeTorque; //12 col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//13 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //14 } if(steer > 0){ //15 поворот col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//16 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //17 } } if(fc.stiffness > 1.0f)fc.stiffness = 1.0f; //18 col.sidewaysFriction = fc; //19 if(col.rpm > 0 && accel < 0){ //20 }else if(col.rpm < 0 && accel > 0){ //22 } } private float CalculateSmoothRpm(WheelData[] w){ //Ну наконец мы добрались до функции CalculateSmoothRpm() которая принимает первым аргументом массив типа WheelData, который в свою очередь носит оригинальное имя w. float rpm = 0.0f; List<int> grWheelsInd = new List<int>(); //индексы тех элементов массива w, внутри которых WheelCollider col, в данный момент касается поверхности (террейна). for(int i = 0;i<w.Length;i++){ //находим индексы элементов в которых коллайдеры касаются поверхности. if(w.col.isGrounded){ //находим индексы элементов в которых коллайдеры касаются поверхности. grWheelsInd.Add(i); //находим индексы элементов в которых коллайдеры касаются поверхности. } } if(grWheelsInd.Count == 0){ //находим среднее значение. foreach(WheelData wd in w){ //находим среднее значение. rpm +=wd.col.rpm; //находим среднее значение. } rpm /= w.Length; //находим среднее значение. }else{ //Если у нас один или более элементов списка, тоесть если один или более коллайдеров касается земли, то складываем скорости только этих коллайдеров и делим на количество элементов списка. for(int i = 0;i<grWheelsInd.Count;i++){ //Если у нас один или более элементов списка, тоесть если один или более коллайдеров касается земли, то складываем скорости только этих коллайдеров и делим на количество элементов списка. rpm +=w[grWheelsInd].col.rpm; //Если у нас один или более элементов списка, тоесть если один или более коллайдеров касается земли, то складываем скорости только этих коллайдеров и делим на количество элементов списка. } rpm /= grWheelsInd.Count; //Если у нас один или более элементов списка, тоесть если один или более коллайдеров касается земли, то складываем скорости только этих коллайдеров и делим на количество элементов списка. } return rpm; //Возвращаем получившееся значение. } private Vector3 CalculateWheelPosition(Transform w,WheelCollider col,Vector3 startPos){ //функция вычисляет локальную позицию колеса (либо кости) WheelHit hit; Vector3 lp = w.localPosition; if (col.GetGroundHit(out hit)) { lp.y -= Vector3.Dot(w.position - hit.point, transform.up) - wheelRadius; }else { lp.y = startPos.y - suspensionOffset; } return lp; } }
| поворот башни (на JAVA) мои до думки =) Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var BackFront:boolean; var WheelSpeed:float; var WheelRpmMax:float; var bahnya:AudioClip; private var WheelRotateAngle = 0.4;// скорость движеня башни private var b = 0; // переменная ограничения вращения башни gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("q")) { if (b > -140) { b=b-1; audio.Play(); if(BackWheels){ WheelRight.transform.Rotate(0,-WheelRotateAngle,0); WheelLeft.transform.Rotate(0,-WheelRotateAngle,0); }else{ WheelRight.transform.Rotate(0,WheelRotateAngle,0); WheelLeft.transform.Rotate(0,WheelRotateAngle,0); } } } if (Input.GetKey ("e")) { if (b < 140) { b=b+1; audio.Play(); if(BackWheels){ WheelRight.transform.Rotate(0,WheelRotateAngle,0); WheelLeft.transform.Rotate(0,WheelRotateAngle,0); }else{ WheelRight.transform.Rotate(0,-WheelRotateAngle,0); WheelLeft.transform.Rotate(0,-WheelRotateAngle,0); } } } }
| поднятие ствола (JAVA) Скрытый текст
var WheelRight:GameObject; // объект СТВОЛ var WheelLeft:GameObject; // объект СТВОЛ var BackWheels:boolean; var BackFront:boolean; var sounds:AudioClip; private var WheelRotateAngle = 0.2; // скорость движеня ствола private var a = 0; // переменная ограничения поднятия ствола gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("f")) { if (a > 0) { a=a-1; audio.Play(); if(BackWheels){ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); } } } if (Input.GetKey ("r")) { if (a < 90) { a=a+1; audio.Play(); if(BackWheels){ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); } } } }
| 17.09.14 22:35
Aleksahka
•
куча камер (точнее 4) Скрытый текст
var sw = 3; var cam0 : Camera; var cam1 : Camera; var cam2 : Camera; var cam3 : Camera; function Start(){ sw = 0; } function Update () { if(Input.GetKeyDown("v")){ sw++; } if(sw == 0){ cam0.enabled = true; cam1.enabled = false; cam2.enabled = false; cam3.enabled = false; } if(sw == 1){ cam0.enabled = false; cam1.enabled = true; cam2.enabled = false; cam3.enabled = false; } if(sw == 2){ cam0.enabled = false; cam1.enabled = false; cam2.enabled = true; cam3.enabled = false; } if(sw == 3){ cam0.enabled = false; cam1.enabled = false; cam2.enabled = false; cam3.enabled = true; } if(sw > 3){ sw = 0; } }
| сила взрыва Скрытый текст
var explosionRadius = 50; // радиус взрыва var explosionPower = 1000; // сила взрыва (разброс) var explosionDamage = 100.0; // сила повреждения var explosionTimeout = 3.0; // продолжительность действия взрыва var babah:AudioClip; function Start () { var explosionPosition = transform.position; // Apply damage to close by objects first var colliders : Collider[] = Physics.OverlapSphere (explosionPosition, explosionRadius); for (var hit in colliders) { // Calculate distance from the explosion position to the closest point on the collider var closestPoint = hit.ClosestPointOnBounds(explosionPosition); var distance = Vector3.Distance(closestPoint, explosionPosition); // The hit points we apply fall decrease with distance from the explosion point var hitPoints = 1.0 - Mathf.Clamp01(distance / explosionRadius); hitPoints *= explosionDamage; // Tell the rigidbody or any other script attached to the hit object how much damage is to be applied! hit.SendMessageUpwards("ApplyDamage", hitPoints, SendMessageOptions.DontRequireReceiver); } // Apply explosion forces to all rigidbodies // This needs to be in two steps for ragdolls to work correctly. // (Enemies are first turned into ragdolls with ApplyDamage then we apply forces to all the spawned body parts) colliders = Physics.OverlapSphere (explosionPosition, explosionRadius); for (var hit in colliders) { if (hit.rigidbody) hit.rigidbody.AddExplosionForce(explosionPower, explosionPosition, explosionRadius, 3.0); } // stop emitting particles if (particleEmitter) { particleEmitter.emit = true; yield WaitForSeconds(0.5); particleEmitter.emit = false; } audio.Play(); // destroy the explosion after a while Destroy (gameObject, explosionTimeout); }
| пусковая снарядов (JAVA) Скрытый текст
var projectile : Rigidbody; var speed = 500; var sounds:AudioClip; function Update() { if( Input.GetButtonDown( "Fire1" ) ) { audio.Play(); var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation ); instantiatedProjectile.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); Physics.IgnoreCollision( instantiatedProjectile. collider, transform.root.collider ); } }
| 17.09.14 22:54
Aleksahka
•
симулятор Вертолёта http://f-bit.ru/509070 ______________________________ УПРАВЛЕНИЕ стрелки вверх и вниз - обороты движка w - тангаж в низ s -тангаж в верх a- поворот в лево d- поворот в право q - крен в лево e - крен в право v - менять камеры _________________________________________ 20.09.14 08:52
Aleksahka
•
нифига уже и вертолет) 20.09.14 22:29
Sledgy
•
ага! 20.09.14 23:01
Aleksahka
•
Че-то не летит он. Как его в воздух поднять? "тангажи" вниз его тянут или ничего 20.09.14 23:12
Sledgy
•
Тягой двигателя обычно вертолёт поднимают в воздух! это стрелки на клаве вверх (увеличение оборотов) вниз (уменьшение оборотов) 21.09.14 16:36
Aleksahka
•
Симулятор Вертолёта http://f-bit.ru/511707 версия номер 2 ___________________________________________________________ в этой версии я оживил ручки управления вертолётом и сделал поворотные педали а так-же подправил камеру (глаза пилота) теперь можете по крутить бошкой в кобине при помощи мыши ____________________________________________________________ 24.09.14 18:53
Aleksahka
•
http://f-bit.ru/512317 25.09.14 16:54
Aleksahka
•
а скрин? 26.09.14 23:21
Sledgy
•
версия номер 3 http://f-bit.ru/513309 ___________________________________________________ сделал пилота (руки и ноги) Теперь вертолёт умеет стрелять! (ЛКМ) 27.09.14 00:09
Aleksahka
•
новая версия моего танка ________________________________ http://my-files.ru/vuaw37 вес архива : 15Мб здесь нужно выиграть сражение! ваш танк против двух компьютерных кроме пушки у нашего танка есть ещё пулемёт и подствольный гранатамёт Управление W - вперёд S - на зад WA - влево WD - вправо Q - башня влево E - башня вправо R - ствол вверх F - ствол вниз T - подстволка вверх G - подстволка вниз 1 - поворот пулемёта влево 2 - поворот пулемёта вправо 3 - пулемёт вниз 4 - пулемёт вверх ЛКМ - выстрел из пушки ПКМ - выстрел из подствольника СКМ - выстрел из пулимёта V - менять камеры http://my-files.ru/aexvr2 10.11.14 12:51
Aleksahka
•
новая версия танка теперь это Сетевые Танки http://my-files.ru/x8i5d6 _____________________________ Мульти-плеер на первом компе после запуска игры надо нажать на Start server а кто будет присоединяться к игре должен нажать Connect to server ________________________________ игру не испытывал так как скорость у меня интернета мала! 14.11.14 14:51
Aleksahka
•
Aleksahka, сделай еще 3д-шутер по сети)) Где надо бегать за повстанца из SQ4 и мочить Sequel Police (SQ12 в SQ4) А др.сетевые игроки играют за др.повстанцев Можно было бы сделать мод на CS в стиле будущего, или Unreal Tournament какой-нибудь 15.11.14 17:46
Sledgy
•
Павел проверь сетевые танки! пашут они по сети или нет???? 19.11.14 17:06
Aleksahka
•
Если найду с кем) 19.11.14 17:58
Sledgy
•
скрипт вращение колеса (JAVA) ___________________________________________________________________________ var myWheelCollider : WheelCollider; function Start () { } function Update () { transform.Rotate(myWheelCollider.rpm/60*360*Time.deltaTime,0,0); transform.localEulerAngles.z = myWheelCollider.steerAngle - transform.localEulerAngles.z; } ______________________________________________________________________________ его надо цеплять на сам объект колеса а не на Wheel Colider 11.12.15 11:39
Aleksahka
•
рабочий скрипт для танка с http://habrahabr.ru/post/116088/ TankTrackController.cs Скрытый текст
using UnityEngine; using System.Collections; using System.Collections.Generic; public class TankTrackController : MonoBehaviour { public GameObject wheelCollider; public float wheelRadius = 0.15f; public float suspensionOffset = 0.05f; public float trackTextureSpeed = 2.5f; public GameObject leftTrack; public Transform[] leftTrackUpperWheels; public Transform[] leftTrackWheels; public Transform[] leftTrackBones; public GameObject rightTrack; public Transform[] rightTrackUpperWheels; public Transform[] rightTrackWheels; public Transform[] rightTrackBones; public class WheelData { public Transform wheelTransform; public Transform boneTransform; public WheelCollider col; public Vector3 wheelStartPos; public Vector3 boneStartPos; public float rotation = 0.0f; public Quaternion startWheelAngle; } protected WheelData[] leftTrackWheelData; protected WheelData[] rightTrackWheelData; protected float leftTrackTextureOffset = 0.0f; protected float rightTrackTextureOffset = 0.0f; void Awake() { leftTrackWheelData = new WheelData[leftTrackWheels.Length]; rightTrackWheelData = new WheelData[rightTrackWheels.Length]; for(int i=0;i<leftTrackWheels.Length;i++){ leftTrackWheelData = SetupWheels(leftTrackWheels,leftTrackBones); } for(int i=0;i<rightTrackWheels.Length;i++){ rightTrackWheelData = SetupWheels(rightTrackWheels,rightTrackBones); } Vector3 offset = transform.position; offset.z +=0.01f; transform.position = offset; } WheelData SetupWheels(Transform wheel, Transform bone){ WheelData result = new WheelData(); GameObject go = new GameObject("Collider_"+wheel.name); go.transform.parent = transform; go.transform.position = wheel.position; go.transform.localRotation = Quaternion.Euler(0,wheel.localRotation.y,0); WheelCollider col = (WheelCollider) go.AddComponent(typeof(WheelCollider)); WheelCollider colPref = wheelCollider.GetComponent<WheelCollider>(); col.mass = colPref.mass; col.center = colPref.center; col.radius = colPref.radius; col.suspensionDistance = colPref.suspensionDistance; col.suspensionSpring = colPref.suspensionSpring; col.forwardFriction = colPref.forwardFriction; col.sidewaysFriction = colPref.sidewaysFriction; result.wheelTransform = wheel; result.boneTransform = bone; result.col = col; result.wheelStartPos = wheel.transform.localPosition; result.boneStartPos = bone.transform.localPosition; result.startWheelAngle = wheel.transform.localRotation; return result; } public float rotateOnStandTorque = 1500.0f; //1 public float rotateOnStandBrakeTorque = 500.0f; //2 public float maxBrakeTorque = 1000.0f; //3 void FixedUpdate(){ float accelerate = 0; float steer = 0; accelerate = Input.GetAxis("Vertical"); //4 steer = Input.GetAxis("Horizontal"); //4 UpdateWheels (accelerate,steer); //5 } public void CalculateMotorForce(WheelCollider col, float accel, float steer){ WheelFrictionCurve fc = col.sidewaysFriction; //7 if(accel == 0 && steer == 0){ col.brakeTorque = maxBrakeTorque; }else if(accel == 0.0f){ col.brakeTorque = rotateOnStandBrakeTorque; col.motorTorque = steer*rotateOnStandTorque; fc.stiffness = 1.0f + minOnStayStiffness - Mathf.Abs(steer); }else{ //8 col.brakeTorque = minBrakeTorque; //9 col.motorTorque = accel*forwardTorque; //10 if(steer < 0){ //11 col.brakeTorque = rotateOnMoveBrakeTorque; //12 col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//13 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //14 } if(steer > 0){ //15 col.motorTorque = steer*forwardTorque*rotateOnMoveMultiply;//16 fc.stiffness = 1.0f + minOnMoveStiffness - Mathf.Abs(steer); //17 } } if(fc.stiffness > 1.0f)fc.stiffness = 1.0f; //18 col.sidewaysFriction = fc; //19 if(col.rpm > 0 && accel < 0){ //20 col.brakeTorque = maxBrakeTorque; //21 }else if(col.rpm < 0 && accel > 0){ //22 col.brakeTorque = maxBrakeTorque; //23 } } public void UpdateWheels(float accel,float steer){ //5 float delta = Time.fixedDeltaTime; float trackRpm = CalculateSmoothRpm(leftTrackWheelData); foreach (WheelData w in leftTrackWheelData){ w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); CalculateMotorForce(w.col,accel,steer); //6 } leftTrackTextureOffset = Mathf.Repeat(leftTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); leftTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-leftTrackTextureOffset)); trackRpm = CalculateSmoothRpm(rightTrackWheelData); foreach (WheelData w in rightTrackWheelData){ w.wheelTransform.localPosition = CalculateWheelPosition(w.wheelTransform,w.col,w.wheelStartPos); w.boneTransform.localPosition = CalculateWheelPosition(w.boneTransform,w.col,w.boneStartPos); w.rotation = Mathf.Repeat(w.rotation + delta * trackRpm * 360.0f / 60.0f, 360.0f); w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.startWheelAngle.y, w.startWheelAngle.z); CalculateMotorForce(w.col,accel,-steer); //6 } rightTrackTextureOffset = Mathf.Repeat(rightTrackTextureOffset + delta*trackRpm*trackTextureSpeed/60.0f,1.0f); rightTrack.renderer.material.SetTextureOffset("_MainTex",new Vector2(0,-rightTrackTextureOffset)); for(int i=0;i<leftTrackUpperWheels.Length;i++){ leftTrackUpperWheels.localRotation = Quaternion.Euler(leftTrackWheelData[0].rotation, leftTrackWheelData[0].startWheelAngle.y, leftTrackWheelData[0].startWheelAngle.z); } for(int i=0;i<rightTrackUpperWheels.Length;i++){ rightTrackUpperWheels.localRotation = Quaternion.Euler(rightTrackWheelData[0].rotation, rightTrackWheelData[0].startWheelAngle.y, rightTrackWheelData[0].startWheelAngle.z); } } private float CalculateSmoothRpm(WheelData[] w){ float rpm = 0.0f; List<int> grWheelsInd = new List<int>(); for(int i = 0;i<w.Length;i++){ if(w.col.isGrounded){ grWheelsInd.Add(i); } } if(grWheelsInd.Count == 0){ foreach(WheelData wd in w){ rpm +=wd.col.rpm; } rpm /= w.Length; }else{ for(int i = 0;i<grWheelsInd.Count;i++){ rpm +=w[grWheelsInd].col.rpm; } rpm /= grWheelsInd.Count; } return rpm; } private Vector3 CalculateWheelPosition(Transform w,WheelCollider col,Vector3 startPos){ WheelHit hit; Vector3 lp = w.localPosition; if (col.GetGroundHit(out hit)) { lp.y -= Vector3.Dot(w.position - hit.point, transform.up) - wheelRadius; }else { lp.y = startPos.y - suspensionOffset; } return lp; } public float forwardTorque = 500.0f; //1 public float rotateOnMoveBrakeTorque = 400.0f; //2 public float minBrakeTorque = 0.0f; //3 public float minOnStayStiffness = 0.06f; //4 public float minOnMoveStiffness = 0.05f; //5 public float rotateOnMoveMultiply = 2.0f; //6 }
| 07.01.16 19:45
Aleksahka
•
движение Объекта AI по маршруту из ключевых точек 1) создаём пустой объект ( GameObject/Create Empty ) это наша навигационная точка для бота 2) называем её как хотите (например N1) потом надо его скопировать 4 раза и расставить на карте 3) создаём скрипт на JS (Assets/Create/Javascript) 4) называем его как хотите (Ai например) 5) нажимаем на него два раза и пишем сам код Скрытый текст
//перетащите ваши 5 waypoint объектов с иерархии в inspector.в окошки public var waypoints : Transform[] = new Transform[5]; var tankSpeed : float = 5.0; function Start ( ) { transform.position = waypoints[0].position; MoveToWaypoint(1); } public function MoveToWaypoint ( waypointID : int ) : IEnumerator { var initialPosition : Vector3 = transform.position; var wantedPosition : Vector3 = waypoints[waypointID].position; var duration : float = 1.0 / Vector3.Distance (initialPosition, wantedPosition) * tankSpeed; var delta : float = 0.0; RotateTank(waypoints[waypointID], duration * 2); while(delta < 1.0) { delta += Time.deltaTime * duration; transform.position = Vector3.Lerp(initialPosition, wantedPosition, delta); yield; } waypointID++; // loop waypoints if (waypointID == (waypoints.Length)){ waypointID = 0; } MoveToWaypoint(waypointID); } public function RotateTank ( target : Transform, speed : float ) : IEnumerator { var initialRotation : Quaternion = transform.rotation; var wantedRotation : Quaternion = Quaternion.LookRotation(target.position - transform.position); var delta : float = 0.0; while(delta < 1) { delta += Time.deltaTime * 10 * speed; transform.rotation = Quaternion.Slerp(initialRotation, wantedRotation, delta); yield; } } function Update(){ GetComponent.<Rigidbody>().AddForce(-transform.up * GetComponent.<Rigidbody>().velocity.magnitude); }
| 6) теперь сохраняем его и переходим обратно в Unity 3D 7) перетаскиваем наш скрипт на бота (на объект) 8) теперь надо перетащить наши точки из Hierarchy в окошки скрипта нашего бота в Инспекторе теперь наш бот будет передвигаться по навигационным точкам 10.02.16 13:16
Aleksahka
•
Включить и выключить Свет 1) создаём скрипт на JS (Assets/Create/Javascript) 2) называем его SVET 3) нажимаем на него два раза и пишем сам код Скрытый текст
var svet : Light; function Update() { if (Input.GetKeyDown("1")) { svet.enabled = true; } if (Input.GetKeyDown("2")) { svet.enabled = false; } }
| 3) теперь сохраняем его и переходим обратно в Unity 3D 4) перетаскиваем наш скрипт на игровой объект 5) перетаскиваем из иерархии наши лампочки в Инспектор (в окошки скрипта SVET) теперь при нажатии на кнопки 1 и 2 свет включается и выключается 10.02.16 20:08
Aleksahka
•
Изменение переменной из другого JS скрипта допустим надо посчитать потопленные корабли пишем в скрипте гибели корабля ( ExplosionShip.js ) создаём переменную K public static var K= 0; потом ниже в этом-же скрипте в условии проверки попадания пишем K=K+1; сохраняем! теперь переходим к другому скрипту и пишем (название скрипта.переменная) function OnGUI () { GUI.Box (Rect (500,660,644,20), "Потоплено кораблей : "+ExplosionShip.K); } 20.05.16 22:18
Aleksahka
•
выход из игры if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); // если нажата клавиша Esc то выхот из игры} 20.05.16 22:44
Aleksahka
•
новая версия Морского боя http://rgho.st/download/7rJSRyFYQ/2170fe934734a0de0a14ab36c66a92888602a64d/2170fe934734a0de0a14ab36c66a92888602a64d/Unity%20MorskoiBoi2.rar архив весит 7.1mb 22.05.16 21:52
Aleksahka
•
Отключение Курсора мыши (JS) function Start () { Screen.showCursor = false; } 23.05.16 15:57
Aleksahka
•
Изменение текстуры объекта при нажатии на левую кнопку мыши Скрытый текст
var Texture0 : Texture2D; // создаём хранение текстуры объекта var Texture1 : Texture2D; var Texture2 : Texture2D; var Texture3 : Texture2D; var Texture4 : Texture2D; var Texture5 : Texture2D; var Texture6 : Texture2D; var Texture7 : Texture2D; var Texture8 : Texture2D; var Texture9 : Texture2D; var Texture10 : Texture2D; var P= 11; function Update() { if( Input.GetButtonDown( "Fire1" ) ) { P=P-1; if (P==10){ renderer.material.mainTexture = Texture1;} if (P==9){ renderer.material.mainTexture = Texture2;} if (P==8){ renderer.material.mainTexture = Texture3;} if (P==7){ renderer.material.mainTexture = Texture4;} if (P==6){ renderer.material.mainTexture = Texture5;} if (P==5){ renderer.material.mainTexture = Texture6;} if (P==4){ renderer.material.mainTexture = Texture7;} if (P==3){ renderer.material.mainTexture = Texture8;} if (P==2){ renderer.material.mainTexture = Texture9;} if (P==1){ renderer.material.mainTexture = Texture10;} } }
| 23.05.16 17:59
Aleksahka
•
Случайная переменная var A=Random.Range (1,100); //от 1 до 100 23.05.16 19:54
Aleksahka
•
подбирание предмета с локации 1) создаём объект (можно просто куб) 2) в свойствах нашего объекта (в Inspector ) там где Box Collider ставим галочку возле Is Trigger 3) создаём скрипт (Assets/Create/Javascript) 4) называем скрипт как вам нравиться! 5) потом дважды жмём на скрипт (открываем его в редакторе Mono Develop) 6) теперь пишем сам скрипт ___________________________________________________________________________________________ Скрытый текст
var Pаtrony : GameObject; // создаём окошко для нашего Объекта патроны function OnTriggerEnter (other : Collider) { if (other.collider.tag == "Player") { MissileLauncher.P = MissileLauncher.P + 100; // тут мы к переменной P из скрипта MissileLauncher прибавляем 100 Destroy( gameObject ); // удаляем наш объект с локации } }
| _________________________________________________________________ 7) сохраняем наш скрипт 8) переходим обратно в Unity 3D 9) перетаскиваем наш скрипт из папки Project в свойства нашего объекта (в Inspector ) в самый низ 10) появится там наш скрипт с двумя окошками в верхнем окошке наш скрипт а в нижнее окошко надо вставить наш объект (куб) перетащив его из Hierarchy 11) теперь выберем нашего персонажа и поставим ему тег Player в свойства нашего персонажа (в Inspector ) в самом верху есть кнопка сразу под именем персонажа 12) жмём её и выбераем Player готово!!! теперь наш персонаж может подбирать предмет (Патроны) =) 02.06.16 09:09
Aleksahka
•
Отображение переменной на Text Mesh 1) создаём объект куб (GameObject / 3D Object / Cube) 2) добавляем к кубу компонент Text Mesh (Сomponent / Mesh / Text Mesh) 3) теперь в первой строке компонента Text Mesh (там где написано Text) пишем нашу переменную P из скрипта MisseleLauncher ( MisseleLauncher.P ) 4) переходим в наш скрипт MisseleLauncher.js (дважды жмём на него) если его нет у вас то создайте новый скрипт и назовите его MisseleLauncher ____________________________________________________________________________________________ Скрытый текст
var projectile : Rigidbody; var speed = 2000; var sounds:AudioClip; var i=0; public static var P=600; // наша переменная P var tm : TextMesh = gameObject.GetComponent(TextMesh); function OnGUI () { GUI.Box (Rect (500,660,644,20), "выход из игры НАЖАТЬ колёсико мыши! "); } function Update() { tm.text =" "+P; // отображение нашей переменной в Text Mesh if( Input.GetButton ( "Fire3" ) ) {Application.Quit();} if( Input.GetButton ( "Fire1" ) ) { if(P<0){P=0;}if(P>0){i=i+1;P=P-1;if (i<2){}if (i>2) {i=0;audio.Play(); var instantiatedProjectile : Rigidbody = Instantiate( projectile, transform.position, transform.rotation ); instantiatedProjectile.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); } } } }
| ____________________________________________________________________________________________ 6) сохраняем скрипт и переходим в Unity 3D 7) перетаскиваем наш скрипт на объект Launcher (то есть на нашу пушку) теперь на нашем Кубе будет отображаться количество патронов (то есть наша переменная P) 02.06.16 16:03
Aleksahka
•
Движение Объекта (GameObject) при входе и выходе в триггер(регион) игрока с тегом Player 1) создадим два куба и 1 триггер (GameObject / 3D Object / Cube) 2) один из кубов переименуем в Trigger ( в наш регион) 3) растянем куб Trigger чтоб наш персонаж смог свободно входить в него 4) в свойствах объекта Trigger (в папке Box Collider ) надо поставить галочку рядом с надписью Is Trigger 5) теперь создадим скрипт (Assets/Create/Javascript) 6) называем скрипт как вам нравиться! 7) дважды жмём на него и пишем скрипт ______________________________________________________________________________________________ Скрытый текст
var Object1 : Rigidbody; // наш первый объект var Object2 : Rigidbody; // наш второй объект var i=0; // это переключатель в тригере если i=0 то игрок не в зоне региона var P=0; // это скорость движения объекта и его ограничение движения function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){i=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){i=0;} } function Update() { if (i==1){ if(P>=20){ P=20; Object1.velocity =transform.TransformDirection( Vector3( 0, 0, 0 ) ); Object2.velocity =transform.TransformDirection( Vector3( 0, 0, 0 ) ); } if(P<20){ P=P+1; Object1.velocity =transform.TransformDirection( Vector3( -9, 0, 0 ) ); Object2.velocity =transform.TransformDirection( Vector3( 9, 0, 0 ) ); } } if (i==0){ if(P<=0){ Object1.velocity =transform.TransformDirection( Vector3( 0, 0, 0 ) ); Object2.velocity =transform.TransformDirection( Vector3( 0, 0, 0 ) ); P=0; } if(P>0){ P=P-1; Object1.velocity =transform.TransformDirection( Vector3( P, 0, 0 ) ); Object2.velocity =transform.TransformDirection( Vector3( -P, 0, 0 ) ); } } }
| ______________________________________________________________________________________________ 8) сохраняем скрипт и переходим в Unity 3D 9) перетаскиваем наш скрипт на объект Trigger 10) перетаскиваем наши два куба в окошки скрипта который в Triggerе 11) теперь выберем нашего персонажа и поставим ему тег Player в свойства нашего персонажа (в Inspector ) в самом верху есть кнопка сразу под именем персонажа 12) жмём её и выбераем Player готово!!! теперь при входе в наш регион кубы наши начинают двигаться а при выходи они двигаются в обратную сторону! 04.06.16 13:59
Aleksahka
•
Демку сделал на Unity 3D игру из детства ! ZERO TOLERANCE http://rgho.st/download/7Vxs5pTXZ/4a20299b41e3bd4578c04af65c117ee318d7c88e/Unity%20ZERO%20TOLERANCE.rar размер демки 14.2mb 06.06.16 19:41
Aleksahka
•
движение Врага на играка если враг заметил игрока 1) создаём куб (это наш враг) 2) создаём ещё один куб и растягиваем его в ширину и в длину по осям X и Z ( это что видит наш враг) 3) делаем большой куб Тригером и цепляем его на первый куб (то есть делаем его дочерним) 4) теперь создадим наш новый скрипт скрипт _________________________________________________________________________________________ Скрытый текст
var speed = 5.0; // это скорость нашего врага var i=0; // это переменная обнаружения игрока var myTransform : Transform; // сюда пихаем Врага var playerTransform : Transform; // сюда нашего игрока function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){i=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){i=0;} } function Start () { if (i==1){ myTransform = transform; playerTransform = GameObject.FindWithTag("Player").transform; } if (i==0){ } } function Update () { if (i==1){ myTransform.LookAt(playerTransform); myTransform.position += myTransform.forward * speed * Time.deltaTime; } if (i==0){ } }
| _________________________________________________________________________________________ 5) сохраняем и переходим обратно в Unity 6) теперь наш скрипт надо перетащить на Тригер врага (большой куб) 7) потом в окошки в скрипте в верхнее пихаем куб (врага) в нижнее нашего игрока 8) нашему персонажу надо теперь выставить тег Player готово! 06.06.16 23:36
Aleksahka
•
Укус врага (враг кусает игрока) тут делаем почти тоже самое, что и с подбором предмета! добавляем только звук кусания и уменьшаем Тригер(регион) кусания вот мой код на JS ________________________________________________________________________ Скрытый текст
var ZonaUkusa : GameObject; var sounds:AudioClip; function OnTriggerEnter (other : Collider) { if (other.collider.tag == "Player") { audio.Play(); DamageReceiver1.hitPoints = DamageReceiver1.hitPoints - 10 ; } }
| ________________________________________________________________________ DamageReceiver1.hitPoints - это наша Глобальная переменная жизней игрока при касании триггера каждый раз будет отниматься 10 скрипт кидаем на Зону укуса врага (Триггер) и в окошко скрипта кидаем Зону укуса врага ( сам Триггер) а в зону звука звуковой файл укуса! теперь надо создать в самой зоне укуса Audio Source и в окошко Audio clip сунуть наш звук укуса 09.06.16 17:48
Aleksahka
•
новая версия Zero Tolerance в ней мы охотимся на жуков http://rgho.st/download/6VH2MjTNg/51feefaec09bf78e305a9778340a643f4616569c/New%20ZERO%20TOLERANCE3.rar размер : 16.4 МБ 10.06.16 18:00
Aleksahka
•
Высотомер (для летающей техники) (JS) ____________________________________________ var player_gameobject : GameObject; // наш вертолёт var vysota: float; // переменная высоты function OnGUI () { GUI.Box (Rect (10,100,200,20), "высота :"+vysota); } function Update () { vysota= player_gameobject.transform.position.y ; } ____________________________________________ кидаем скрипт на наш объект (вертолёт или самолёт) потом в окошко скрипта там где написано player_gameobject кидаем наш (вертолёт или самолёт) 14.06.16 22:42
Aleksahka
•
вот тут нашёл как сделать вертолёт Скрытый текст
http://webcache.googleusercontent.com/search?q=cache:kKRRwaeiRm8J:unity3d.vx0.ru/_sozdanie_vertoletahelicopter_tutorial+%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82+%D0%B2%D0%B5%D1%80%D1%82%D0%BE%D0%BB%D0%B5%D1%82+JS+unity3D&cd=7&hl=ru&ct=clnk&gl=ru
| только управление почему-то у меня не заработало! пришлось делать своё! короче! вот сам скрипт вертолёта (я его чуток изменил) ________________________________________________________ Скрытый текст
var main_Rotor_GameObject : GameObject; var tail_Rotor_GameObject : GameObject; var max_Rotor_Force :float = 22241.1081; var max_Rotor_Velocity : float = 7200; static var rotor_Velocity : float = 0.0; private var rotor_Rotation : float = 0.0; var max_tail_Rotor_Force : float = 15000.0; var max_Tail_Rotor_Velocity : float = 2200.0; private var tail_Rotor_Velocity : float = 0.0; private var tail_Rotor_Rotation : float = 0.0; var forward_Rotor_Torque_Multiplier : float = 0.5; var sideways_Rotor_Torque_Multiplier : float = 0.5; static var main_Rotor_Active : boolean = true; static var tail_Rotor_Active : boolean = true; var torqueValue: Vector3; var player_gameobject : GameObject; // наш вертолёт var vysota: float; // переменная высоты var toplivo = rotor_Rotation/10000; function OnGUI () { GUI.Box (Rect (10,60,200,20), "топливо:"+rotor_Rotation/10000); GUI.Box (Rect (10,80,200,20), "тяга :"+rotor_Velocity); GUI.Box (Rect (10,100,200,20), "высота :"+(vysota-0.22817)); } function FixedUpdate () { var Zvuk = rotor_Velocity * 17 ; audio.pitch = Zvuk; if ( main_Rotor_Active == true ) { torqueValue += ( Vector3.up * max_Rotor_Force * rotor_Velocity); rigidbody.AddRelativeForce( Vector3.up * max_Rotor_Force * rotor_Velocity ); } if ( Vector3.Angle( Vector3.up, transform.up ) < 80 ) { transform.rotation = Quaternion.Slerp( transform.rotation, Quaternion.Euler( 0, transform.rotation.eulerAngles.y, 0 ), Time.deltaTime * rotor_Velocity * 2 ); } if ( tail_Rotor_Active == true ) { torqueValue -= ( Vector3.up * max_tail_Rotor_Force * tail_Rotor_Velocity); } } function Update () { if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); // если нажата клавиша Esc то выхот из игры} } var toplivo = rotor_Rotation/10000; if (toplivo > 100){ rotor_Velocity=0; } vysota= player_gameobject.transform.position.y ; if ( main_Rotor_Active == true ) { main_Rotor_GameObject.transform.rotation = transform.rotation * Quaternion.Euler( 0,rotor_Rotation,0); } if ( tail_Rotor_Active == true ) { tail_Rotor_GameObject.transform.rotation = transform.rotation * Quaternion.Euler( tail_Rotor_Rotation,0, 0); } rotor_Rotation += max_Rotor_Velocity * rotor_Velocity * Time.deltaTime; tail_Rotor_Rotation += max_Tail_Rotor_Velocity * rotor_Velocity * Time.deltaTime; var hover_Rotor_Velocity = (rigidbody.mass * Mathf.Abs( Physics.gravity.y )/ max_Rotor_Force); var hover_Tail_Rotor_Velocity = (max_Rotor_Force * rotor_Velocity) / max_tail_Rotor_Force; if ( Input.GetAxis( "Vertical" ) != 2.0 ) { rotor_Velocity += Input.GetAxis( "Vertical" ) * 0.003; }else{ rotor_Velocity = Mathf.Lerp( rotor_Velocity, hover_Rotor_Velocity, Time.deltaTime * Time.deltaTime * 1 ); } tail_Rotor_Velocity = hover_Tail_Rotor_Velocity - Input.GetAxis( "Horizontal" ); if ( rotor_Velocity > 1.0 ) { rotor_Velocity = 1.0; }else if ( rotor_Velocity < 0.0 ) { rotor_Velocity = 0.0; } }
| ________________________________________________ всё делаем как в том уроке теперь вертолёт у вас будет только взлетать в верх! =) а теперь сделаем вот что добавим на наш вертолёт ещё 3 моих скрипта! _________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var BackFront:boolean; var WheelSpeed:float; var WheelRpmMax:float; private var WheelRotateAngle = 0.4;// скорость движеня башни private var b = 0; // переменная ограничения вращения башни gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("q")) { if(BackWheels){ WheelRight.transform.Rotate(0,0,-WheelRotateAngle); WheelLeft.transform.Rotate(0,0,-WheelRotateAngle); }else{ WheelRight.transform.Rotate(0,0,WheelRotateAngle); WheelLeft.transform.Rotate(0,0,WheelRotateAngle); } } if (Input.GetKey ("e")) { if(BackWheels){ WheelRight.transform.Rotate(0,0,WheelRotateAngle); WheelLeft.transform.Rotate(0,0,WheelRotateAngle); }else{ WheelRight.transform.Rotate(0,0,-WheelRotateAngle); WheelLeft.transform.Rotate(0,0,-WheelRotateAngle); } } }
| _________________________________________________ этот код пихаем в наш вертолёт! а потом в его окошки пихаем наш вертолёт тоже делаем и с остальными скриптами которые ниже! _________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var BackFront:boolean; var WheelSpeed:float; var WheelRpmMax:float; private var WheelRotateAngle = 0.4;// скорость движеня башни private var b = 0; // переменная ограничения вращения башни gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("a")) { if(BackWheels){ WheelRight.transform.Rotate(0,-WheelRotateAngle,0); WheelLeft.transform.Rotate(0,-WheelRotateAngle,0); }else{ WheelRight.transform.Rotate(0,WheelRotateAngle,0); WheelLeft.transform.Rotate(0,WheelRotateAngle,0); } } if (Input.GetKey ("d")) { if(BackWheels){ WheelRight.transform.Rotate(0,WheelRotateAngle,0); WheelLeft.transform.Rotate(0,WheelRotateAngle,0); }else{ WheelRight.transform.Rotate(0,-WheelRotateAngle,0); WheelLeft.transform.Rotate(0,-WheelRotateAngle,0); } } }
| _________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var BackFront:boolean; var WheelSpeed:float; var WheelRpmMax:float; private var WheelRotateAngle = 0.1;// скорость движеня башни private var b = 0; // переменная ограничения вращения башни gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("r")) { if(BackWheels){ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); } } if (Input.GetKey ("f")) { if(BackWheels){ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); } } }
| _________________________________________________ готово! теперь запускаем нашу игру и управляем вертолётом! теперь он может наклоняться в трёх направлениях 17.06.16 20:36
Aleksahka
•
Поворот Объекта на заданный угол при нажатии на клавишу с автоматикой и задержкой Я сейчас делаю шасси для моего вертолёта чтоб оно убиралось или выдвигалось при нажатии на клавишу шасси состоит из колеса на стойке и двух створок (то есть 3 объекта) напишем 2 скрипта ! один для колеса на стойке, а второй для наших створок вот скрипт для колеса ___________________________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var H=1; // шасси выпущено var Za=0; // задержка при открытии private var WheelRotateAngle = 0.2;// скорость движеня private var b = 0; // переменная ограничения поворота gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("z")) {H=0;} if (H==0){ Za=0; if (b<200) { b=b+1; if(BackWheels){ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); } } } if (Input.GetKey ("x")) {H=1;} if (H==1){ if (Za<200){Za=Za+1;} if (Za==200){ if (b>0) { b=b-1; if(BackWheels){ WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); }else{ WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); } } } } }
| ___________________________________________________________________ сохраняем скрипт и кидаем его на наш объект колесо на стойке потом в три окошка скрипта кидаем наш объект колесо на стойке теперь пишем скрипт для створки ___________________________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var BackWheels:GameObject; var H=1; // шасси выпущено var Z=0; // задержка при закрытии private var WheelRotateAngle = 0.2;// скорость движеня башни private var b = 0; // переменная ограничения вращения башни gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { if (Input.GetKey ("z")) {H=0;} if (H==0){ if (Z<200){Z=Z+1;} if (Z==200){ if (b<200) { b=b+1; if(BackWheels){ WheelRight.transform.Rotate(0,0,WheelRotateAngle); WheelLeft.transform.Rotate(0,0,WheelRotateAngle); }else{ WheelRight.transform.Rotate(0,0,-WheelRotateAngle); WheelLeft.transform.Rotate(0,0,-WheelRotateAngle); } } } } if (Input.GetKey ("x")) {H=1;} if (H==1){ Z=0; if (b>0) { b=b-1; if(BackWheels){ WheelRight.transform.Rotate(0,0,-WheelRotateAngle); WheelLeft.transform.Rotate(0,0,-WheelRotateAngle); }else{ WheelRight.transform.Rotate(0,0,WheelRotateAngle); WheelLeft.transform.Rotate(0,0,WheelRotateAngle); } } } }
| ___________________________________________________________________ сохраняем его и делаем тоже самое что и с колесом только тут мы кидаем скрипт на створку! если нам нужно две створки то копируем нашу пред идущую створку и разворачиваем её на 180 градусов по оси Y готово! теперь при нажатии на клавиши Z и X наше шасси будет убираться и выставляться и створки будут открываться и закрываться соответственно! 18.06.16 22:26
Aleksahka
•
Тест игра Вертолёт! размер 8.6Mb http://rgho.st/download/6cTPqCGrF/b9a588e50b0d88bc3fc03deb169a900c7aca3d08/New%20Unity%20Project%203%20Copter.rar управление q e - крен в стороны w s - тяга a d - повороты r f - крен вперёд и назад z x - шасси ЛКМ - стрельба 19.06.16 18:38
Aleksahka
•
кран стрела! точнее телескопическая антенна раздвижная! берём 4 объекта (параллелепипеда) делаем один главный кидаем в него (делаем дочерний) 1 объект, а в него кидаем другой чтоб все наши объекты быле дочерними (один дочерний другому) теперь пишем скрипт на JS _________________________________________________________________________________ Скрытый текст
var b=0; // переменная ограничения выдвижения s1 var b2=0; // переменная ограничения выдвижения s2 var b3=0; // переменная ограничения выдвижения s3 var p=0; // выпуск var p2=0; // закрытие var Z=0; function FixedUpdate () { if (Input.GetKey ("g")) {p=1; p2=0;} if (p==1){ if (Z<100){Z=Z+1;} if (Z==100){ if (b<100) { strela1.transform.localPosition -= Vector3(0,0.01,0); // выдвигаем s1 по локалке b=b+1; } if (b==100) {s1=1;} if (s1==1){ if (b2<100) { strela2.transform.localPosition -= Vector3(0,0.01,0); // выдвигаем s2 по локалке b2=b2+1; } if (b2==100) {s2=1;} if (s2==1){ if (b3<100) { strela3.transform.localPosition -= Vector3(0,0.01,0); // выдвигаем s3 по локалке b3=b3+1; } if (b3==100) {s3=1;} } } } } if (Input.GetKey ("t")) {p2=1; p=0; Z=0;} if (p2==1){ if (s3==1){ if (b3>0) { strela3.transform.localPosition += Vector3(0,0.01,0); // задвигаем s3 по локалке b3=b3-1; } if (b3==0) {s3=0;} } if (s3==0){ if (b2>0) { strela2.transform.localPosition += Vector3(0,0.01,0); // задвигаем s2 по локалке b2=b2-1; } if (b2==0) {s2=0;} } if (s2==0){ if (b>0) { strela1.transform.localPosition += Vector3(0,0.01,0); // задвигаем s1 по локалке b=b-1; } if (b==0) {s1=0;} } } }
| _________________________________________________________________________________ перетаскиваем скрипт на наш главный объект! а в окошки скрипта кладём все наши дочерние объекты по порядку готово! теперь на клавиши T и G наша антенна раздвигается в игре! 21.06.16 20:19
Aleksahka
•
текстура на объекте с видом другой камеры 1) создаём камеру 2 GameObject/ Camera 2) создаём объект ( это будет наш экран) GameObject/3D Object / Cube 3) создаём рендер текстуру (то есть то через что будет транслировать наша камера) Assets/Create/Render Texture 4) теперь в камеру 2 перетаскиваем Рендер текстуру в свойства камеры в окошко Target Texture 5) в свойствах камеры ставим цифру 1 в окошке Depth 6) теперь выбираем наш куб и в его свойствах в окошко там где должна быть текстура вставляем Render Texture из Project/Assets готово! теперь наша камера 2 транслирует изображение на куб! 22.06.16 23:53
Aleksahka
•
нащёл скрипт для самолёта ! правда только на C# 1) создадим скрипт на C# (Asset/Create/C# Script) 2) называем наш скрипт FlyControls 3) жмём на него два раза и переходим к написанию скрипта ________________________________________________________ Скрытый текст
/* Класс описывающий упровление самолётом. */ using UnityEngine; using System.Collections; [RequireComponent (typeof (Rigidbody))] public class FlyControls : MonoBehaviour { //PUBLIC public float maxthrust = 40.0F; //Максемальная тяга двигателя public float maxspeed = 200.0F; //Максемальная скорость public float maneuverability = 1.0F; //Манёвренность или упровляемость public float racing = 50.0F; //Скорость набора скорости public float maxangleX = 30.0F;// Нудевой угол атаки //PRIVATE private float lforce = 0.0F; //Подёмная сила private float clift = 0.0F; //Коэффициент подъемной силы private float thrust = 0.0F; //Тяга двигателя private float ax = 0.0F; private float ay = 0.0F; private float az = 0.0F; private float anglesx = 0.0F; private float anglesz = 0.0F; void Start() { } void FixedUpdate () { az = 0.0F; if (Input.GetButton( "Jump" )) //Жмём пробел { if( thrust < maxthrust) { thrust += racing * Time.deltaTime;//Прибовляем тягу пока она меньше 25 } } else { if( thrust > 0.0F)//Если клавиша не нажата и скорость больше нуля то { thrust = rigidbody.velocity.magnitude * 0.35F; } } if( rigidbody.rotation.eulerAngles.x < 180.0F ) { anglesx = -rigidbody.rotation.eulerAngles.x; } else { anglesx = 360.0F-rigidbody.rotation.eulerAngles.x; } if( rigidbody.rotation.eulerAngles.z < 180.0F ) { anglesz = -rigidbody.rotation.eulerAngles.z; } else { anglesz = 360.0F-rigidbody.rotation.eulerAngles.z; } anglesx = Mathf.Clamp ( anglesx, -maxangleX, maxangleX + 5.0F ); clift =1.0F - ( 0.035F * ( maxangleX - anglesx )); if( anglesx > maxangleX - 5.0F && anglesz < 45.0F && anglesz > -45.0F)// а тут код для того, чтобы при сильном угле атаки падала тяга и подёмная сила { clift = -thrust * 0.15F; } ax = Input.GetAxisRaw( "Vertical" ) * maneuverability; ay = Input.GetAxisRaw( "Horizontal" ) * maneuverability; rigidbody.angularDrag = 6.0F - maneuverability; rigidbody.drag = 1.5F - maneuverability; if (Input.GetKey( "q" )) { az = 3.0F * maneuverability; } if ( Input.GetKey( "e" )) { az = -3.0F * maneuverability; } lforce = ( rigidbody.velocity.magnitude * 0.175F ) + ( rigidbody.velocity.magnitude * 0.04F * clift );//тут расчёт подъёмной силы rigidbody.AddRelativeTorque ( new Vector3 ( ax, ay, az ) * Time.deltaTime, ForceMode.VelocityChange); rigidbody.AddRelativeForce ( new Vector3( az * az, lforce , thrust) * Time.deltaTime, ForceMode.VelocityChange ); } void OnGUI() { GUILayout.Label(" Высота: " + transform.position.y.ToString("f2")); GUILayout.Label(" Скорость: " + rigidbody.velocity.magnitude.ToString("f2")); GUILayout.Label(" подъёмная сила: " + lforce.ToString("f2")); GUILayout.Label(" Тяга: " + thrust.ToString("f2")); GUILayout.Label(" AnglesX: " + anglesx.ToString("f2")); GUILayout.Label(" Temp: " + anglesz.ToString("f2")); GUILayout.Label(" Clift: " + clift.ToString("f2")); } }
| ________________________________________________________ 4) сохраняем его и переходим назад в Unity 5) ктдаем наш скрипт на объект самолёт 6) запускаем и летаем! =) (пробел акселератор) 05.07.16 17:34
Aleksahka
•
теперь сделаем пропеллер для него! 1) берём объект пропеллер 2) цепляем к нему динамик (Component/Audio/Audio Source) 3) потом в компоненте звука вставляем наш звук для пропеллера 4) теперь пишем сам скрипт для него (Assets/Create/Javascript) ________________________________________________________ Скрытый текст
var Wint:GameObject; var BackWheels:GameObject; var a=0; private var W = 0.01;// скорость врыщения винта gameObject.GetComponent(Rigidbody).centerOfMass = Vector3 (0, -0.6*2.3, 0); function Update () { var Zvuk = W / 8 ; audio.pitch = Zvuk; if(BackWheels){ a=0; if (Input.GetButton( "Jump" )){a=1;} if (a==1){ if (W<40){ W=W+0.3; } } if (a==0){ if (W>0){ W=W-0.2; } if (W<=0){ W=0; } } Wint.transform.Rotate(0,0,W); }
| ________________________________________________________ 5) сохраняем наш скрипт и переходим в Unity 6) кидаем наш скрипт на объект Пропеллер 7) а потом в сам скрипт кидаем наш пропеллер в два окошка готово! 05.07.16 17:47
Aleksahka
•
теперь сделаем для нашего самолёта органы управления Закрылки, Руль высоты, Руль направления скрипт для Закрылок ________________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var c=0; var a=0; private var WheelRotateAngle = 0.4; function Update () { a=0; if (Input.GetKey ("q")) {a=1;} if (a==1){ if (c<100){ c=c+1; WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); } } if (Input.GetKey ("e")) {a=2;} if (a==2){ if (c>-100){ c=c-1; WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); } } if (a==0){ if (c>0){ c=c-1; WheelRight.transform.Rotate(-WheelRotateAngle,0,0); WheelLeft.transform.Rotate(WheelRotateAngle,0,0); } if (c<0){ c=c+1; WheelRight.transform.Rotate(WheelRotateAngle,0,0); WheelLeft.transform.Rotate(-WheelRotateAngle,0,0); } } }
| ________________________________________________________ кидаем его на самолёт и потом в окошки скрипта перетаскиваем наши закрылки Правый и Левый соответствено. Руль Высоты _________________________________________________________ Скрытый текст
var WheelRight:GameObject; var WheelLeft:GameObject; var c=0; // ограничение var a=0; private var WheelRotateAngle = 0.4; function Update () { a=0; if (Input.GetKey ("w")) {a=1;} if (a==1){ if (c<100){ c=c+1; WheelRight.transform.Rotate(WheelRotateAngle,0,0); } } if (Input.GetKey ("s")) {a=2;} if (a==2){ if (c>-100){ c=c-1; WheelRight.transform.Rotate(-WheelRotateAngle,0,0); } } if (a==0){ if (c>0){ c=c-1; WheelRight.transform.Rotate(-WheelRotateAngle,0,0); } if (c<0){ c=c+1; WheelRight.transform.Rotate(WheelRotateAngle,0,0); } } }
| _________________________________________________________ кидаем его на наш дочерний объект Руль высоты а в окошко скрипта кидаем сам объект. Руль направления ___________________________________________________________ Скрытый текст
var WheelRight:GameObject; var c=0; // ограничение var a=0; private var WheelRotateAngle = 0.4; function Update () { a=0; if (Input.GetKey ("a")) {a=1;} if (a==1){ if (c<70){ c=c+1; WheelRight.transform.Rotate(0,WheelRotateAngle,0); } } if (Input.GetKey ("d")) {a=2;} if (a==2){ if (c>-70){ c=c-1; WheelRight.transform.Rotate(0,-WheelRotateAngle,0); } } if (a==0){ if (c>0){ c=c-1; WheelRight.transform.Rotate(0,-WheelRotateAngle,0); } if (c<0){ c=c+1; WheelRight.transform.Rotate(0,WheelRotateAngle,0); } } }
| ___________________________________________________________ кидаем его на объект Руль Направления а потом в его окошкш кидаем сам объект Руль Направления 06.07.16 19:27
Aleksahka
•
вот тест-игра самолёт http://rgho.st/download/82VFR596x/da2c9c92f2d822e2c9bba67af84b60f001297965/Unity%20Samolet.rar управление пробел - газулька w s - вниз и вверх a d - влево вправо q e - крен влево вправо v - камеры 06.07.16 20:47
Aleksahka
•
вот написал скрипт для запуска шести подвесных ракет по очерёдно одной правой кнопкой мыши __________________________________________________________________________ Скрытый текст
var projectile1 : Rigidbody; // сюда вставляем префаб ракеты var projectile2 : Rigidbody; // сюда вставляем префаб ракеты var projectile3 : Rigidbody; // сюда вставляем префаб ракеты var projectile4 : Rigidbody; // сюда вставляем префаб ракеты var projectile5 : Rigidbody; // сюда вставляем префаб ракеты var projectile6 : Rigidbody; // сюда вставляем префаб ракеты var speed = 150; // скорость запуска ракеты var raketa1 : GameObject; // ракета 1 var raketa2 : GameObject; // ракета 2 var raketa3 : GameObject; // ракета 3 var raketa4 : GameObject; // ракета 4 var raketa5 : GameObject; // ракета 5 var raketa6 : GameObject; // ракета 6 var R=0; // очерёдность запуска ракет var i=0; // ракета 1 не запущена var j=0; // ракета 2 не запущена var k=0; // ракета 3 не запущена var l=0; // ракета 4 не запущена var m=0; // ракета 5 не запущена var n=0; // ракета 6 не запущена function Update() { if(Input.GetButtonDown ( "Fire2" ) ) { R=R+1; if (R==1){if (i==0){i=1;Destroy(raketa1);var instantiatedProjectile1 : Rigidbody = Instantiate( projectile1, transform.position, transform.rotation ); instantiatedProjectile1.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (i==1){}} if (R==2){if (j==0){j=1;Destroy(raketa2);var instantiatedProjectile2 : Rigidbody = Instantiate( projectile2, transform.position, transform.rotation ); instantiatedProjectile2.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (j==1){}} if (R==3){if (k==0){k=1;Destroy(raketa3);var instantiatedProjectile3 : Rigidbody = Instantiate( projectile3, transform.position, transform.rotation ); instantiatedProjectile3.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (k==1){}} if (R==4){if (l==0){l=1;Destroy(raketa4);var instantiatedProjectile4 : Rigidbody = Instantiate( projectile4, transform.position, transform.rotation ); instantiatedProjectile4.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (l==1){}} if (R==5){if (m==0){m=1;Destroy(raketa5);var instantiatedProjectile5 : Rigidbody = Instantiate( projectile5, transform.position, transform.rotation ); instantiatedProjectile5.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (m==1){}} if (R==6){if (n==0){n=1;Destroy(raketa6);var instantiatedProjectile6 : Rigidbody = Instantiate( projectile6, transform.position, transform.rotation ); instantiatedProjectile6.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) ); }if (n==1){}} } }
| __________________________________________________________________________ скрипт надо повесить на шесть пускавых установок отдельно! на каждую по 1 ракете и по одному ригбоди префабу ракеты! 08.07.16 23:47
Aleksahka
•
Включение и Отключение GameObject я вот тут написал пример при нажатии на пробел объект включаеться если пробел не нажат то объект отключаеться _________________________________________ Скрытый текст
var Dvijok1:GameObject; // наш игравой объект Dvijok1.SetActive (false); // отключаем иргавой объект var a=0; // переменная а служит для проверки на нажитие если а=0 то пробел не зажат function Update () { a=0; if (Input.GetButton( "Jump" )){a=1;} if (a==1){ Dvijok1.SetActive (true); // включаем объект } if (a==0){ Dvijok1.SetActive (false); // выключаем объект } }
| ___________________________________________________________ 09.07.16 18:11
Aleksahka
•
теперь создадим катапульту создадим два GameObject один у нас будет стекло(фонарь) кокпита а второй кресло с пилотом(катапульта) теперь сделаем из них копии и засуним их в префабы теперь напишем сам скрипт на JS _______________________________________________________________________________ Скрытый текст
var projectile1 : Rigidbody; // сюда вставляем префаб Стекла из Asset var projectile2 : Rigidbody; // сюда вставляем префаб катапульты из Asset var speed = 10; // скорость отстрела стекла и кресла с пилотом var fonar : GameObject; // сюда стекло перетаскиваем из Hierarchy var pilot : GameObject; // сюда кресло с пилотом перетаскиваем из Hierarchy var R=0; // очерёдность отстрела var i=0; // стекло не отстрелено var j=0; // кресло с пилотом не отстрелено var Za=0; // пауза между отстрелом стекла и запуском катапульты var Z=0; // разрешение на запуск пилота с креслом function Update() { if(Input.GetButtonDown ( "Fire3" ) ) { R=1; Z=1; if (R==1){if (i==0){ i=1; Destroy(fonar); var instantiatedProjectile1 : Rigidbody = Instantiate( projectile1, transform.position, transform.rotation ); instantiatedProjectile1.velocity =transform.TransformDirection( Vector3( 0, speed, 0 ) ); } } } if (Z==1){ if (Za<120){Za=Za+1;} if (Za==120){if (j==0){ j=1; Destroy(pilot); var instantiatedProjectile2 : Rigidbody = Instantiate( projectile2, transform.position, transform.rotation ); instantiatedProjectile2.velocity =transform.TransformDirection( Vector3( 0, speed, 0 ) ); } Za=0; } } }
| ________________________________________________________________________________ сохраняем скрипт и переходим в юнити теперь создадим пустой объект и перетащим его в кобину пилота, это у нас будет пускавая катапульты ориентируем нашу пускавую по носу самолёта (синюю стрелку вперёд) теперь перетаскиваем наш скрипт на нашу пускавую потом в верхнее окошко скрипта вставляем префаб фоноря во второе окошко вставляем префаб кресла с пилотом в нижние два окошка вставляем наши геймобъекты стекло(фонорь) и пилота с креслом готово ! теперь после нажатия на колёсико мыши сработает наша катапульта! отсрелиться стекло и катапультируется пилот 13.07.16 15:11
Aleksahka
•
скрипт ожидания на Js чтоб не сразу что нибудь срабатывало, а через определёный промежуток времени ________________________________________________________________________ Скрытый текст
var Pauza=0; // пауза function Update () { if (Pauza<60){Pauza=Pauza+1;} if (Pauza==60){ тут пишем что будет происходить после 60секунд ожидания} }
| ________________________________________________________________________ готово! 14.07.16 14:10
Aleksahka
•
тест-игра симулятор МИГ-29 для windows http://rgho.st/download/6GdR2Lxcg/6b13d8bd1120f414e173db377eebbc0769b52b39/Unity%20MIG29.rar размер архива : 10,1Mb управление 1 и 2 - фонарь q и e - крен влево и вправо w и s - крен вниз и вверх a и d - поворот в право и влево z и x - шасси v - камеры ПКМ- пуск ракеты СКМ- катапульта 14.07.16 17:46
Aleksahka
•
создание паращюта для кресла катапульты 1) теперь перетащим наш Префаб (катапульта) из Assets в Hierarchy или же перетащиет его на Экран где сама игра 2) теперь перетащим наш объект (3D модель ) паращют из Assets в наш Префаб (катапульта) который в Hierarchy (сделать Парашют дочерним) 3) уменьщим наш объект паращют по всем векторам до ноля (для этого надо выбрать наш объект паращют, затем в свойствах объекта в Inspector надо у пункта Scale поставить X 0 Y 0 Z 0 4) теперь добавим компоненты к парашюту Component/Physic/ Rigidbody теперь в свойствах компонента в Inspector ставим: Mass 0.01 Drag 1.2 Angular Drag 0.05 5) теперь добавим Mesh Collider (зону сталкновения ) 6) и добавим Character Joint в окошко Connected Body добавим наш префаб из Hierarchy Катапульту 7) теперь примимся к написанию скрипта (Asset/Create/Javascript) дадим название ему к примеру Parashut и нажмём на него дважды (перейдём в редактор скриптов) ____________________________________________________________________ Скрытый текст
var Parashut : GameObject; var rigidbody : Rigidbody; var Za=0; // пауза var j=0; // паращют не открыт var razmer=0; function Update () { if (Za<100){ Za=Za+1; razmer=razmer+0.1; if (Za==10){ Parashut.transform.localScale.x=0.1; Parashut.transform.localScale.y=0.1; Parashut.transform.localScale.z=0.1; } if (Za==20){ Parashut.transform.localScale.x=0.2; Parashut.transform.localScale.y=0.2; Parashut.transform.localScale.z=0.2; } if (Za==30){ Parashut.transform.localScale.x=0.3; Parashut.transform.localScale.y=0.3; Parashut.transform.localScale.z=0.3; } if (Za==40){ Parashut.transform.localScale.x=0.4; Parashut.transform.localScale.y=0.4; Parashut.transform.localScale.z=0.4; } if (Za==50){ Parashut.transform.localScale.x=0.5; Parashut.transform.localScale.y=0.5; Parashut.transform.localScale.z=0.5; } if (Za==60){ Parashut.transform.localScale.x=0.6; Parashut.transform.localScale.y=0.6; Parashut.transform.localScale.z=0.6; } if (Za==70){ Parashut.transform.localScale.x=0.7; Parashut.transform.localScale.y=0.7; Parashut.transform.localScale.z=0.7; } if (Za==80){ Parashut.transform.localScale.x=0.8; Parashut.transform.localScale.y=0.8; Parashut.transform.localScale.z=0.8; } if (Za==90){ Parashut.transform.localScale.x=0.9; Parashut.transform.localScale.y=0.9; Parashut.transform.localScale.z=0.9; } if (Za==100){ Parashut.transform.localScale.x=1; Parashut.transform.localScale.y=1; Parashut.transform.localScale.z=1; GameObject.drag = 1; j=1; razmer=1; } } }
| ___________________________________________________________________ сохраняем скрипт и переходим обратно в Unity 3D перетаскиваем теперь наш скрипт из Asset в Inspector нашего объекта парашюта потом в окошки скрипта вставим наш объект Парашют из Hierarchy и Катапульту ! готово! теперь когда наша катапульта сработает то у неё появится парашют! 16.07.16 11:41
Aleksahka
•
Aleksahka, сделай что-нить SQ'шное на Unity ! 16.07.16 23:42
Sledgy
•
Sledgy пишет:
цитата: | что-нить SQ'шное на Unity |
|
вот смотри что уже сделал! 02.08.16 14:55
Aleksahka
•
я игры с человеками ещё не далал! там сложно анимировать их! 17.07.16 21:21
Aleksahka
•
Скрипт для рычага управления в кокпите самолёта _____________________________________________________ Скрытый текст
var Shtukovina:GameObject; // Рычаг var d=0; // ограничение наклона var c=0; // ограничение наклона var a=0; var W = 0.4; // скорость наклона Рычага function Update () { a=0; if (Input.GetKey ("w")) {a=1;} if (a==1){if (c<30){c=c+1; Shtukovina.transform.Rotate(W,0,0);}} if (Input.GetKey ("s")) {a=2;} if (a==2){if (c>-30){c=c-1;Shtukovina.transform.Rotate(-W,0,0);}} if (Input.GetKey ("q")) {a=3;} if (a==3){if (d<30){d=d+1; Shtukovina.transform.Rotate(0,0,W);}} if (Input.GetKey ("e")) {a=4;} if (a==4){if (d>-30){d=d-1;Shtukovina.transform.Rotate(0,0,-W);}} if (a==0){if (d>0){d=d-1;Shtukovina.transform.Rotate(0,0,-W);} if (d<0){d=d+1;Shtukovina.transform.Rotate(0,0,W);} if (c>0){c=c-1;Shtukovina.transform.Rotate(-W,0,0);} if (c<0){c=c+1;Shtukovina.transform.Rotate(W,0,0);} } }
| _____________________________________________________ скрипт кидаем на игравой объект рычаг или сам самолёт а в окошко скрипта кидаем сам игравой объект Рычаг 19.07.16 14:30
Aleksahka
•
вот как проиграть звук при входе в триггер в unity3D (JS) 1) создаём пустой объект (GameObgect/Create Empty) 2) создаём ему компонент бокс колайдер (Component/Physics/Box Collider) 3) прицепим динамик (Component/Audio/Audio Source) 4) теперь бокс колайдер сделайте триггером (поставте галочку в inspector возле Is Trigger) 5) теперь создадим скрипт (Assets/Create/Javascript) 6) откроем его (дважды нажмите на него левой кнопкой мыши) _______________________________________________________________________________ Скрытый текст
var a=0; var b=0; var tochka1:AudioClip; // вставляем сюда звук для того чтобы он проигрывался при входе в триггер function OnTriggerEnter (other : Collider) {a=1;if (other.collider.tag == "Player"){if (a==1){if (b==0){audio.PlayOneShot(tochka1,170);b=1;}}}} function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){a=0;b=0;}}
| ________________________________________________________________________________ сохраняем скрипт и переходим обратно в unity кидаем наш скрипт из окна Assets в наш пустой гейм объект кидаем потом наш звуковой файл в окошко скрипта в inspectorе делаем нашему игроку тег Player готово! теперь каждый раз, когда наш игрок, будет попадать в поле (невидимый куб) то будет, каждый раз, проигрываться звук один раз. а если надо просто проиграть звук всего один раз то надо просто при выходе из триггера не приравнивать b кнулю! 19.07.16 22:58
Aleksahka
•
написал скрипт на JS для пускавой платформы врага на ней закрепил две ракеты (гейм объекта) и при входе в зону обстрела играка она начинает выпускать ракеты ____________________________________________________________ Скрытый текст
var Pro1 : Rigidbody; // сюда вставляем префаб ракеты var Pro2 : Rigidbody; // сюда вставляем префаб ракеты var speed = 300; // скорость запуска ракеты var raketa1 : GameObject; // сюда вставляем игравой объект ракета 1 var raketa2 : GameObject; // сюда вставляем игравой объект ракета 2 var R=0; // очерёдность запуска ракет var i=0; // ракета 1 не запущена var j=0; // ракета 2 не запущена var k=0; //НЕ В ЗОНЕ захвата цели var sound1:AudioClip; // звук приближается ракета function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){k=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){k=0;} } function Update() { var A=Random.Range(1,200); if(k==1){ if(A==10) { R=R+1; if (R==1){if (i==0){i=1;Destroy(raketa1);var instantiatedPro1 : Rigidbody = Instantiate( Pro1, transform.position, transform.rotation ); instantiatedPro1.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) );audio.PlayOneShot(sound1); }if (i==1){}} if (R==2){if (j==0){j=1;Destroy(raketa2);var instantiatedPro2 : Rigidbody = Instantiate( Pro2, transform.position, transform.rotation ); instantiatedPro2.velocity =transform.TransformDirection( Vector3( 0, 0, speed ) );audio.PlayOneShot(sound1); }if (j==1){}} if (R==3){} } } if(k==0){ } }
| ____________________________________________________________ скрипт цепляйте на пускавую пускавой сделайте компонент Box Collider и увеличьте его (это будет зона видимости пускавой) а сам Box Collider сделайте тригером и игроку поставте тег Player 22.07.16 19:06
Aleksahka
•
вот сделал новую версию МИГ-29 http://rgho.st/download/8RMT9fMNx/92bd77c034eaa241b34808461dfbe557cbf38440/Unity%20Mig29%20demo2.rar теперь можно пострелять по мешеням! или они постреляют в вас! 24.07.16 21:25
Aleksahka
•
Сделай космический корабль с Вилко) 25.07.16 06:12
Sledgy
•
написал скрипт для направления движков Серебрянной Утки _____________________________________________________ Скрытый текст
var DvigR:GameObject; var DvigL:GameObject; var a=0; var b=0; var c=0; var d=0; var e=0; function Update () { e=0; if (Input.GetKey ("s")) {e=2;} if (Input.GetKey ("q")) {e=4;} if (Input.GetKey ("e")) {e=5;} if (Input.GetKey ("a")) {e=6;} if (Input.GetKey ("d")) {e=7;} if (Input.GetKey ("r")) {e=8;} if (Input.GetKey ("f")) {e=9;} if (e==0){if (d>0){DvigR.transform.Rotate(-3,0,0);DvigL.transform.Rotate(-3,0,0);d=d-1;} if (d<0){DvigR.transform.Rotate(3,0,0);DvigL.transform.Rotate(3,0,0);d=d+1;} if (a>0){DvigL.transform.Rotate(3,0,0);a=a-1;} if (a<0){DvigR.transform.Rotate(-3,0,0);a=a+1;} if (c<0){DvigR.transform.Rotate(-3,0,0);DvigL.transform.Rotate(3,0,0);c=c+1;} if (b>0){DvigL.transform.Rotate(3,0,0);DvigR.transform.Rotate(-3,0,0);b=b-1;} if (b<0){DvigL.transform.Rotate(-3,0,0);DvigR.transform.Rotate(3,0,0);b=b+1;} } if (e==2){if (c>-60){DvigR.transform.Rotate(3,0,0);DvigL.transform.Rotate(-3,0,0);c=c-1;}} if (e==4){if (d<30){DvigR.transform.Rotate(3,0,0);DvigL.transform.Rotate(3,0,0);d=d+1;}} if (e==5){if (d>-30){DvigR.transform.Rotate(-3,0,0);DvigL.transform.Rotate(-3,0,0);d=d-1;}} if (e==6){if (a<60){DvigL.transform.Rotate(-3,0,0);a=a+1;}} if (e==7){if (a>-60){DvigR.transform.Rotate(3,0,0);a=a-1;}} if (e==8){if (b<30){DvigL.transform.Rotate(-3,0,0);DvigR.transform.Rotate(3,0,0);b=b+1;}} if (e==9){if (b>-30){DvigL.transform.Rotate(3,0,0);DvigR.transform.Rotate(-3,0,0);b=b-1;}} }
| ________________________________________________________________________________ его цепляем на сам корабль а в окошки скрипта кидаем наш правый и левый двигатель теперь буду пробовать писать сам скрипт полёта серебрянной утки 29.07.16 21:21
Aleksahka
•
я кораблик пока что только с наруже сделал ! без внутренностей ещё и стёкал тоже нет! 30.07.16 13:01
Aleksahka
•
вот написал скрипт про Опры (посадочные столики) на Z они задвигаются, а на X они выдвигаются. _____________________________________________________ Скрытый текст
var a=0; var b=0; var c=80; var Opora1:GameObject; var Opora2:GameObject; var Opora3:GameObject; var Opora4:GameObject; function Update () { if (Input.GetKey ("z")) {a=1;} if (a==1){ b=b+1; if (b<c){ Opora1.transform.localPosition += Vector3(0,0.01,0); Opora2.transform.localPosition += Vector3(0,0.01,0); Opora3.transform.localPosition += Vector3(0,0.01,0); Opora4.transform.localPosition += Vector3(0,0.01,0); } if (b>=c){b=c;} } if (a==0){ } if (Input.GetKey ("x")) {a=2;} if (a==2){ b=b-1; if (b>0){ Opora1.transform.localPosition -= Vector3(0,0.01,0); Opora2.transform.localPosition -= Vector3(0,0.01,0); Opora3.transform.localPosition -= Vector3(0,0.01,0); Opora4.transform.localPosition -= Vector3(0,0.01,0); } if (b<=0){b=0;} } }
| _____________________________________________________ скрипт вешаем на корабль а в окошки скрипта кидаем наши 4 опоры 30.07.16 22:22
Aleksahka
•
открытие и закрытие Рампы при нажатии на клавишу E в зоне триггера _____________________________________________________________ Скрытый текст
var R : GameObject; // сюда трап var Knopka : GameObject; // сюда кнопку var a=0; var b=0; var c=0; // нажатие var k=0; //НЕ В ЗОНЕ function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){k=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){k=0;} } function Update(){ if(k==1){ if(Input.GetKeyDown("e")){c=c+1;} if (c==1){if (a<40){ a=a+1;R.transform.Rotate(-1,0,0);Knopka.transform.localPosition -= Vector3(0,0.002,0);}if (a>40){a=40;}} if (c==2){if (a>0){ a=a-1;R.transform.Rotate(1,0,0);Knopka.transform.localPosition += Vector3(0,0.002,0);}if (a<=0){a=0;}} if (c>=3){c=1;} } if(k==0){} }
| _____________________________________________________________ скрипт кидаем на триггер который рядом сделан с кнопкой и Рампой при в ходе в Триггер(регион) можно будет нажать E и рампа закроется или откроется! 01.08.16 19:26
Aleksahka
•
вот пробник! http://file.uacode.com/G/5666 перейдите по ссылке и нажмите скачать 02.08.16 21:50
Aleksahka
•
скрипт для раздвижной двери двери с зонай влияния открытия _______________________________________________________ Скрытый текст
var Stvorka1 : GameObject; // сюда дверь1 var Stvorka2 : GameObject; // сюда дверь2 var a=0; var c=0; // нажатие var k=0; //НЕ В ЗОНЕ function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){k=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){k=0;} } function Update(){ if(k==1){ if(Input.GetKeyDown("e")){c=c+1;} if (c==1){if (a<40){ a=a+1;Stvorka1.transform.localPosition -= Vector3(0.01,0,0);Stvorka2.transform.localPosition -= Vector3(-0.01,0,0);}if (a>40){a=40;}} if (c==2){if (a>0){ a=a-1;Stvorka1.transform.localPosition += Vector3(0.01,0,0);Stvorka2.transform.localPosition += Vector3(-0.01,0,0);}if (a<=0){a=0;}} if (c>=3){c=0;} } if(k==0){} }
| _______________________________________________________ скрипт кидаем на Триггер (при входе в который будет действовать кнопка открытия "Е" ) в окошки скрипта кидаем створки делаем нашему персонажу тег "Player" 04.08.16 19:44
Aleksahka
•
Стёкла надо и в космос чтобы можно было взлетать (просто вверх) А так - шикарно 04.08.16 21:50
Sledgy
•
Можно добавить еще SQ-моделек вокруг, всяких монстров оттуда 04.08.16 21:54
Sledgy
•
я там ща ещё туалет сделал! там теперь дверь в туалет можно открывать! ща привязываю там всё на клавишу E (действие) трап , кресло, двери в туалет, и комп думаю тоже привязать к Е чтоб его включить можно было! и летать попробую его научить! я думаю сделать космопорт из SQ1 04.08.16 22:08
Aleksahka
•
вот новая версия! корабль уже летает! только странно! http://file.uacode.com/G/5676 управление WASD - движение игрока пробел - прыжок Е - действие Q - писать в туалете IOPL - управление кораблём 1 и 2 - перескоп 3 и 6 - взлёт и снижение 05.08.16 20:07
Aleksahka
•
Aleksahka пишет:
цитата: | вот новая версия! корабль уже летает! только странно! |
|
КРУТО, прикольно зделоно! 06.08.16 12:04
Кукарача
•
Aleksahka, ускорить персонажа! Или кнопку "Бег" Эта версия удивила совсем новыми локациями. Надо бы и врагов туда, оружие (вантус?) и счёт за убитых 09.08.16 14:38
Sledgy
•
Sledgy пишет:
я пытаюсь замутить "Аркаду" научный корабль Sledgy ты можешь мне карту нарисовать (план уравней ) Аркады ? (вид с верху каждого этажа) а то я чёт не могу придумать лаберинт этажей 09.08.16 17:49
Aleksahka
•
Aleksahka, Аркада - это гениально! Добавь еще туда сариенов с пистолетами. И чтобы их можно было мочить А лабиринт можно собрать по этой картинке: _http://www.vgmaps.com/Atlas/PC/SpaceQuestI-RogerWilcoInTheSarienEncounter(VGA)-Arcada.png 10.08.16 17:03
Sledgy
•
Sledgy ща буду мутить отсеки "Аркады" 10.08.16 19:17
Aleksahka
•
Вокруг прищельцев и шваброй бить их :) 05.08.16 23:09
Диман
•
Диман пишет:
а вантузом не пойдёт? 06.08.16 11:45
Aleksahka
•
Сделай прям руки чтоб туда сюда шевелились, типа шутер И чтоб можно было кого-то мочить) И счёт вверху 06.08.16 20:01
Sledgy
•
Sledgy пишет:
цитата: | Сделай прям руки чтоб туда сюда шевелились |
|
сложно! но можно! сложно из-за того, что когда роджер сядет в кресло, их прийдётся менять на другие ! 06.08.16 21:07
Aleksahka
•
вот новая версия Серебрянной Утки http://file.uacode.com/G/5678 теперь попробуйте найти её и улететь! 07.08.16 18:54
Aleksahka
•
написал скрипт для лифта на 5 этажей по нажатию на клавиши от 1 до 5 лифт будет передвигаться на указанный этаж 1) создайте новый скрипт (JS) и назовите его LIFT 2) сделайте игроку тег Player _______________________________________________________________________________________ Скрытый текст
var Lift : GameObject; // сюда Лифт var a=0; // текущая позиция лифта var b=86; // движение лифта на расстояние между этажами var c=1; // указатель этажа public static var d=1; // Публичная переменная номера этажа var k=0; //НЕ В ЗОНЕ дейстаия кнопки function OnTriggerEnter (other : Collider){if (other.collider.tag == "Player"){k=1;} } function OnTriggerExit (other : Collider){if (other.collider.tag == "Player"){k=0;} } function Update(){ if(k==1){ if(Input.GetKeyDown("1")){c=1;} if(Input.GetKeyDown("2")){c=2;} if(Input.GetKeyDown("3")){c=3;} if(Input.GetKeyDown("4")){c=4;} if(Input.GetKeyDown("5")){c=5;} } if (c==1){if (a>0){ a=a-1;Lift.transform.localPosition -= Vector3(0,0.1,0);}if (a<0){a=0;c=1;}} if (c==2){if (a<b){ a=a+1;Lift.transform.localPosition += Vector3(0,0.1,0);}if (a>b){{ a=a-1;Lift.transform.localPosition -= Vector3(0,0.1,0);}}} if (c==3){if (a<b*2){ a=a+1;Lift.transform.localPosition += Vector3(0,0.1,0);}if (a>b*2){{ a=a-1;Lift.transform.localPosition -= Vector3(0,0.1,0);}}} if (c==4){if (a<b*3){ a=a+1;Lift.transform.localPosition += Vector3(0,0.1,0);}if (a>b*3){{ a=a-1;Lift.transform.localPosition -= Vector3(0,0.1,0);}}} if (c==5){if (a<b*4){ a=a+1;Lift.transform.localPosition += Vector3(0,0.1,0);}if (a>b*4){{ a=a-1;Lift.transform.localPosition -= Vector3(0,0.1,0);}}} if (a==86){d=2;} if (a==172){d=3;} if (a==258){d=4;} if (a==344){d=5;} if (a==0){d=1;} if(k==0){} }
| _______________________________________________________________________________________ скрипт кидаем на триггер лифта (зона действия нажития кнопак лифта) сам триггер должен висеть на объекте лифт в окошко скрипта кидаем сам объект лифт 10.08.16 09:20
Aleksahka
•
дополнение к лифту панель которая показывает номер этажа на котором в данный момент находиться лифт 1) создаём новый объект и цепляем его к лифту (делаем его дочерним) это будет наше Табло 2) рисуем 5 текстур в графическом редакторе (например в пэинте) 3) перетаскиваем наши 5 текстур в unity3D в Assets теперь пишим скрипт _____________________________________________________________________________ Скрытый текст
var Texture1 : Texture2D; var Texture2 : Texture2D; var Texture3 : Texture2D; var Texture4 : Texture2D; var Texture5 : Texture2D; function FixedUpdate(){ if (LIFT.d==1){renderer.material.mainTexture = Texture1;} if (LIFT.d==2){renderer.material.mainTexture = Texture2;} if (LIFT.d==3){renderer.material.mainTexture = Texture3;} if (LIFT.d==4){renderer.material.mainTexture = Texture4;} if (LIFT.d==5){renderer.material.mainTexture = Texture5;} }
| _____________________________________________________________________________ сохраняем скрипт и кидаем его на наш дочерний объект Табло в окошки скрипта кидаем 5 наших текстур готово ! 10.08.16 09:31
Aleksahka
•
зацикленная анимация текстуры на Гейм объекте ____________________________________________ Скрытый текст
var Texture2 : Texture2D; var Texture3 : Texture2D; var Texture4 : Texture2D; var Texture5 : Texture2D; var Texture6 : Texture2D; var Texture7 : Texture2D; var Texture8 : Texture2D; var Texture9 : Texture2D; var Texture10 : Texture2D; var Texture11 : Texture2D; var Texture12 : Texture2D; var Texture13 : Texture2D; var Pauza=0; // пауза между кадрами var s=5; //скорость анимации var a=1; // текущий кадр анимации function Update () { if (a==1){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture1;Pauza=0; }} if (a==2){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture2;Pauza=0; }} if (a==3){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture3;Pauza=0; }} if (a==4){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture4;Pauza=0; }} if (a==5){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture5;Pauza=0; }} if (a==6){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture6;Pauza=0; }} if (a==7){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture7;Pauza=0; }} if (a==8){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture8;Pauza=0; }} if (a==9){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture9;Pauza=0; }} if (a==10){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture10;Pauza=0; }} if (a==11){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture11;Pauza=0; }} if (a==12){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture12;Pauza=0; }} if (a==13){if (Pauza<s){Pauza=Pauza+1;} if (Pauza==s){a=a+1;renderer.material.mainTexture = Texture13;Pauza=0; }} if (a==14){a=1;} }
| ____________________________________________ скрипт кидаем на Гейм объект на сцене в окошки скрипта кидаем наши картинки с анимацией попорядку с верху в низ 11.08.16 19:46
Aleksahka
•
Ну что там? 13.08.16 12:01
Sledgy
•
http://fracton.rgho.st/79qBHZFd4 19.08.16 05:38
Aleksahka
•
Sledgy как вскрыть SQ 1 VGA? а то я из неё картинки дастать не могу да и запустить её не выходит! 19.08.16 05:38
Aleksahka
•
пробник Аркада http://muonium.rgho.st/7bgc8HYnk 19.08.16 05:38
Aleksahka
•
пробный вариант ! коридоры Аркады http://muonium.rgho.st/7bgc8HYnk скажите какой Основной пол делать? тот который на верхнем этаже или на нижнем? 19.08.16 05:38
Aleksahka
•
На сайте - создать SQ - там есть распаковщики Или "SCI Companion" поищи в инете 19.08.16 06:52
Sledgy
•
Демка класс))) Надо добавить бег, руку с оружием и сариенов, которые пытаются тебя замочить! 19.08.16 07:26
Sledgy
|