unity一个tag触碰另一个tag怎么写代码

unity一个tag触碰另一个tag怎么写代码,第1张

代码中为物体添加tag时,如果在编辑器中未预先设定好tag,直接gameObject.tag="xxx"会报错。

如果预先不想在编辑器中设置tag,就直接代码自动在编辑器中生成所需要添加的tag,很简单 代码如下:

/// <summary>

/// 检查tag列表中是否有tag,没有该tag添加此tag

/// </summary>

/// <param name="tag">所要设设置的tag</param>

public static void SetGameObjectTag(GameObject gameObject, string tag)

{

if (!UnityEditorInternal.InternalEditorUtility.tags.Equals(tag)) //如果tag列表中没有这个tag

{

UnityEditorInternal.InternalEditorUtility.AddTag(tag)//在tag列表中添加这个tag

}

gameObject.tag = tag

}

我正好也遇到了这个问题。

https://docs.unity3d.com/ScriptReference/GameObject-tag.html Unity3D官网中提到这么一段话:A tag can be used to identify a game object. Tags must be declared in the Tags and Layers manager before using them.

所以在使用tag之前需要在tags&layers管理器中先声明。

如下所示,

然而很不巧,我希望在程序中实现动态添加tag,上面这种方法并不能解决我的问题。

至于如何动态添加tag,代码我就不贴了,还请自行百度"unity 动态添加 tag",很多博客文章都有给出代码。

首先创建一个“立方体”与一个“粒子系统”,立方体在粒子可以碰撞到的范围内。

选择粒子系统,在属性中“Tag”中选择“Add Tag”添加一个“aa”。

勾选“shape”,其中的shape设置为“Box”。

勾选“Collision”,选择“Word”,勾选“Send Collision Message”。

创建脚本,添加“OnParticleCollision”方法,通过aa这个tag判断粒子碰撞。

把脚本放在立方体上。

现在ctrl+p运行游戏,我们发现console中会显示我们设置的碰撞提示,这就表示粒子系统粒子碰撞检测成功了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7979893.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存