YugGO
@YugGO

Почему в Unity, объекты «спавнится» выше другого объекта?

В моём проэкте, когда я рубаю дерево, то объект который должен "спавнится" в нём(при этом дерево исчезает) вот только оно "спавнится" намного выше объекта!
Вот скрипт Дерева
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HPwood : MonoBehaviour
{
    public float hp;
    public GameObject[] Spawn;

    private void Update()
    {
        if(hp < 0)
        {
            for(int i = 0; i < Spawn.Length; i++)
            {
                Vector3 v3 = new Vector3(transform.position.x, transform.position.y + (Spawn[i].transform.localScale.y + i), transform.position.z);
                Instantiate(Spawn[i], v3, Quaternion.identity);
            }
            Destroy(gameObject);
        }
    }
}


5c6325c2525d2933554604.png5c632665a4e94829948220.png

на всякий случий скрипт топора!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Axe : MonoBehaviour
{
    RaycastHit hit;
    public AnimationClip anim;

    private void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            if(Physics.Raycast(transform.parent.transform.position, transform.parent.transform.transform.forward, out hit, 10))
            {
                if(hit.collider.tag == "Tree")
                {
                    hit.collider.gameObject.GetComponent<HPwood>().hp -= 5;
                }
            }

        }
    }
}
  • Вопрос задан
  • 502 просмотра
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
Spawn[i].transform.localScale.y + i
вот как минимум этот момент вам не зря выделили..
вы на скэил(масштаб) УМНОЖАТЬ должны, как минимум. а не плюсовать его.

вы получается в глобальных мировых координатах, берете масштаб, как расстояние.
вот и получаете, что у вас спавнятся объекты на N + i выше)) в мировых координатах.

а потом уже второй вопрос. а почему скеил локальный ??? координаты то глобальные будут использоваться. и скеил бы тогда глобальный бы использовать. с учетом всех родителей. (хотя для префаба одно и тоже скорее всего, но все таки, для понимания,что там не совсем верно)

ну и напоследок. заранее.
у вас смотрю на дереве коллайдер. и на создаваемых ресурсах чую тоже есть коллайдер))
у вас один коллайдер из другого будет выталкиваться..если не отключите на дереве.
Destroy срабатывает не моментально и успеет физику посчитать))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы