Переведите пожалуйста с Js На C# [РЕШЕНО]

Программирование на Юнити.

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 01 авг 2010, 14:42

Zaicheg писал(а):
IIIVSIII писал(а):Как зделать чтобы он всегда летел прямо относительно конкретного обьекта(того с которого он вылитает) ?

Transform.TransformDirection

^:)^ ^:)^ Спасибо ... это я уж и сам должен был дагадатсо .....
А по этому вопросу неподскажете ?
как можно изменить позицию создания нового объекта ? НУ скажем чобы объект создавался не поцентру объекта а скараю или или вообще где-то сбоку :-??
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Grin 01 авг 2010, 15:15

В Instantiate второй параметр отвечает за координаты инстанцируемого объекта.
Grin
UNец
 
Сообщения: 34
Зарегистрирован: 12 июл 2010, 04:45
Откуда: Россия, г. Челябинск
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 01 авг 2010, 15:33

Grin писал(а):В Instantiate второй параметр отвечает за координаты инстанцируемого объекта.

Ну это я понял ... а как их изменить ?
GameObject Gilze = Instantiate(Gilza, transform.position(5,5,5), new Quaternion(90,10,10,50)) as GameObject;
ПРобывал так и еще разными способами но ничё неполучилось (((
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Grin 01 авг 2010, 16:05

Не transform.position(5,5,5), а через Vector3 http://unity3d.com/support/documentatio ... ctor3.html.
Grin
UNец
 
Сообщения: 34
Зарегистрирован: 12 июл 2010, 04:45
Откуда: Россия, г. Челябинск
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 01 авг 2010, 18:07

Grin писал(а):Не transform.position(5,5,5), а через Vector3 http://unity3d.com/support/documentatio ... ctor3.html.

ПРобывал ...
GameObject Gilze = Instantiate(Gilza, transform.position=(new Vector3(2,0,0)), new Quaternion(90,10,10,50)) as GameObject;
Так уежает объект в котором находися скрипт .. а подругому как написать незнаю ((((
Еще пробывал отак ...
GameObject Gilze = Instantiate(Gilza, transform.position, new Quaternion(90,10,10,50)) as GameObject;
Gilze.transform.position=(new Vector3(0,0,0));
Появляются в 0,0,0 пробывал писать localPosition тожесамое ... :-??
Я еще неочень много [unity 3D] пользуюсь, туториалы попрохидил некоторые ... Смотрел в них нет такого ... ТА еще и на (c#) вообще туториалов почти нету .. а оно иногда отличается ... ДА и справка ток на (js) если ошибаюсь то поправте меня ... и киньте где можно глянуть на (c#)
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Avatarchik 01 авг 2010, 21:17

Вот так-то :D
GameObject Gilze = (GameObject)Instantiate(Gilza, new Vector3(2,0,0), new Quaternion(90,10,10,50));
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 01 авг 2010, 21:59

Avatarchik писал(а):Вот так-то :D
GameObject Gilze = (GameObject)Instantiate(Gilza, new Vector3(2,0,0), new Quaternion(90,10,10,50));

Появляется всёравно в позиции (0,0,0) по глобальным координатам .. (((( ну тоисть скраю карты .. (( :-??

От весь когд функции мош я чё намутил ... [curved_hands]
Код: Выделить всё
void Gilza_st()
   {
           GameObject Gilze = (GameObject)Instantiate(Gilza, new Vector3(0,0,0), new Quaternion(90,10,10,50));
           Rigidbody missileRBody = Gilze.GetComponent<Rigidbody>();
           missileRBody.velocity =    transform.TransformDirection (new Vector3(2,0,0));
   }
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Avatarchik 01 авг 2010, 23:57

Ну БЛИН!!!!!!!! X(
А ты какие координаты указал?
GameObject Gilze = (GameObject)Instantiate(Gilza, new Vector3(0,0,0), new Quaternion(90,10,10,50));

new Vector3(0,0,0) - это позиция в которой объект создается(ты и указал позицию 0,0,0), пишешь так new Vector3(2,0,0) объект будет смещен по оси х на 2 единицы и тд...
Что тебе вообще надо то получить?
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 02 авг 2010, 12:50

Avatarchik писал(а):Ну БЛИН!!!!!!!! X(
А ты какие координаты указал?
GameObject Gilze = (GameObject)Instantiate(Gilza, new Vector3(0,0,0), new Quaternion(90,10,10,50));

new Vector3(0,0,0) - это позиция в которой объект создается(ты и указал позицию 0,0,0), пишешь так new Vector3(2,0,0) объект будет смещен по оси х на 2 единицы и тд...
Что тебе вообще надо то получить?

Вообще у меня гильза вылетает ... ну и какбы я хотел просто звинуть её чучуть в сторону .. По локальным координатам .. ~x( Я понимаю что значит new Vector3(0,0,0) ... Просто хочу сместить этот обьект по отношению к обьекту в котором находится скрипт )))))))))))))) :D
а при позиции (0,0,0) получается что объект должен создаватся тамже и никуда нездвигатся ..при позиции (1,0,0) сдвинутся по оси х на 1 вперёд по локальным координатам )))
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Zaicheg 02 авг 2010, 22:07

IIIVSIII, я могу ответить на Ваш вопрос. Но у меня есть условие — сформулируйте этот вопрос по-человечески.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 03 авг 2010, 00:40

Zaicheg писал(а):IIIVSIII, я могу ответить на Ваш вопрос. Но у меня есть условие — сформулируйте этот вопрос по-человечески.

Код: Выделить всё
using UnityEngine;
using System.Collections;
public class testik : MonoBehaviour {
public GameObject Gilza;
   void Start () {
   }
   void Update()
   {
      if (Input.GetKeyDown(KeyCode.E))
      {
         Gilza_st();
      }
   }
      void Gilza_st()
   {
           GameObject Gilze = (GameObject)Instantiate(Gilza,transform.position, new Quaternion(90,10,10,50));
           Rigidbody missileRBody = Gilze.GetComponent<Rigidbody>();
           missileRBody.velocity =    transform.TransformDirection (new Vector3(2,0,0));
   }
}

Как изменить данный скрипт чтобы объект Gilza копировался и создавался не в тех же координатах что и объект в котором находится данный скрипт ... А сдвинуть создаваемый объект Gilze по оси Х на 1 метр , при этом создаваемый объект Gilze всегда находился-бы в одной точке (тоисть при повороте объекта со скриптом объект Gilze создавался всегда в одной и тойже точке по отношению к объекту в котором находится скрипт)
:-? блин я даже незнаю как это можно еще сформулировать ... ~x( Если опять нетак то говорите я буду подругому писать ))) :-B может когда-то научусь )))


Вообщем попростому.. создается пуля и гильза в одном скрипте , соотвецтвенно скрипт находится на ГО, Сама пуля создается в той позиции что нада(накрайняк можно перетащить ГО куда нада) но гильза при этом создаётся там же где и пуля как изменить координаты создаваемой гильзы ?
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Zaicheg 03 авг 2010, 08:48

IIIVSIII писал(а):Вообщем попростому.. создается пуля и гильза в одном скрипте , соотвецтвенно скрипт находится на ГО, Сама пуля создается в той позиции что нада(накрайняк можно перетащить ГО куда нада) но гильза при этом создаётся там же где и пуля как изменить координаты создаваемой гильзы ?

Vector3 positionPula = new Vector3(3, 4, 5);
GameObject pula = Instantiate(prefabPula, positionPula, transform.rotation) as GameObject;
GameObject gilza = Instantiate(prefabGilza, positionPula, transform.rotation) as GameObject;
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 03 авг 2010, 13:52

Наверное я объяснять неумею ... @-) Ток небейте меня сильно за это ))) :ympray:
Вообщем я сделал пример как получилось ... РАботает как надо .. НО, У меня используется 2 ГО для того чтобы пуля создавалась в одном ГО а гильза создавалась в позиции другого ГО
Можно ли улучшийть мой скрипт ? чтобы это всё было в одно скрипте ... (Если можно так сказать то оптимизировать)
Mgilza Это второй ГО ... который находится на том месте где должна создаватся гильза....(естественно Mgilza является дочерним к оружию и перемещается вместе сним )
сам скрипт находится в первом ГО

Vector3 positionPula = new Vector3(3, 4, 5); Если просто писать таким образом то объект создается по глобальным координатам ...
поэтому я перед тем как присвоить координаты таким образом, снял их с Mgilza(второго ГО)

new Vector3(transform.position.x,transform.position.y,transform.position.z)
в таком случае объект смещается как нужно но при повороте получается фигня .обьект скажем сдвинут по X y на +1 но при повороте в игре на 180 градусов объект становится сдвинутым уже на на x-1. (просто незнаю как это объяснить)
Код: Выделить всё
using UnityEngine;
using System.Collections;
public class testik : MonoBehaviour {
public GameObject Gilza;
public GameObject Pulya;
   public float X;
   public float Y;
   public float Z;
   public GameObject Mgilza;
   void Start () {
   }
   void Update()
   {
      if (Input.GetKeyDown(KeyCode.E))
      {
         Gilza_st();
        Pulya_st();
      }
   }
   
   void Gilza_st()
   {
         X=Mgilza.transform.position.x;
         Y=Mgilza.transform.position.y;
         Z=Mgilza.transform.position.z;
         Vector3 positionGilza = new Vector3(X, Y, Z);
           GameObject Gilze = (GameObject)Instantiate(Gilza,positionGilza, new Quaternion(90,10,10,50));
           Rigidbody GilzeRBody = Gilze.GetComponent<Rigidbody>();
           GilzeRBody.velocity =    transform.TransformDirection (new Vector3(-2,0,0));
   }
   
   
      void Pulya_st()
   {
           GameObject PulyaK = (GameObject)Instantiate(Pulya,transform.position, new Quaternion(90,10,10,50));
           Rigidbody PulyaRBody = PulyaK.GetComponent<Rigidbody>();
           PulyaRBody.velocity =    transform.TransformDirection (new Vector3(0,0,30));
   }
}

Вот весь проект
http://tempfile.ru/file/1436826
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение Grin 03 авг 2010, 16:28

Может надо использовать этот метод Transform.TransformPoint со 2ым параметром Instantiate?
Grin
UNец
 
Сообщения: 34
Зарегистрирован: 12 июл 2010, 04:45
Откуда: Россия, г. Челябинск
  • ICQ

Re: Переведите пожалуйста с Js На C#

Сообщение IIIVSIII 03 авг 2010, 16:51

Grin писал(а):Может надо использовать этот метод Transform.TransformPoint со 2ым параметром Instantiate?

СПАСИБО !!!! ^:)^ ^:)^ ^:)^ ^:)^
Всё решено !!!

Код: Выделить всё
using UnityEngine;
using System.Collections;
public class testik : MonoBehaviour {
public GameObject Gilza;
public GameObject Pulya;
   public float X;
   public float Y;
   public float Z;
   void Start () {
   }
   void Update()
   {
      if (Input.GetKeyDown(KeyCode.E))
      {
         Gilza_st();
        Pulya_st();
      }
   }
   
   void Gilza_st()
   {
      
           Vector3    thePosition =  transform.TransformPoint(X, Y, Z);
           GameObject Gilze = (GameObject)Instantiate(Gilza,thePosition, new Quaternion(90,10,10,50));
           Rigidbody GilzeRBody = Gilze.GetComponent<Rigidbody>();
           GilzeRBody.velocity =    transform.TransformDirection (new Vector3(-2,0,0));
   }
   
   
      void Pulya_st()
   {
           GameObject PulyaK = (GameObject)Instantiate(Pulya,transform.position, new Quaternion(90,10,10,50));
           Rigidbody PulyaRBody = PulyaK.GetComponent<Rigidbody>();
           PulyaRBody.velocity =    transform.TransformDirection (new Vector3(0,0,30));
   }
}


Всем кто участвовал и помогал большое спасибо !!! ^:)^
Аватара пользователя
IIIVSIII
UNIт
 
Сообщения: 61
Зарегистрирован: 24 июн 2010, 07:41
Откуда: Кременчуг
  • ICQ

Пред.

Вернуться в Скрипты

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

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