Как использовать Instantiate для появления объектов рядом с позицией игрока - PullRequest
1 голос
/ 03 апреля 2020

Я делаю 2D-платформер, где одна из основных механик - это создание платформ. Я пытался использовать Instantiate для вызова платформ рядом с плеером.

Вот мой код:

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

public class building : MonoBehaviour
{
    public GameObject rampUpPrefab;
    public GameObject kladkaPrefab;
    public Transform Player;

    void Start()
    {

    }

    private void Spawn()
    {

        if (Input.GetKeyDown(KeyCode.Q))
        {
            Instantiate(rampUpPrefab, Player.transform.position);
        }

        if (Input.GetKeyDown(KeyCode.W))
        {
            Instantiate(kladkaPrefab, Player.transform.position);
        }

    }

    private void Instantiate(GameObject kladkaPrefab, Vector3 vector3)
    {

    }

    void Update()
    {
        Spawn();
    }

}

1 Ответ

0 голосов
/ 03 апреля 2020

Привет, во-первых, я бы переименовал вашу функцию Instantiate во что-то другое, поскольку она уже существует с UnityEngine.Object.

здесь 2 базовых c способа создания префабов

private void InstantiatePrefab(GameObject prefab, Vector3 position)
    {
        //Option 1. Spawn the prefab a set position and set rotation.
        GameObject.Instantiate(prefab, position, Quaternion.identity);
        //Option 2. Spawn the prefab (at prefab position), you can then move it where you want
        GameObject instance = Instantiate<GameObject>(prefab);
        instance.transform.position = position;
    }

Они оба делают одно и то же.

...