Танковая аркада

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

Re: Танковая аркада

Сообщение [LUkARD] 22 авг 2011, 10:19

Поищи на официальном форуме про GUIMatrix
Запиался на курс программирования + html!
Аватара пользователя
[LUkARD]
UNIт
 
Сообщения: 108
Зарегистрирован: 24 июн 2011, 19:37
Откуда: Оренбургская обл. г. Ясный

Re: Танковая аркада

Сообщение Order 22 авг 2011, 10:45

Zanilokon. С таким подходом ты так ничего не сделаешь, все тяп ляп. К советам не прислушиваешься , гнешь свою линию. Вариантов реализации множество , но ты выбираешь самое УГ- решения.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Танковая аркада

Сообщение Zanilokon 22 авг 2011, 11:07

[LUkARD] писал(а):Поищи на официальном форуме про GUIMatrix

да да спасибо уже смотрю)
Чтобы именно летел с самонаведением ?

Сделай Vector.Lerp (вектор_начала_движения , вектор_цели, прогресс_времени_с_учетом_расстояния_скорости) полетит от ствола к цели

Какое самонаведение? я кажется чётко вопрос поставил...
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение Order 22 авг 2011, 11:14

Как нужно переделать мисл лаунчер (скрипт) что бы при выстреле он посылал из сферы в сторону танка куб?
Это четко поставленный вопрос ?

Про отдачу уже писали тебе, надо приложить силу к танку в момент выстрела , не надо городить огород.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Танковая аркада

Сообщение Zanilokon 22 авг 2011, 11:26

С GUI интерфейсом проблему решил
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение Zanilokon 22 авг 2011, 15:51

Отдача готова....Но только в одну сторону,т.е куда бы не был направлен ствол она в одну сторону
Нужно отлавливать трансформ башни(ну или угол)и при опред. угле давать разные значения отдачи в разные стороны
P.S раньше тоже пробовал аддфорсе,НО он не работал т.к танк весит 100000,а я давал значения на силу около 200-300(думал это много)вот отдачи и небыло.
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение [LUkARD] 22 авг 2011, 15:57

надеюсь скрипт понятен?
Синтаксис:
Используется javascript
var Fspeed = 250.0;

var Tspeed = 250.0;

var jump = 250;

var gravitypull = 0;





function Start(){

        Screen.lockCursor = true;

}



function FixedUpdate() {

        rigidbody.AddForce (Vector3(0, gravitypull, 0));

       

        var cameraTransform = Camera.main.transform;

       

        // Forward vector relative to the camera along the x-z plane

        var forward = cameraTransform.TransformDirection(Vector3.forward);

        forward.y = 0;

        forward = forward.normalized;

       

        // Right vector relative to the camera

        // Always orthogonal to the forward vector

        var right = Vector3(forward.z, 0, -forward.x);

       

       

        if (Input.GetKey ("r")) {

                Application.LoadLevel(0);

        }

       

        if (Input.GetKey ("a")) {

               

                rigidbody.AddTorque(forward * Tspeed * Time.deltaTime);

                rigidbody.AddForce(right * -Fspeed * Time.deltaTime);

               

        }

       

       

        if (Input.GetKey("d")) {

                rigidbody.AddTorque(forward * -Tspeed * Time.deltaTime);

                rigidbody.AddForce(right * Fspeed * Time.deltaTime);

               

        }

        if (Input.GetKey("w")) {

       

                rigidbody.AddTorque(right * Tspeed * Time.deltaTime);

                rigidbody.AddForce(forward * Fspeed * Time.deltaTime);

               

        }

       

        if (Input.GetKey ("s")) {

                rigidbody.AddTorque(right * -Tspeed * Time.deltaTime);

                rigidbody.AddForce(forward * -Fspeed * Time.deltaTime);

               

        }

        if (Input.GetKeyDown ("space")) {

                rigidbody.AddForce(0,jump,0);

               

        }

       

}
Запиался на курс программирования + html!
Аватара пользователя
[LUkARD]
UNIт
 
Сообщения: 108
Зарегистрирован: 24 июн 2011, 19:37
Откуда: Оренбургская обл. г. Ясный

Re: Танковая аркада

Сообщение Zanilokon 22 авг 2011, 16:50

Да.
Не могу всё таки я матрицу настроить [curved_hands]
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение Duck the Head 23 авг 2011, 09:50

Как отслеживать поверхность в которую попадает снаряд чтобы проигрывать соответствующую анимацию взрыва?
Если снаряд попадает в воду, то создавать брызги воды, если в землю, то земли, если снаряд попадает в объект, то рисовать дыру.
Duck the Head
UNец
 
Сообщения: 15
Зарегистрирован: 06 июл 2011, 18:35

Re: Танковая аркада

Сообщение IDoNotExist 23 авг 2011, 14:02

Duck the Head писал(а):Как отслеживать поверхность в которую попадает снаряд чтобы проигрывать соответствующую анимацию взрыва?
Если снаряд попадает в воду, то создавать брызги воды, если в землю, то земли, если снаряд попадает в объект, то рисовать дыру.

Если снаряд делаете рейкастом или spherecast'ом (впринципе через них его и нужно делать, а не через всякие ригидбоди), то через RaycastHit можно получить GO в который врезался ваш рейкаст/spherecast, а уже что пихать в этот GO решайте сами, можете назначить ему Layer, например Ground или Water, или что более предпочтительно запихнуть в него скрипт, например в префаб с водой запихнуть скрипт в котором будут храниться партикли с брызгами воды, а потом при попадании снаряда запрашивать у данного скрипта его партикли.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Танковая аркада

Сообщение gnoblin 23 авг 2011, 14:04

Duck the Head писал(а):Как отслеживать поверхность в которую попадает снаряд чтобы проигрывать соответствующую анимацию взрыва?
Если снаряд попадает в воду, то создавать брызги воды, если в землю, то земли, если снаряд попадает в объект, то рисовать дыру.


по тегу, имени го или по наличию скрипта на го куда попал снаряд

дыра - декалью
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Танковая аркада

Сообщение Zanilokon 23 авг 2011, 15:14

Синтаксис:
Используется javascript
function OnCollisionEnter(collision:Collision){
if(collision.gameObject.tag == "Water"){
        //Действие при коллизии с водой
        }
}

Наверно так?
[curved_hands]
P/S Составил Скрипт засунул,и нифига не пашет (P)
Если что вот скрипт поправьте меня если что(я в JS не силён)
Синтаксис:
Используется javascript
var explosion : GameObject;
var explosionWater : GameObject;
private var tr:Transform;
tr=transform;
var vel:Vector3;
private var hit:RaycastHit;
var radius = 5.0;
var power = 10.0;
function Start () {
    var explosionPos : Vector3 = transform.position;
    var colliders : Collider[] = Physics.OverlapSphere (explosionPos, radius);
   
    for (var hit : Collider in colliders) {
        if (!hit)
            continue;
       
        if (hit.rigidbody)
            hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 3.0);
    }
}

function Boom(p:Vector3,n:Vector3)
{
        var rotation = Quaternion.FromToRotation( Vector3.up, n );
        var instantiatedExplosion : GameObject = Instantiate( explosion, p, rotation );
        var colliders:Collider[]=Physics.OverlapSphere (p,10);
        for (var c:Collider in colliders)
        {
                if (c.rigidbody!=null)
                {
                        c.rigidbody.AddExplosionForce(35000,p,10,10);
                }
        }
        tr.DetachChildren();
        Destroy( gameObject );
}


function FixedUpdate()
{
        vel-=Vector3(0,9.81,0)*Time.deltaTime;
        var newPos:Vector3=tr.position+vel*Time.deltaTime;
        if (Physics.Linecast (tr.position, newPos,hit))
        {
                Boom(hit.point,hit.normal);
        }
        else
        {
                tr.position=newPos;
        }
}
function OnCollisionEnter(collision : Collision)
{
        var contact : ContactPoint = collision.contacts[0];
        Boom(contact.point,contact.normal);
        var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );

 //if(collision.gameObject.name == "Terrain"){
 if(collision.gameObject.tag == "Terrain"){
  //Debug.Log("Hit the terrain");
  var instantiatedExplosion : GameObject = Instantiate( explosion, contact.point, rotation );
  Destroy( gameObject );
 //}else if(collision.gameObject.name == "Wall"){
 }else if(collision.gameObject.tag == "Water"){
  //Debug.Log("Water");
  var instantiatedexplosionWater : GameObject = Instantiate( explosionWater, contact.point, rotation );
  Destroy( gameObject );
  }
}
 
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение AlwaysWar 23 авг 2011, 19:09

