gpt4 book ai didi

c# - 碰撞前显示物体标签

转载 作者:太空宇宙 更新时间:2023-11-03 23:06:36 28 4
gpt4 key购买 nike

通过这段代码,我可以在“玩家”击中物体时显示物体的标签,但是我怎样才能让标签在碰撞前出现呢?我的意思是,例如当玩家站在物体前方 3 米处时?

private bool showInfo = false;

void OnCollisionEnter(Collision col)
{

if (col.gameObject.tag == "Player")
{
showInfo = true;
}

}

void OnCollisionExit(Collision collisionInfo)
{

if (collisionInfo.gameObject.tag == "Player")
{
showInfo = false;
}
}

void OnGUI()
{

if (showInfo)
{
GUIStyle myStyle = new GUIStyle();

Font myFont = (Font)Resources.Load("Fonts/comic", typeof(Font));
myStyle.font = myFont;

myStyle.fontSize = 24;

myStyle.normal.textColor = Color.red;

GUI.Label(new Rect(10, 10, 100, 20), gameObject.tag, myStyle);
}

}

最佳答案

创建一个启用触发选项的附加碰撞器,并使其大于碰撞器(达到您想要检测预碰撞的大小)并调用 OnTriggerEnter 函数。

void OnTriggerEnter(Collision col)
{

if (col.gameObject.tag == "Player")
{
showInfo = true;
}

}

或者..您可以使用 Vector3.distance(Vector3 obj1, Vector3 obj2) 检查对象到玩家的距离的更新,如果小于 3 米,则设置 showInfo true

关于c# - 碰撞前显示物体标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002935/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com