Суббота, 09 Ноября 2024, 03:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Выброс автомата.
igrodel500Дата: Воскресенье, 18 Ноября 2012, 12:41 | Сообщение # 1
участник
Сейчас нет на сайте
Как сделать так что бы во время нажатий кнопки G автомат выбрасывался на террейн, а при соприкосновений с ним снова вставал на тоже место.

Добавлено (18.11.2012, 12:41)
---------------------------------------------
Если вам будет интересно то вот мой код.

Code
if(Input.GetKeyDown(KeyCode.G)){
     Destroy(des);
     Instantiate(weap);
    }
Переменные:
public Transform des;
public Transform weap;


EchoITДата: Воскресенье, 18 Ноября 2012, 13:14 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote
Как сделать так что бы во время нажатий кнопки G автомат выбрасывался на террейн, а при соприкосновений с ним снова вставал на тоже место.

Эм, что?

Ты просто его отключай на G, и создавай выброшенный.


Долгожданный анонсик: State of War

Сообщение отредактировал EchoIT - Воскресенье, 18 Ноября 2012, 13:18
igrodel500Дата: Воскресенье, 18 Ноября 2012, 13:38 | Сообщение # 3
участник
Сейчас нет на сайте
А как мне его отключить?

Добавлено (18.11.2012, 13:37)
---------------------------------------------
И как создать выброшеный.

Добавлено (18.11.2012, 13:38)
---------------------------------------------
Можно сделать что то типа при нажатий G выполналось уничтожение.
Потом создать отдельный скрипт и привязать к терейну, но врядли у меня получится такое.


KiraДата: Воскресенье, 18 Ноября 2012, 13:58 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
igrodel500, зачем тот что в руках, отключаешь.
а тот что выбрасывается: создаешь инстанс и даешь ему толчок чтоб он вылетел в перед(как гильзы у оружия).


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
igrodel500Дата: Воскресенье, 18 Ноября 2012, 14:18 | Сообщение # 5
участник
Сейчас нет на сайте
Kira, да но оно будет следовать за персонажем.

StarkДата: Воскресенье, 18 Ноября 2012, 15:29 | Сообщение # 6
GCUP: Terran Inc.
Сейчас нет на сайте
Quote (igrodel500)
Kira, да но оно будет следовать за персонажем.

у тебя гилзы следуют за персонажем?

делается так: При нажатии Г, удаляешь автомат на персонаже, создаешь болванку автомата "другой обект" (вешаеш на её поведения гиль, и немного переделаваеш) = Profit!


Работаю программистом в ASTED - Разработка сайтов, разработка калькуляторов, квизов и crm

Сообщение отредактировал Stark - Воскресенье, 18 Ноября 2012, 15:29
igrodel500Дата: Воскресенье, 18 Ноября 2012, 15:59 | Сообщение # 7
участник
Сейчас нет на сайте
Stark, profit?

Добавлено (18.11.2012, 15:59)
---------------------------------------------
Я сделал так:

Code
if(Input.GetKeyDown(KeyCode.G)){
     rigidbody.AddForce(transform.forward * 20);
     Instantiate(weap);
    }

но он не отталкивается, а на месте остаётся.


KiraДата: Воскресенье, 18 Ноября 2012, 16:14 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
igrodel500, я весь код не знаю, но должен создаться сначала, клон. Потом получаем доступ к ригидбади клона, и уже потом пинаем его.

Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
igrodel500Дата: Воскресенье, 18 Ноября 2012, 16:45 | Сообщение # 9
участник
Сейчас нет на сайте
Kira, я уже сделал но теперь другой вопрос как сделать что бы при столкновений ак 47 вставал на тоже место

KiraДата: Воскресенье, 18 Ноября 2012, 16:54 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
igrodel500, при столкновении удаляешь. Кидаешь переменную что ак снова у тебя, и включаешь ак на игроке.

Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
igrodel500Дата: Воскресенье, 18 Ноября 2012, 17:16 | Сообщение # 11
участник
Сейчас нет на сайте
Kira, какую именно переменную.

aallaДата: Воскресенье, 18 Ноября 2012, 17:38 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
igrodel500, запиши изначально координаты где располагается автомат(когда он в руках), при подборе ставишь эти координаты ему обратно, понятно?
KiraДата: Воскресенье, 18 Ноября 2012, 17:47 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
igrodel500, например bool showWeapon;
Weapons[] inv; // Здесь храниться список оружия.

