Пятница, 22 Ноября 2024, 16:29

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • castielblackДата: Пятница, 07 Февраля 2014, 18:17 | Сообщение # 5561
    почетный гость
    Сейчас нет на сайте
    Террейн в помощь smile

    Знания : C#, Lua, C++, Unity, Dreemchest, DirectX 11
    Выпущенные проекты : BuildAndRun, Match 3 Cubes
    AdomДата: Пятница, 07 Февраля 2014, 19:01 | Сообщение # 5562
    Печенька!
    Сейчас нет на сайте
    Он как-раз таки не подходит т.к у меня мир генерируется причем рельеф разный и скопировать его не могу будь все так просто я не писал бы.
    Вот еще вопрос я сделал примитивный урон от падения но вышла проблема в том что когда я прыгаю и приземлюсь то у меня отнимаются хп не зависимо с какой высоты я упал вот скрипт поможете исправить ?
    Код
    using UnityEngine;    
        using System.Collections;    
        using System.Collections.Generic;    

        public class FallDamage : MonoBehaviour {    
        RaycastHit uHit;    
        CharacterController uCharControler;    
        public float uHealth = 100.0f;    
        public float fallDamageCoef = 5.0f;    
        float lastVelocity = 0.0f;    
        float velocityLimit = -15.0f;    
        private bool uGUIEnable = false;    
        public AudioClip [] Hit;
        void fDEBUG (){    
        GUI.Label (new Rect (1, 1, 100, 100), "Health: " + uHealth);    
        }    

        void fGroundet () { //Функция расчета урона от падения    
        if (uCharControler.isGrounded) {    
        if (lastVelocity < velocityLimit) {    
        float damage = -lastVelocity * fallDamageCoef;    
        Damage(damage);    
        lastVelocity = 0.0f;    
        };    
        } else    
        lastVelocity = uCharControler.velocity.y;    
        }    
        float lastShot=0;    
        int i = 1;    

        void Damage(float damage) {    
        uHealth -= damage;
        GameObject.FindWithTag("Player").GetComponent<XP>().CurHealth -=damage;
        audio.PlayOneShot(Hit[Random.Range(0,Hit.Length)]);   
        }    

        Vector2 VC = Vector2.zero;    

        void DrawGUI() {    
        GUI.EndScrollView();    
        }    

        void OnGUI () {    
        #region DrawLabel    
        Ray uCastRay = new Ray (Camera.mainCamera.transform.TransformPoint (0, 0, 0.5f), Camera.mainCamera.transform.TransformDirection (new Vector3 (0, 0, 5)));    
        #endregion DrawLabel    

        fDEBUG ();    
        if(uGUIEnable == true)DrawGUI();    
        }    

        void Start () {    
        uCharControler = (CharacterController)GetComponent ("CharacterController");    
        }    

        void Update () {    
        fGroundet ();    
        }    
        }   
    RangerДата: Суббота, 08 Февраля 2014, 21:30 | Сообщение # 5563
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    поможете исправить

    Исправить не поможем, но копать в эту сторону:

    =========================
    Collision.relativeVelocity
    Vector3 relativeVelocity;
    Description
    The relative linear velocity of the two colliding objects (Read Only).
    =============================
    простыми словам при коллизии с землей смотри relativeVelocity. исходя из нее отнимай хп


    AdomДата: Воскресенье, 09 Февраля 2014, 13:32 | Сообщение # 5564
    Печенька!
    Сейчас нет на сайте
    Все таки решился делать рандомное оружие так-вот появилась проблема вот скрипт.
    Код
    using UnityEngine;
    using System.Collections;

    public class RandomWeapon : MonoBehaviour {
    public Transform a;
    public Transform b;
    public Transform c;
    public Transform d;  
    public Vector3 a1;
    public Vector3 b1;
    public Vector3 c1;
    public Vector3 d1;  
    // Use this for initialization
    void Start () {
       
    }
       
    // Update is called once per frame
    void Update () {
    a.transform.position = a1;
    b.transform.position = b1;
    c.transform.position = c1;
    d.transform.position = d1;  
    }
    }


    Так вот он будет помещать части оружии в нужных местах но это работает только если все эти объекты на сцене а мне нужно что-бы они появлялись как сделать появление этих частей по ссылаясь на это public Vector3 a1; я хотел сделать через Instantiate но не знаю как помогите. happy

    Добавлено (09.02.2014, 13:26)
    ---------------------------------------------
    Хотя все уже решил.

    Добавлено (09.02.2014, 13:32)
    ---------------------------------------------
    Есть еще один вопрос есть строка

    Код
    public Transform [] A;

    И там лежат 4 объекта как сделать что-бы из этих 4 объектов один рандомно создавался на сцене ?
    МаоДзедунДата: Воскресенье, 09 Февраля 2014, 17:30 | Сообщение # 5565
    почетный гость
    Сейчас нет на сайте
    Люди расскажите пожайлуста что обозначают следующие функции
    Код

    Vector3.Normolize
    Vector3.magnitude
    Vector3.sqrMagnitude
    Vector3.Slerp  

    Буду очень благодарен, поскольку сам не могу разобраться



    Знакомая попросила переустановить Windows, взял дистрибутив Ubuntu
    Интеллигенция — самая необразованная часть общества.©Мао Дзэдун
    Кто не побывал на Великой китайской стене, тот не может считаться китайцем.©Мао Дзэдун
    NEBRДата: Воскресенье, 09 Февраля 2014, 18:35 | Сообщение # 5566
    почти ветеран
    Сейчас нет на сайте
    МаоДзедун, почитай уроки "Математика в Unity3d" от ПогКсерта, там все это есть, доступно описано

    King Size #Gamiron12
    JustYorkДата: Воскресенье, 09 Февраля 2014, 18:56 | Сообщение # 5567
    уже был
    Сейчас нет на сайте
    Всем привет.
    Что надо сделать, чтобы не проваливаться в лифт? Лифт стоит на анимации.
    NEBRДата: Воскресенье, 09 Февраля 2014, 19:40 | Сообщение # 5568
    почти ветеран
    Сейчас нет на сайте
    JustYork, на лифт повесь бокс коллайдер если это куб. Или меш коллайдер если это модель лифта

    King Size #Gamiron12
    AdomДата: Воскресенье, 09 Февраля 2014, 19:42 | Сообщение # 5569
    Печенька!
    Сейчас нет на сайте
    NEBR, Поможешь ?
    Код
    public Transform [] A;


    И там лежат 4 объекта как сделать что-бы из этих 4 объектов один рандомно создавался на сцене ?
    JustYorkДата: Воскресенье, 09 Февраля 2014, 21:00 | Сообщение # 5570
    уже был
    Сейчас нет на сайте
    NEBR, в том и дело что есть, даже 2 smile

    Добавлено (09.02.2014, 21:00)
    ---------------------------------------------
    Не знаю нормально это или нет, я повесил еще один колайдер и все стало норм. и фигня видать была из за того что слишком близко к стене был

    allodsДата: Воскресенье, 09 Февраля 2014, 23:43 | Сообщение # 5571
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    public Transform [] A;

    Тут у тебя 4 префаба?

    ObjRandom=Instantiate(A[Random.Range(0,4)],transform.position,transform.rotation);
    castielblackДата: Воскресенье, 09 Февраля 2014, 23:51 | Сообщение # 5572
    почетный гость
    Сейчас нет на сайте
    Цитата allods ()
    Цитата Adom ()
    Код
    public Transform [] A;


    Тут у тебя 4 префаба?

    ObjRandom=Instantiate(A[Random.Range(0,4)],transform.position,transform.rotation);

    Не важно smile
    ObjRandom=Instantiate(A[Random.Range(0,A.Length)],transform.position,transform.rotation);


    Знания : C#, Lua, C++, Unity, Dreemchest, DirectX 11
    Выпущенные проекты : BuildAndRun, Match 3 Cubes
    squakoonДата: Вторник, 11 Февраля 2014, 19:23 | Сообщение # 5573
    был не раз
    Сейчас нет на сайте
    кто-нибудь знает, можно ли в юнити реализовать поддержку нескольких мониторов так, чтобы на каждом мониторе была картинка с определенной камеры?
    AhmadДата: Вторник, 11 Февраля 2014, 21:34 | Сообщение # 5574
    частый гость
    Сейчас нет на сайте
    Посмотрите код пожалуйста.Не пойму в чем дело(
    Код

    #pragma strict
    var ranDom: int;

    function Start () {

    }

    function Update () {
    if(Input.GetButtonDown("Fire1"))
    {
    ranDom = Random.Range(0.6 , 100.0);
    Debug.Log(ranDom);
    }
    }

    У меня выдает ошибку
    Код
    Assets/Project files/Scripts/Random.js(11,14): BCE0019: 'Range' is not a member of 'Random'.

    Что делать?Почему?
    NEBRДата: Вторник, 11 Февраля 2014, 22:29 | Сообщение # 5575
    почти ветеран
    Сейчас нет на сайте
    Ahmad, рандом сделай целыми числами, у тебя переменная ranDom - интовая. А в функции рандома - числа с плавающей точкой

    King Size #Gamiron12
    RangerДата: Среда, 12 Февраля 2014, 05:41 | Сообщение # 5576
    почти ветеран
    Сейчас нет на сайте
    Цитата Ahmad ()
    ranDom = Random.Range(0.6 , 100.0);

    букафку "f" в аргументы добавь.. Random.Range(0.6f , 100f)




    Сообщение отредактировал Ranger - Среда, 12 Февраля 2014, 05:53
    error111Дата: Среда, 12 Февраля 2014, 07:16 | Сообщение # 5577
    заслуженный участник
    Сейчас нет на сайте
    Цитата Ranger ()
    букафку "f" в аргументы добавь.. Random.Range(0.6f , 100f)


    Нафига? Этоже джаваСкрипт, а не шарп.


    [Shmup/RPG] Fantasy Shmup!
    seamanДата: Среда, 12 Февраля 2014, 08:35 | Сообщение # 5578
    старожил
    Сейчас нет на сайте
    Цитата
    'Range' is not a member of 'Random'.

    Не спец в JS, но имхо нужно явно указать, что требуется использовать Юнитивский рендом. Что-то типа:
    Код
    ranDom = UnityEngine.Random.Range(0.6 , 100.0);

    Для C# это 100% нужно делать.


    Сообщение отредактировал seaman - Среда, 12 Февраля 2014, 08:36
    LennyOsДата: Среда, 12 Февраля 2014, 11:17 | Сообщение # 5579
    был не раз
    Сейчас нет на сайте
    Здравствуйте, такая проблема. В своей игре я сделал меню, компилирую в exe файл и запускаю, все кнопки работают, но когда нажимаю new game игра зависает. А если я ее нажимаю в самом unity, то все работает и уровень загружается. Что делать?! Меню и уровень разные сцены.
    NEBRДата: Среда, 12 Февраля 2014, 11:50 | Сообщение # 5580
    почти ветеран
    Сейчас нет на сайте
    Цитата LennyOs ()
    Здравствуйте, такая проблема. В своей игре я сделал меню, компилирую в exe файл и запускаю, все кнопки работают, но когда нажимаю new game игра зависает. А если я ее нажимаю в самом unity, то все работает и уровень загружается. Что делать?! Меню и уровень разные сцены.

    может в bildSetting не добавил все сцены? Хотя в редакторе она тогда тоже не должна запускатся по идее...
    Надо тебе пересмотреть код второй сцены, в Awake и Start возможно накосячил... Вторая сцена сильно нагружена в плане ресурсов?


    King Size #Gamiron12
    Поиск:

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