[英]Is there a way to outline a GameObject through a C# script in Unity 3D?
[英]How to perfectly place a gameObject on a mesh through C# script in unity?
摘要:我有一個帶有岩石網格物體的游戲對象。 但是,網格的底部是神聖且丑陋的。 我想將其放置在看起來像小山的網格上,以使玩家無法看到游戲對象的丑陋和神聖的底部。
我有一個使用raycast放置岩石的腳本。 射線投射在網格上方。 當我向下光線投射時,我在山丘上看到一個Vector3。 我把那塊石頭放在那一點上,我可以看到它的底部! 如何避免使用C#代碼?
這是我的完整問題:
如何:旋轉和移動一個具有“網格”作為其組件的GameObject,以便它“完美地”位於另一個網格上,而不會通過Unity中的c#腳本看到GameObject的底部。
現在看起來如何
我想要達到的目標
任何幫助表示贊賞!
這是一段代碼,該代碼使用射線投射的正常值旋轉岩石網格。
法線是向量在頂點之間向外(垂直)朝向網格幾何體的方向:
https://zh.wikipedia.org/wiki/Vertex_normal#/media/File:Vertex_normals.png
如果將此腳本放置在岩石網格物體上,它將告訴岩石網格物體其向上矢量與射線投射點所在的法線相同。
using UnityEngine;
public class StickToTerrain : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit terrainHit))
{
transform.up = terrainHit.normal;
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.