>source

다른 개체(플레이어)가 충분히 가까울 때 내 게임(아래 그림)의 물 자체를 복제하고 복제물을 자신의 바로 옆에 놓으려면 어떻게 해야 합니까?

장면:

제 code는 다음과 같습니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Paralax : MonoBehaviour
{
//The player
public Transform player;
//The distance from the player needed to copy itself
public float distanceToSpawn= 30f;
//The object
public Transform trans;
bool alreadySpawned;
private void Update()
{
    if(!alreadySpawned)
    {
        //Getting the distance between
        float dst= Mathf.Abs(player.position.x -transform.position.x);
        if (dst < distanceToSpawn)
        {
            Transform newTrans= trans;
                newTrans.position= (transform.position -new Vector3(/* negative width of the water so it copies itself to the left*/-15.72f, 0f, 0f));
                Instantiate(gameObject, newTrans);
                alreadySpawned= true;
            }
        }
    }
}

그러나 어떤 이유에서인지 내가 장면에 배치한 물은 플레이어로부터 멀어지고 있으며 자체를 복사하지 않습니다. 아무도 나를 도울 수 있습니까?

귀하의 문제를 해결하지 않을 것입니다 (또한 저는 단일성에 익숙하지 않습니다) --하지만 제가 할 일은 2개(또는 그 이상)의 '물' 객체를 갖고 여러분과 유사한 계산을 기반으로 위치를 업데이트하는 것입니다. 했어. 할당량을 줄이는 데 도움이 될 것입니다 ...

galdin2021-11-09 06:15:12
  • 답변 # 1

    그런 것 같다.트랜스아마도 와 같았을 것입니다변환따라서 새 복제본을 자식으로 생성하기 전에 이 동일한 개체를 멀리 이동합니다.

    아마도 단순히

    var newObj= Instantiate(gameObject, transform);
    newObj.transform.position= transform.position + Vector3.left * 15.72f;
    

  • 이전 Verilog 모듈에 지연 추가
  • 다음 python : 정규식: lookahead 어설션의 마지막 일치 후 lookahead 어설션의 첫 번째 일치까지 텍스트 찾기