Суббота, 28 Сентября 2024, 20:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • SunlowДата: Суббота, 02 Марта 2013, 01:30 | Сообщение # 3661
    был не раз
    Сейчас нет на сайте
    Опять всем привет, пару страниц назад мне посоветовали для поиска пути в игре со стилем перемещения аля "диабло" алгоритм a* pathfinding, во всех примерах этого алгоритма, бот перемещается за таргетом, то есть мышкой. Вопрос: у кого есть материалы или покажите мне путь истинный где искать перемещение бота, то есть персонажа, по клику мышки вместе с этим алгоритмом. Гуглил/смотрел туторы, там только как настроить поиск пути, что бы аи перемещались за таргетом, мышкой или игроком, у всех по разному, но именно поиск пути для персонажа не нашел. Думаю суть вопроса ясна, заранее спасибо.

    Или если можно, дайте скрипт, что бы таргетом АИ был клик мышки, а не игрок/капсула и тд.


    Сообщение отредактировал Sunlow - Суббота, 02 Марта 2013, 01:33
    Knight1032Дата: Суббота, 02 Марта 2013, 16:46 | Сообщение # 3662
    заслуженный участник
    Сейчас нет на сайте
    Каким образом можно сохранять предметы "заспуниные" Instantiate'ом даже после закрытия приложения?

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    ЛевшаДата: Суббота, 02 Марта 2013, 16:52 | Сообщение # 3663
    почти ветеран
    Сейчас нет на сайте
    PlayerPrefs

    X.cor.R (Prologue)
    Knight1032Дата: Суббота, 02 Марта 2013, 16:54 | Сообщение # 3664
    заслуженный участник
    Сейчас нет на сайте
    Левша, Спасибо!

    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...
    SnakeRДата: Суббота, 02 Марта 2013, 23:54 | Сообщение # 3665
    постоянный участник
    Сейчас нет на сайте
    Sunlow, после клика мышки создавать в этой точке "таргет" и туда пересчитывать путь вероисповедание мешает?

    Unity3D Developer
    Ваш лучший помощник при разработке в Unity3D
    L1feMenДата: Воскресенье, 03 Марта 2013, 01:24 | Сообщение # 3666
    был не раз
    Сейчас нет на сайте
    Racot,
    Цитата (Racot)
    и есть использование этой функции. Рекомендую почитать о массивах в умной книженции, а потом с новыми силами попробовать, я уверен если ты захочешь - у тебя выйдет

    спасибо огромное wink почитаю об этом чтобы точно разобраться и попробую снова)
    Fr0sTДата: Воскресенье, 03 Марта 2013, 13:46 | Сообщение # 3667
    постоянный участник
    Сейчас нет на сайте
    Ребят вот есть у меня перс с character controller"ом и анимированная платформа(ну типо летает) и когда я персом запрыгиваю на эту платформу (коллайдер есть на ней) вот,то перс сквозь неё проваливается.Ну если анимация не идёт то спокойно по ней бегает.Что дееелааать?



    LaushДата: Воскресенье, 03 Марта 2013, 16:53 | Сообщение # 3668
    почти ветеран
    Сейчас нет на сайте
    Как сделать,что бы курсор был постоянно в центре монитора?

    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    granizaДата: Воскресенье, 03 Марта 2013, 18:24 | Сообщение # 3669
    GraNiza-DeveLoper
    Сейчас нет на сайте
    Почему не работает скрипт? Пишет Unknown identifier: 'hitRotation'
    Код
    var Range : float = 1000;
    var Force : float = 1000;
    var Clips : int = 20;
    var BulletPerClip : int = 30;
    var ReloadTime : float = 3.3;
    var Damage : int = 10;
    var BulletsLeft : int = 0;
    var ShootTimer : float = 0;
    var ShootCooler : float = 0.9;
    public var ShootAudio : AudioClip;
    public var ReloadAudio : AudioClip;
    var speed : float;
    var HitParticles : ParticleEmitter;
    var muzzleFlash : ParticleEmitter;
    var muzzleCooler : float = 0.9;
    var muzzleFlashTimer : float = 0;
    var light1 : GameObject;
    var light2 : GameObject;
    var light3 : GameObject;
    var MuzzleSpeed : int = 200000;
    var KeyTimer : float = 0;
    var keyColler : float = 1;
    var Decals : GameObject;
    var DecalDis : float = 0.01;

    function Start (){

        BulletsLeft = BulletPerClip;
         
        muzzleFlash.emit = false;
         
        HitParticles.emit = false;

    }

    function Update () {

        if(KeyTimer > 0){
         
        KeyTimer -= Time.deltaTime;
         
        }

        if( KeyTimer < 0) {
         
        KeyTimer = 0;
         
        }

        if(muzzleFlashTimer > 0) {
         
        muzzleFlashTimer -= Time.deltaTime;
         
        MuzzleFlashShow();
         
        }

        if(muzzleFlashTimer < 0) {
         
        muzzleFlashTimer = 0;
         
         
        }

        if(ShootTimer > 0){
         
        ShootTimer -= Time.deltaTime;
        
        }

        if(ShootTimer < 0){
         
        ShootTimer = 0;
         
        }

        if(KeyTimer == 0){
        
        if(Input.GetMouseButton(0) && BulletsLeft) {
         
        if(ShootTimer == 0){
        
           
          PlayShootAudio();
         
         
          RayShoot();
           
          ShootTimer = ShootCooler;
          
         
    }

          if(muzzleFlashTimer == 0) {
           
          muzzleFlashTimer = muzzleCooler;
           
          MuzzleFlashShow();
           
           
           
          }
          
          }

    }
    }

    function MuzzleFlashShow() {

          if(muzzleFlashTimer > 0) {
           
             muzzleFlash.emit = false;
              
             light1.active = false;
             light2.active = false;
             light3.active = false;
              
               
          }

          if (muzzleFlashTimer == muzzleCooler) {
           
              
           
            muzzleFlash.emit = true;
              
             light1.active = true;
             light2.active = true;
             light3.active = true;
              
           
           
          }

    }

    function RayShoot () {

        var hit : RaycastHit;    
           
            GameObject.Find("m4a1").animation.Play("Shoot");
          GameObject.Find("m4a1").animation["Shoot"].speed = 1.2;

       
        var DirectionRay = transform.TransformDirection(Vector3.forward);

        Debug.DrawRay(transform.position , DirectionRay * Range , Color.blue);
        
          
        if(Physics.Raycast(transform.position , DirectionRay , hit, Range)){
       
        if(hit.rigidbody) {
         
        if(HitParticles){
         
        HitParticles.transform.position = hit.point;
        HitParticles.transform.localRotation = Quaternion.FromToRotation(Vector3.forward, hit.normal);
        HitParticles.Emit();
        }
         
         
         
         
           
          hit.rigidbody.AddForceAtPosition( DirectionRay * Force , hit.point) ;
           
          hit.collider.SendMessageUpwards("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
        }
         
        if(hit.collider.gameObject.CompareTag("Wall")){
         
           Decals.transform.position = hit.point;
            
           var decalClone = Instantiate (Decals, hit.point + (hit.normal* DecalDis), hitRotation);    
           decalClone.transform.parent = hit.transform;
            
           Destroy(decalClone, 8);
         
        }
         
         
         
         
        }

        BulletsLeft --;

        if(BulletsLeft < 0){
         
        BulletsLeft = 0;
        }
         
         if(BulletsLeft == 0){
          
         Reload();
          
          
         
        }
    }

    function Reload (){

        PlayReloadAudio();

         GameObject.Find("m4a1").animation.Play("Reload");
          
         yield WaitForSeconds (ReloadTime);
          
           if(Clips > 0){
            
             BulletsLeft = BulletPerClip;
            
           }

    }

    function PlayShootAudio(){

          audio.PlayOneShot(ShootAudio);

    }

    function PlayReloadAudio(){

          audio.PlayOneShot(ReloadAudio);

    }



    EchoITДата: Воскресенье, 03 Марта 2013, 18:39 | Сообщение # 3670
    старожил
    Сейчас нет на сайте
    graniza, нет переменной hitRotation. Попробуй этот код:
    Код
    var Range : float = 1000;
    var Force : float = 1000;
    var Clips : int = 20;
    var BulletPerClip : int = 30;
    var ReloadTime : float = 3.3;
    var Damage : int = 10;
    var BulletsLeft : int = 0;
    var ShootTimer : float = 0;
    var ShootCooler : float = 0.9;
    public var ShootAudio : AudioClip;
    public var ReloadAudio : AudioClip;
    var speed : float;
    var HitParticles : ParticleEmitter;
    var muzzleFlash : ParticleEmitter;
    var muzzleCooler : float = 0.9;
    var muzzleFlashTimer : float = 0;
    var light1 : GameObject;
    var light2 : GameObject;
    var light3 : GameObject;
    var MuzzleSpeed : int = 200000;
    var KeyTimer : float = 0;
    var keyColler : float = 1;
    var Decals : GameObject;
    var DecalDis : float = 0.01;
    var hitRotation : Quaternion;

    function Start (){

         BulletsLeft = BulletPerClip;
           
         muzzleFlash.emit = false;
           
         HitParticles.emit = false;

    }

    function Update () {

         if(KeyTimer > 0){
           
         KeyTimer -= Time.deltaTime;
           
         }

         if( KeyTimer < 0) {
           
         KeyTimer = 0;
           
         }

         if(muzzleFlashTimer > 0) {
           
         muzzleFlashTimer -= Time.deltaTime;
           
         MuzzleFlashShow();
           
         }

         if(muzzleFlashTimer < 0) {
           
         muzzleFlashTimer = 0;
           
           
         }

         if(ShootTimer > 0){
           
         ShootTimer -= Time.deltaTime;
          
         }

         if(ShootTimer < 0){
           
         ShootTimer = 0;
           
         }

         if(KeyTimer == 0){
          
         if(Input.GetMouseButton(0) && BulletsLeft) {
           
         if(ShootTimer == 0){
          
             
           PlayShootAudio();
           
           
           RayShoot();
             
           ShootTimer = ShootCooler;
            
           
    }

           if(muzzleFlashTimer == 0) {
             
           muzzleFlashTimer = muzzleCooler;
             
           MuzzleFlashShow();
             
             
             
           }
            
           }

    }
    }

    function MuzzleFlashShow() {

           if(muzzleFlashTimer > 0) {
             
              muzzleFlash.emit = false;
                
              light1.active = false;
              light2.active = false;
              light3.active = false;
                
                 
           }

           if (muzzleFlashTimer == muzzleCooler) {
             
                
             
             muzzleFlash.emit = true;
                
              light1.active = true;
              light2.active = true;
              light3.active = true;
                
             
             
           }

    }

    function RayShoot () {

         var hit : RaycastHit;     
             
             GameObject.Find("m4a1").animation.Play("Shoot");
           GameObject.Find("m4a1").animation["Shoot"].speed = 1.2;

         
         var DirectionRay = transform.TransformDirection(Vector3.forward);

         Debug.DrawRay(transform.position , DirectionRay * Range , Color.blue);
          
            
         if(Physics.Raycast(transform.position , DirectionRay , hit, Range)){
         
         if(hit.rigidbody) {
           
         if(HitParticles){
           
         HitParticles.transform.position = hit.point;
         HitParticles.transform.localRotation = Quaternion.FromToRotation(Vector3.forward, hit.normal);
         HitParticles.Emit();
         }
           
           
           
           
             
           hit.rigidbody.AddForceAtPosition( DirectionRay * Force , hit.point) ;
             
           hit.collider.SendMessageUpwards("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
         }
           
         if(hit.collider.gameObject.CompareTag("Wall")){
           
            Decals.transform.position = hit.point;
            hitRotation=Decals.transform.rotation;
            var decalClone = Instantiate (Decals, hit.point + (hit.normal* DecalDis), hitRotation);     
            decalClone.transform.parent = hit.transform;
              
            Destroy(decalClone, 8);
           
         }
           
           
           
           
         }

         BulletsLeft --;

         if(BulletsLeft < 0){
           
         BulletsLeft = 0;
         }
           
          if(BulletsLeft == 0){
            
          Reload();
            
            
           
         }
    }

    function Reload (){

         PlayReloadAudio();

          GameObject.Find("m4a1").animation.Play("Reload");
            
          yield WaitForSeconds (ReloadTime);
            
            if(Clips > 0){
              
              BulletsLeft = BulletPerClip;
              
            }

    }

    function PlayShootAudio(){

           audio.PlayOneShot(ShootAudio);

    }

    function PlayReloadAudio(){

           audio.PlayOneShot(ReloadAudio);

    }


    Не обещаю, что будет работать правильно, да и вообще что будет работать, т.к. последний раз в US писал полгода назад. biggrin


    Долгожданный анонсик: State of War
    granizaДата: Воскресенье, 03 Марта 2013, 19:29 | Сообщение # 3671
    GraNiza-DeveLoper
    Сейчас нет на сайте
    EchoIT, работает, но не совсем так, как нужно. Дело в том, что когда стреляю на стене появляется деколь, но угол не такой. Он ну как сказать горизонтально лежит, а нужно вертикально.

    ЛевшаДата: Воскресенье, 03 Марта 2013, 21:45 | Сообщение # 3672
    почти ветеран
    Сейчас нет на сайте
    Код

    if (Physics.Raycast (firePoint.position, fireDir, hit, fireDist, hitList))  {
         var newSplat : GameObject = Instantiate (splat, hit.point, Quaternion.FromToRotation(Vector3.up, hit.normal));
         newSplat.transform.parent = hit.collider.gameObject.transform;
    }


    X.cor.R (Prologue)
    Fr0sTДата: Понедельник, 04 Марта 2013, 20:30 | Сообщение # 3673
    постоянный участник
    Сейчас нет на сайте
    А как сделать чтобы от одной анимации плавно к другой переходило?



    NovatorvladДата: Вторник, 05 Марта 2013, 16:04 | Сообщение # 3674
    постоянный участник
    Сейчас нет на сайте
    Цитата (Fr0sT)
    А как сделать чтобы от одной анимации плавно к другой переходило?

    http://docs.unity3d.com/Documentation/ScriptReference/Animation.CrossFade.html


    Девбложек
    Fr0sTДата: Вторник, 05 Марта 2013, 18:41 | Сообщение # 3675
    постоянный участник
    Сейчас нет на сайте
    Novatorvlad, Спааасибооо!!

    Добавлено (05.03.2013, 18:41)
    ---------------------------------------------
    И.. вот так и не ответили...
    Ребят вот есть у меня перс с character controller"ом и анимированная платформа(ну типо летает) и когда я персом запрыгиваю на эту платформу (коллайдер есть на ней) вот,то перс сквозь неё проваливается.Ну если анимация не идёт то спокойно по ней бегает.Что дееелааать?




    KiraДата: Вторник, 05 Марта 2013, 21:07 | Сообщение # 3676
    заслуженный участник
    Сейчас нет на сайте
    Здрасте, может кто знает что мне сделать с этим : Serial exceeds maximum number of activations
    видимо юнити не знают что мы используем виндовс, или то что мы простые смертные. wacko


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    Sh_o0_terДата: Вторник, 05 Марта 2013, 21:11 | Сообщение # 3677
    PARANOIA
    Сейчас нет на сайте
    Ребята! Кто-нибудь может мне объяснить или дать ссылки на видео - как производится маппинг в юнити. Я вообще не представляю, конечно я знаю там, можно terrain создать, но это не то. Я хочу узнать, как делать коридоры, дома, там, ну как на Half-Life. А то я привык в VHE работать, там все просто biggrin
    basistДата: Вторник, 05 Марта 2013, 22:33 | Сообщение # 3678
    пациент Flight Dream Studio
    Сейчас нет на сайте
    Цитата (Sh_o0_ter)
    как делать коридоры, дома

    Делаешь в любом 3д пакете там же текстурируешь и потом экспорт в двиг. сохраняю в Fbx и в юньке все текстуры встают автоматом.
    Sh_o0_terДата: Среда, 06 Марта 2013, 14:35 | Сообщение # 3679
    PARANOIA
    Сейчас нет на сайте
    Цитата (basist)
    Делаешь в любом 3д пакете там же текстурируешь и потом экспорт в двиг. сохраняю в Fbx и в юньке все текстуры встают автоматом.

    дааааа ужжж, мутора много, но! Хотя бы моделить будет зачем учиться.
    Fr0sTДата: Среда, 06 Марта 2013, 17:11 | Сообщение # 3680
    постоянный участник
    Сейчас нет на сайте
    А как сделать чтобы объект в определенную координату не резко перемещался а двигался постепенно?



    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг