Как изменить позицию дочернего объекта при создании (куратина)?

Здравствуйте.

Я хочу при создании дочернего игрового объекта, допустим Cube, изменить его положение относительно родителя, по вектору родителя, но пока я в тупике.

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

public class Strike : MonoBehaviour
{
    public GameObject Cube;

 public void  SetParent(GameObject Sphere)
    {
        Cube.transform.parent = Sphere.transform;
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
            StartCoroutine(instObj());

        Cube.transform.position = transform.position;
    }

    IEnumerator instObj()
    {
        yield return new WaitForSeconds(0f);
        Instantiate(Cube);
    }
}

На что меня только хватило, это
instCube = Instantiate(Cube) as GameObject;
instCube.transform.localPosition = new Vector3(0f, 25f, 0);
instCube.transform.position = transform.position;

Но это ни сколько не помогло. Он так же создаёт дочерний объект внутри родительского объекта. Даже при таком большом значении Y.

Подскажите пожалуйста. В каком направлении мне двигаться, что бы решить эту задачу. Так как опыта пока у меня мало. Что почитать, что изучить?
  • Вопрос задан
  • 4152 просмотра
Пригласить эксперта
Ответы на вопрос 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
что ж давайте попробуем разобрать
instCube.transform.localPosition = new Vector3(0f, 25f, 0);
instCube.transform.position = transform.position;


в первой строке вы сместили локальную позицию (относительно родителя, если он в этот момент есть).
потом следующей строкой вы присваиваете ГЛОБАЛЬНЫЕ координаты этому же объекту.
Вы перезатираете значения ранее установленные (возможно думая что смещение как-то дополнительно останется).
Вам надо или все время прибавлять смещение для дочернего объекта или перестать его двигать(изменять) и менять координаты/двигать родителя.

Плюс после Instantiate - не забудьте сначала родителя назначить, по умолчанию там Null и объект будет просто в корне иерархии.
Ответ написан
Ваш ответ на вопрос

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

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