Вторник, 27 Сентября 2022, 19:28

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Создание объектов из префаба (..)
Создание объектов из префаба
Valik_FenkoДата: Суббота, 07 Ноября 2015, 16:02 | Сообщение # 1
почетный гость
Сейчас нет на сайте
newObject = Instantiate(prefab) as GameObject;
hand1.transform.parent = newObject.transform;

Предварительно выбранный префаб - оружие.
hand1 - рука(кость).

всё это в if(Input.GetKey (KeyCode.F)) и там ещё проверка чтобы он один раз создавался.
В общем проблема в том что объект создается в 0,0 ,но он не двигается.Между этими двумя объктами какае-то размазаная линия которая становится менше когда я подхожу к 0,0 и больше когда отхожу(между рукой и оружием).Как адекватно прикрепить оружие к руке?
кое-ктоДата: Суббота, 07 Ноября 2015, 16:33 | Сообщение # 2
Сейчас нет на сайте
Valik_Fenko, Можно скрипт полностью.




Моя группа
seamanДата: Суббота, 07 Ноября 2015, 16:39 | Сообщение # 3
старожил
Сейчас нет на сайте
Зачем делать парентом руки - оружие?
Valik_FenkoДата: Суббота, 07 Ноября 2015, 16:57 | Сообщение # 4
почетный гость
Сейчас нет на сайте
а как делать то?
berilДата: Суббота, 07 Ноября 2015, 17:11 | Сообщение # 5
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Valik_Fenko ()
а как делать то?

наоборот biggrin перентом оружия - рука.....




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Valik_FenkoДата: Суббота, 07 Ноября 2015, 17:30 | Сообщение # 6
почетный гость
Сейчас нет на сайте
я нашел способ проще но возникла проблема.Можно просто использовать SetActive(false);,но вот беда SetActive(true); не работает =(.как после того как использовал SetActive(false); снова включить объект?

Добавлено (07 ноября 2015, 17:30)
---------------------------------------------
и да я пробовал поставить наоборот парентом оружие рука дочерним но не помогло,оружие слишком далеко от руки.надо ему устанавливать позицию ,а как я хз.новичек я(

berilДата: Суббота, 07 Ноября 2015, 18:04 | Сообщение # 7
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Valik_Fenko ()
парентом оружие рука дочерним

Нужно оружие сделать дочерним к руке...
Цитата Valik_Fenko ()
SetActive(false); снова включить объект?

SetActive(true) - если это не работает, ищи ошибку в логике




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
Valik_FenkoДата: Суббота, 07 Ноября 2015, 18:25 | Сообщение # 8
почетный гость
Сейчас нет на сайте
ругается на эту строчку когда кнопку нажимаю пишет :
object reference not set to an instance of an object unity

Весь код вышдяжит так:

Код
using UnityEngine;
using System.Collections;

public class Weapon : MonoBehaviour {
private GameObject weapon1;//newObject - переменная для объекта. m1 - камера v
// Use this for initialization
void Start () {

}
void Update ()
{
if(Input.GetKey (KeyCode.F))
{
weapon1 = GameObject.Find("Bita");
if(weapon1.activeSelf == true)
{
weapon1.SetActive(false);
}
else
{
weapon1.SetActive(true);
}
}
}

}

Добавлено (07 ноября 2015, 18:25)
---------------------------------------------
Всё,решил


Сообщение отредактировал Valik_Fenko - Суббота, 07 Ноября 2015, 18:18
seamanДата: Суббота, 07 Ноября 2015, 18:26 | Сообщение # 9
старожил
Сейчас нет на сайте
Не активный объект не найдет. Ищите его не при нажатии кнопки, а в старте. И запоминайте в переменной. Потом используйте ее и для включения и для отключения.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Создание объектов из префаба (..)
  • Страница 1 из 1
  • 1
Поиск:

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