creakdowndeadly
Мастер
(1079)
8 месяцев назад
Координаты твоего Ножа заданы неверно. У тебя уже сам префаб имеет координаты, то есть они будут появляться не там где надо относительно твоего родительского объекта.
Сначала попробуй сбросить координаты префаба и запустить проект.
Совет от меня: Легче знаешь как можно сделать?
Ты же хочешь на руку его приклеить? Вот решение выгодное: создаешь на руке пустой игровой объект, будем называть его "Точкой спавна", тебе в коде прописать надо, чтобы он спавнился на этой точке, неважно как - хоть дочерним объектом делай, но главное нужно у префаба координаты сбросить, так как ты сохранил префаб с координатами.
creakdowndeadlyМастер (1079)
8 месяцев назад
У тебя НОЖ не распакован на сцене! Его распаковать надо, а потом двигать! У тебя префаб на сцене отражается на оригинальный префаб в ассетах. Как распакуешь - ссылки не будет!
Вова ДенисовУченик (195)
8 месяцев назад
нет, я не знаю. Объект распаковал, но он спавнится рандомно вокруг руки, может сзади может спереди заспавниться может вообще где то в стороне или под землю проваливается и падает
using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class QuickslotInventory : MonoBehaviour
{
// Объект у которого дети являются слотами
public Transform quickslotParent;
public int currentQuickslotID = 0;
public Sprite selectedSprite;
public Sprite notSelectedSprite;
public bool gaga = false;
public Transform hand;
void Update()
{
float mw = Input.GetAxis("Mouse ScrollWheel");
// Используем колесико мышки
if (mw > 0.1)
{
// Берем предыдущий слот и меняем его картинку на обычную
quickslotParent.GetChild(currentQuickslotID).GetComponent<Image>().sprite = notSelectedSprite;
// Если крутим колесиком мышки вперед и наше число currentQuickslotID равно последнему слоту, то выбираем наш первый слот (первый слот считается нулевым)
if (currentQuickslotID >= quickslotParent.childCount - 1)
{
currentQuickslotID = 0;
}
else
{
// Прибавляем к числу currentQuickslotID единичку
currentQuickslotID++;
}
// Берем предыдущий слот и меняем его картинку на "выбранную"
quickslotParent.GetChild(currentQuickslotID).GetComponent<Image>().sprite = selectedSprite;
if (quickslotParent.GetChild(currentQuickslotID).GetComponent<Image>().sprite == selectedSprite && quickslotParent.GetChild(currentQuickslotID).GetComponent<InventorySlot>().isEmpty == false)
{
GameObject newObject = Instantiate(quickslotParent.GetChild(currentQuickslotID).GetComponent<InventorySlot>().item.item, hand.transform, false);
newObject.transform.SetParent(hand, false);
gaga = !gaga;
}
}