Пятница, 15 Ноября 2024, 14:44

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • iNikitДата: Понедельник, 11 Июня 2012, 17:41 | Сообщение # 2301
    участник
    Сейчас нет на сайте
    Ohotnik, пещеру в террейне сделать нельзя. Никак.


    Самый лучший юзер GCUP :3
    Knight1032Дата: Понедельник, 11 Июня 2012, 18:10 | Сообщение # 2302
    заслуженный участник
    Сейчас нет на сайте
    как на жабе реализовать, чтобы турель вращалась в двух плоскостях за мышью?
    Решил.
    Второй вопрос: как ограничить вращение по Z


    Да, я программист, дизайнер, сценарист,
    Я сам себе издатель и сам себе игрок...


    Сообщение отредактировал Knight1032 - Понедельник, 11 Июня 2012, 18:22
    Fr0sTДата: Понедельник, 11 Июня 2012, 18:32 | Сообщение # 2303
    постоянный участник
    Сейчас нет на сайте
    Люди помогите,написал скрипт,перс бегает(спрайт),но если нажата кнопка в сторону(чтобы он бежал) и одновременно пробел(чтобы прыгал) он не прыгает а бежит,а я хочу чтобы было держать кнопку в сторону и одновременно нажимать прыжок чтобы бежал и прыгал сразу.
    Вот скрипт на C#:
    Code
    using UnityEngine;
    using System.Collections;
    [RequireComponent(typeof(Rigidbody))]
    public class PlayerController : MonoBehaviour   
    {
       private IRagePixel ragePixel;
       public float jumpSpeed = 500.0f;
       public float playerSpeed = 5.0f;
       public bool groundet;
         
       void OnCollisionEnter(Collision floor)
       {
        if(floor.gameObject.CompareTag("floor"))
        {
         groundet = true;
        }
       }
         
       void Start()
       {
         ragePixel = GetComponent<RagePixelSprite>();
       }
       void Update()
       {
        if(Input.GetKey(KeyCode.A))
        {
         ragePixel.SetHorizontalFlip(true);
         ragePixel.PlayNamedAnimation("run",false);
         transform.Translate(new Vector3(-playerSpeed,0,0) * Time.deltaTime);
        }
        else if(Input.GetKey(KeyCode.D))
        {
         ragePixel.SetHorizontalFlip(false);
         ragePixel.PlayNamedAnimation("run",false);
         transform.Translate(new Vector3(playerSpeed,0,0) * Time.deltaTime);
        }
        else if(Input.GetKey(KeyCode.Space))
        {
         if(groundet == true)
         {
         groundet = false;
         rigidbody.AddForce(new Vector3(0,jumpSpeed,0));
         }
        }
        else
        {
         ragePixel.PlayNamedAnimation("stay",false);
        }
        if(groundet == false)
        {
         ragePixel.PlayNamedAnimation("jump",false);
        }
           
       }
    }

    Добавлено (11.06.2012, 18:32)
    ---------------------------------------------
    И ещё,как сделать чтобы если у объекта есть ригидбоди,чтобы он быстрее на землю падал?






    Сообщение отредактировал Fr0sT - Понедельник, 11 Июня 2012, 18:28
    iNikitДата: Понедельник, 11 Июня 2012, 19:15 | Сообщение # 2304
    участник
    Сейчас нет на сайте
    Fr0sT,
    1. Держи, я всего-лишь убрал else:
    Code

    using UnityEngine;  
      using System.Collections;  
      [RequireComponent(typeof(Rigidbody))]  
      public class PlayerController : MonoBehaviour    
      {  
        private IRagePixel ragePixel;  
        public float jumpSpeed = 500.0f;  
        public float playerSpeed = 5.0f;  
        public bool groundet;  
           
        void OnCollisionEnter(Collision floor)  
        {  
         if(floor.gameObject.CompareTag("floor"))  
         {  
          groundet = true;  
         }  
        }  
           
        void Start()  
        {  
          ragePixel = GetComponent<RagePixelSprite>();  
        }  
        void Update()  
        {  
         if(Input.GetKey(KeyCode.A))  
         {  
          ragePixel.SetHorizontalFlip(true);  
          ragePixel.PlayNamedAnimation("run",false);  
          transform.Translate(new Vector3(-playerSpeed,0,0) * Time.deltaTime);  
         }  
         if(Input.GetKey(KeyCode.D))  
         {  
          ragePixel.SetHorizontalFlip(false);  
          ragePixel.PlayNamedAnimation("run",false);  
          transform.Translate(new Vector3(playerSpeed,0,0) * Time.deltaTime);  
         }  
         if(Input.GetKey(KeyCode.Space))  
         {  
          if(groundet == true)  
          {  
          groundet = false;  
          rigidbody.AddForce(new Vector3(0,jumpSpeed,0));  
          }  
         }  
         else  
         {  
          ragePixel.PlayNamedAnimation("stay",false);  
         }  
         if(groundet == false)  
         {  
          ragePixel.PlayNamedAnimation("jump",false);  
         }  
             
        }  
      }


    2. Увечил массу объекта dry



    Самый лучший юзер GCUP :3
    zahaloneДата: Вторник, 12 Июня 2012, 09:56 | Сообщение # 2305
    почетный гость
    Сейчас нет на сайте
    Как сделать GUI.Button относительно 3D модели, а не экрана?

    I create and play a good game.

    Сообщение отредактировал zahalone - Вторник, 12 Июня 2012, 10:19
    lipisДата: Вторник, 12 Июня 2012, 11:08 | Сообщение # 2306
    частый гость
    Сейчас нет на сайте
    Quote (zahalone)
    Как сделать GUI.Button относительно 3D модели, а не экрана?

    Я не уверен, но пожет с позициями поиграть? wacko
    А так лучше текстурой, если тбе а модель надо)




    Сообщение отредактировал lipis - Вторник, 12 Июня 2012, 11:08
    iNikitДата: Вторник, 12 Июня 2012, 11:11 | Сообщение # 2307
    участник
    Сейчас нет на сайте
    zahalone, а не легче разве рядом с этим объектом поставить другой объект и написать скрипт кнопки через OnMouseDown()? wacko


    Самый лучший юзер GCUP :3
    JHawkДата: Вторник, 12 Июня 2012, 14:16 | Сообщение # 2308
    めゃくちゃちゃ
    Сейчас нет на сайте
    Как сделать движение по вейпоинтам?
    SarCasmДата: Вторник, 12 Июня 2012, 14:22 | Сообщение # 2309
    заслуженный участник
    Сейчас нет на сайте
    Code
    public GameObject[] wayPoints;
    public int walkStep=-1;
    public float speed;

    void Walking()
    {
           if(Vector3.Distance(transform.position,wayPoints[walkStep].transform.position)<speed)
           {
                 transform.LookAt(wayPoints[walkStep]);
           } else {
                 walkStep++;
                 if(walkStep>wayPoints.Length-1)
                       walkStep=0; // OR WTF??
           }
    }


    P.S. Как на форуме писать код, если тут нет табуляции?


    Моя игра Gamiron#11 - Тема Скачать

    Сообщение отредактировал SarCasm - Вторник, 12 Июня 2012, 14:23
    JHawkДата: Вторник, 12 Июня 2012, 15:37 | Сообщение # 2310
    めゃくちゃちゃ
    Сейчас нет на сайте
    Help me, the very big problems!!!!
    Решил я сделать билд проекта своего, но при компиляции возникла ошибка, и теперь в юнити нету русского текста! вообще ни какого текста нету, только английский. как исправить?
    SarCasmДата: Вторник, 12 Июня 2012, 16:24 | Сообщение # 2311
    заслуженный участник
    Сейчас нет на сайте
    Quote
    Решил я сделать билд проекта своего, но при компиляции возникла ошибка, и теперь в юнити нету русского текста! вообще ни какого текста нету, только английский. как исправить?

    Учи англ.(я даж не знал что в юнити есть русский). Ну или переустанови юньку


    Моя игра Gamiron#11 - Тема Скачать
    lipisДата: Вторник, 12 Июня 2012, 17:45 | Сообщение # 2312
    частый гость
    Сейчас нет на сайте
    Ты про шрифт?
    Качни с инета


    Fr0sTДата: Вторник, 12 Июня 2012, 17:57 | Сообщение # 2313
    постоянный участник
    Сейчас нет на сайте
    iNikit,
    если убрать else то анимация не будет проигрываться.Может быть создать перечисления с названиями анимаций и запихать вместо самих анимаций,а потом сделать если при условии нажата такаять кнопка то вкличается определённый член перечисления и потом к нему прибить анимацию?Попробую.




    JHawkДата: Вторник, 12 Июня 2012, 18:02 | Сообщение # 2314
    めゃくちゃちゃ
    Сейчас нет на сайте
    Fr0sT, ты хоть понял что сказал??? smile smile smile smile
    Незнаете, есть плагин какой нибудь для анимации?
    AmmokuДата: Вторник, 12 Июня 2012, 18:08 | Сообщение # 2315
    частый гость
    Сейчас нет на сайте
    Есть небольшой вопросик: как сделать плавное исчезновение объекта? Свой шейдер ваять? Или можно как-нить прозрачность объекта менять из кода в не зависимости от шедера?
    JHawkДата: Вторник, 12 Июня 2012, 18:15 | Сообщение # 2316
    めゃくちゃちゃ
    Сейчас нет на сайте
    Ammoku, сделай несколько моделей этого обьекта, на разных стадиях уничтожения, наложи их одну на другую, ну а потом уничтожай по одной smile Ну это один из трудных вариантов, я по простому никогда не хожу biggrin

    Добавлено (12.06.2012, 18:15)
    ---------------------------------------------
    Ammoku, ну а вообще вроде в Юнити есть прозрачность


    Сообщение отредактировал JHawk - Вторник, 12 Июня 2012, 18:16
    Fr0sTДата: Вторник, 12 Июня 2012, 18:18 | Сообщение # 2317
    постоянный участник
    Сейчас нет на сайте
    JHawk, я понял что сказал.Сделал это но результат тотже.Может както через GetKeyDown или GetKeyUp?
    Плагин для анимации есть pixelRage,я через него делаю.




    JHawkДата: Вторник, 12 Июня 2012, 18:22 | Сообщение # 2318
    めゃくちゃちゃ
    Сейчас нет на сайте
    Fr0sT, Можешь пож ссылочку дать, где скачать?
    Fr0sTДата: Вторник, 12 Июня 2012, 18:32 | Сообщение # 2319
    постоянный участник
    Сейчас нет на сайте
    А я разобрался со скриптом.
    Code
    void Update()
      {
       if(Input.GetKeyDown(KeyCode.Space))
       {
        if(groundet == true)
        {
        groundet = false;
        rigidbody.AddForce(new Vector3(0,jumpSpeed,0));
        }
       }
       else if(Input.GetKey(KeyCode.A))
       {
        ragePixel.SetHorizontalFlip(true);
        ragePixel.PlayNamedAnimation("run",false);
        transform.Translate(new Vector3(-playerSpeed,0,0) * Time.deltaTime);
       }
       else if(Input.GetKey(KeyCode.D))
       {
        ragePixel.SetHorizontalFlip(false);
        ragePixel.PlayNamedAnimation("run",false);
        transform.Translate(new Vector3(playerSpeed,0,0) * Time.deltaTime);
       }
       else
       {
        ragePixel.PlayNamedAnimation("stay",false);
       }
    }




    AmmokuДата: Вторник, 12 Июня 2012, 18:37 | Сообщение # 2320
    частый гость
    Сейчас нет на сайте
    Quote (JHawk)
    сделай несколько моделей этого обьекта, на разных стадиях уничтожения, наложи их одну на другую, ну а потом уничтожай по одной

    Мдэ... проще свой шейдер родить... я просто подумал, что может в юнити предусмотрели такую возможность, как плавное исчезновение или появление объектов, и для этого есть какой-то стандартный механизм...
    Поиск:

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