Всем привет, все стараются сделать танки с физикой а вот я наоборот, как сделать вариант движения танка как в WoT без физики? буду очень благодарен.
Есть бабки, но барыги не берут трубки,
Ни хапки уже двадцать первые сутки
Белые тапки надели все проверенные мутки
На районе три недели нету дудки
AlwaysWar
UNец
 
Сообщения: 21
Зарегистрирован: 03 фев 2011, 13:26

Re: Танковая аркада

Сообщение Zanilokon 23 авг 2011, 19:21

Ты хочешь что б у тебя танк был приклеен к полу?(террайну)
Или наоборот?
Если Вариант 1,то я я ставил большой гравити у обьектов(есть скрипт в инете,Stiky Wheels или что то такое,но с гравити лучше вариант мне кажется)
А если же вариант номер 2,то моя физика готова только на 90%(ещё стабилизировать нужно)
вот скрипт на гравити(вешать на обьект с ригидбоди)
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections.Generic;

public class Gravity : MonoBehaviour
{  
    public static float range = 1;
   
    // Use this for initialization
    void Start () {
   
    }
   
    // Update is called once per frame
    void FixedUpdate ()
    {
        Collider[] cols  = Physics.OverlapSphere(transform.position, range);
        List <Rigidbody> rbs = new List<Rigidbody>();
       
        foreach(Collider c in cols)
        {
            Rigidbody rb = c.attachedRigidbody;
            if(rb != null && rb != rigidbody)
            {
               
                if(rbs.Contains(rb))
                {
                    continue;
                }
               
                rbs.Add(rb);
                Vector3 offset = transform.position - c.transform.position;
                rb.AddForce( offset / offset.sqrMagnitude * rigidbody.mass);//rb.AddForce( offset / offset.sqrMagnitude * rigidbody.mass*2); для большего эффекта
            }
        }
    }
}
Добавить zameran123 в Skype
Zanilokon
UNIт
 
Сообщения: 105
Зарегистрирован: 25 июл 2011, 06:28

Re: Танковая аркада

Сообщение AlwaysWar 23 авг 2011, 19:22

Zanilokon писал(а):Ты хочешь что б у тебя танк был приклеен к полу?(террайну)
Или наоборот?
Если Вариант 1,то я я ставил большой гравити у обьектов(есть скрипт в инете,Stiky Wheels или что то такое,но с гравити лучше вариант мне кажется)
А если же вариант номер 2,то моя физика готова только на 90%(ещё стабилизировать нужно)
вот скрипт на гравити(вешать на обьект с ригидбоди)
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections.Generic;

public class Gravity : MonoBehaviour
{  
    public static float range = 1;
   
    // Use this for initialization
    void Start () {
   
    }
   
    // Update is called once per frame
    void FixedUpdate ()
    {
        Collider[] cols  = Physics.OverlapSphere(transform.position, range);
        List <Rigidbody> rbs = new List<Rigidbody>();
       
        foreach(Collider c in cols)
        {
            Rigidbody rb = c.attachedRigidbody;
            if(rb != null && rb != rigidbody)
            {
               
                if(rbs.Contains(rb))
                {
                    continue;
                }
               
                rbs.Add(rb);
                Vector3 offset = transform.position - c.transform.position;
                rb.AddForce( offset / offset.sqrMagnitude * rigidbody.mass);//rb.AddForce( offset / offset.sqrMagnitude * rigidbody.mass*2); для большего эффекта
            }
        }
    }
}

Сейчас буду пробывать. (popcorn)
Есть бабки, но барыги не берут трубки,
Ни хапки уже двадцать первые сутки
Белые тапки надели все проверенные мутки
На районе три недели нету дудки
AlwaysWar
UNец
 
Сообщения: 21
Зарегистрирован: 03 фев 2011, 13:26

Пред.

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

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

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