Когда оружие выкидываем удаляем переменную, подбираем добавляем.

Далее, у тебя должен быть к контролеру добавлен компонент, который атачит оружие к рукам.
Не нужно удалять, или добавлять объект, он сам должен работать отдельно по ссылке на оружие который определяется(inv). А ты уже уже просто управляешь переменной, есть оружие у тебя или нет.
Ты же удаляешь сам го, а должна система сама его удалить, поставить обратно как только инвентарь изменился.
копать в сторону GetComponent(), GameObject Assets


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
igrodel500Дата: Воскресенье, 18 Ноября 2012, 17:57 | Сообщение # 14
участник
Сейчас нет на сайте
Kira, люди дополните просто вот этот скрипт и вопросов ни будет.
Code

using UnityEngine;
using System.Collections;

public class Vibros : MonoBehaviour {
  public Transform _thePrefab;
   
  // Use this for initialization
  void Start () {
   
  }
   
  // Update is called once per frame
  void Update () {
   if(networkView.isMine){
   if(Input.GetKeyDown(KeyCode.G)){
     
    Destroy(gameObject);
      
    Transform prefabInstance = (Transform)Instantiate(_thePrefab, GameObject.Find("SpawnPoint").transform.position, Quaternion.identity);
     prefabInstance.rigidbody.AddForce(transform.forward * 40);
    }
     
  }
    
}

}


KiraДата: Воскресенье, 18 Ноября 2012, 18:10 | Сообщение # 15
заслуженный участник
Сейчас нет на сайте
Destroy(gameObject); // это уничтожит го на котором висит скрипт.
И что у тебя не работает? вроде все правильно. Ноя даже не доходил до этого не хватает мозгов еще с 3д и физикой возиться.


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
igrodel500Дата: Воскресенье, 18 Ноября 2012, 19:21 | Сообщение # 16
участник
Сейчас нет на сайте
Kira, а что тут служного.
Destroy(gameObject); уничтожает в руках автомат

Transform prefabInstance = (Transform)Instantiate(_thePrefab, GameObject.Find("SpawnPoint").transform.position, Quaternion.identity);
prefabInstance.rigidbody.AddForce(transform.forward * 40);
создаёт новый и отталкивает в перед.


KiraДата: Понедельник, 19 Ноября 2012, 02:44 | Сообщение # 17
заслуженный участник
Сейчас нет на сайте
igrodel500, твой подход, он не рационален и не удобен. Куда лучше сделать некий менеджер, где можно не только автомат менять и кидать.

Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
PovstalezДата: Понедельник, 19 Ноября 2012, 12:14 | Сообщение # 18
постоянный участник
Сейчас нет на сайте
О Боже... Читал коменты некоторых "знатоков" и я просто был в шоке... Зачем писать если не знаешь?
В общем напиши так:
Code

using UnityEngine;  
using System.Collections;  

public class Vibros : MonoBehaviour {  
   public Transform _thePrefab;  
     
   // Use this for initialization  
   void Start () {  
     
   }  
     
   // Update is called once per frame  
   void Update () {  
    if(networkView.isMine){  
    if(Input.GetKeyDown(KeyCode.G)){  
       
   
        
     Transform prefabInstance = (Transform)Instantiate(_thePrefab, GameObject.Find("SpawnPoint").transform.position, Quaternion.identity);  
      prefabInstance.rigidbody.AddForce(transform.forward * 40);  

     gameObject.activate = false;
     }  
       
   }  
      
}  
}



На тот что выпал вешаешь скрипт на префаб с OntriggerEnter. В нем напиши что бы искал наш Автомат (который activate = false) и делаешь ему activate=true; и только после этого удаляй тот что валяется....
NovatorvladДата: Понедельник, 19 Ноября 2012, 14:02 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Что вы его кормите то ? Развивайте в нем желание самому искать. Вы ему еще растолкнуйте весь код для его игры на уровне пестиков и тычинок, вот весело то будет !!

Девбложек
igrodel500Дата: Понедельник, 19 Ноября 2012, 18:50 | Сообщение # 20
участник
Сейчас нет на сайте
Povstalez, ооо... Забыл про gameObject.activate.

Добавлено (19.11.2012, 18:50)
---------------------------------------------
Novatorvlad, я и так понял код.


  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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