il est un peu difficile à faire:
la seule façon est:
tour OFF chaque gratte-ciel vert, quand il est au « retour ».
Disons que votre monde est simplement centré sur 000
Dans ce cas, si vous pensez à ce sujet est cette simple ...
Si z>0f
, alors vous voulez le gratte-ciel vert pour être invisible . Si c'est z<0f
, vous voulez qu'il apparaisse normalement.
Puisqu'il s'agit de Unity, vous devez travailler comme un agent. Donc en fait c'est aussi simple. Faire un script (pseudocode)
Class HideMeIfAwayFromCamera
{
Update()
{
if (z > 0f) renderer.enabled = true;
else renderer.enabled = false;
}
}
C'est probablement votre solution la plus simple et la meilleure ici. En tout cas, j'essaierais ça en premier. Écoutons comment cela fonctionne pour vous. Envisagez d'essayer le point marche/arrêt un peu en avant ou en arrière du demi-plan.
Notez qu'une autre approche est. Vous avez besoin d'utiliser un shader découpe; utiliser une couche différente pour les gratte-ciels; et utilisez encore une autre couche pour tous les gratte-ciel dont la base est au-delà de l'horizon; De cette façon, vous pouvez laisser apparaître les «sommets» de tous les gratte-ciel qui sont «juste derrière» l'horizon mais cachent les bases. Cela semble vraiment trop compliqué. Je pense que le meilleur résultat sera juste d'éteindre les arrière, comme indiqué ci-dessus.
(Notez aussi que ce n'est pas « physique » Si le monde est transparent:... Vous devriez être en mesure de voir les gratte-ciel à l'arrière donc vous devriez essayer certaines choses pour voir ce qui se sent bien)
vous voulez dire les gratte-ciel verts non? En effet, vous serez en mesure de voir ceux de l'autre côté ... – Fattie
Juste une sorte de pointeur pour quiconque googler ici. Dans certains cas, vous avez besoin de 'TransparencySortMode.Orthographic' pour résoudre les problèmes de la journée. – Fattie