Izometryczne umieszczanie budynków

Programowanie w Unity.

Izometryczne umieszczanie budynków

Postprzez Siekacz » 09 Mar 2019, 17:51

Witam.
Mam problem z umieszczeniem budynku na mapie w rzucie izometrycznym, podgląd budynku, który ma być umieszczony nieprawidłowo porusza się na ekranie (powinien jak ma to miejsce w rzucie izometrycznym) przez co budynki źle umieszczają się na scenie.
Image

Kod:
Kod: Zaznacz wszystko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlaceBuilding : MonoBehaviour
{
   public GameObject finalObject;

   Vector2 mousePos;

   private void Update()
   {
        mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        transform.position = new Vector3 (Mathf.Round(mousePos.x), Mathf.Round(mousePos.y), Mathf.Round(mousePos.y) + 0.5f);

        if (Input.GetMouseButtonDown(0))
        {
            Instantiate(finalObject, transform.position, Quaternion.identity);
        }
   }

}
Siekacz
 
Posty: 3
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time

Re: Izometryczne umieszczanie budynków

Postprzez patrykas1000 » 09 Mar 2019, 19:28

Nic dziwnego, nie sprawdzasz kolizji, musisz napisać warunek który nie pozwala umieścić obiektu jeżeli jest kolizja z już istniejącym budynkiem. Zrób jakąś tablice 2d bool która będzie zawierać informacje czy pole jest już zajęte, jeżeli tak to nie można postawić budynku. Lub po prostu sprawdzaj kolizję jakąś funkcją z klasy Physics.

https://docs.unity3d.com/ScriptReference/Physics.html
patrykas1000
 
Posty: 338
Rejestracja: 16 Sie 2013, 21:35
Has thanked: 0 time
Been thanked: 0 time

Re: Izometryczne umieszczanie budynków

Postprzez Siekacz » 09 Mar 2019, 20:27

Fakt kolizja by się przydała do uniemożliwienia budowania na istniejącym, ale po dodaniu odpowiedniej funkcji budynki umieszczają się teraz tak:
Image
ale jednak to nadal nie tak jak bym chciał by umieszczały się budynki w rzucie izometrycznym.
Siekacz
 
Posty: 3
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time

Re: Izometryczne umieszczanie budynków

Postprzez Hostur » 09 Mar 2019, 22:07

Debugowałeś swój kod, może potrzebujesz jednak puścić raycasta a nie tylko bazować na mouse position?
Obliczenie miejsca spawnu na podstawie mouse position umieszcza budynki nie na terrain czy co tam masz a na ekranie , jeśli przełączysz się na widok 3d to one pewnie są w miejscach totalnie "z dupy", zastanów się najpierw jak chcesz wybierać dla nich miejsce bo wygląda to jakbyś miał pomysł na grę, zakodził pierwszą lepszą rzecz jaka Ci przyjdzie do głowy i wrzucił ją na forum jako problem. Nie chce cię zniechęcać mam dobre intencję ale fajnie jak byś coś więcej zdebugował i coś więcej opisał.
Jaka jest korelacja tych budynków do terenu? jakieś liczby plx
Hostur
 
Posty: 685
Rejestracja: 05 Sie 2015, 07:36
Has thanked: 0 time
Been thanked: 0 time

Re: Izometryczne umieszczanie budynków

Postprzez Siekacz » 10 Mar 2019, 00:26

Chce uzyskać efekt podobny do tego jak na tym filmie: https://www.youtube.com/watch?v=vT2VHfLDq6A że przesuwam idealnie po kratkach (tylko tam jest klawiaturą a ja chce myszką przesuwać) gdzie u mnie jest tekstura już i dopasowywało się, a póki co tak nie jest.
Siekacz
 
Posty: 3
Rejestracja: 09 Mar 2019, 15:39
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Google [Bot] oraz 3 gości