[英]How to distinguish between different BoxCollider in the inspector Unity
假设我有一个带有4种不同BoxColliders2D的游戏对象“玩家”
我有一个墙脚本,它是“墙”游戏对象的组成部分。
贴图脚本有4个不同的public boxcolliders2D变量,但我似乎找不到一种在检查器中的玩家游戏对象中将它们分别设置为各自的boxcollider2D的方法。
贴图脚本有4个不同的public boxcolliders2D变量,但我似乎找不到一种在检查器中的玩家游戏对象中将它们分别设置为各自的boxcollider2D的方法。
您不能从编辑器中执行此操作,但应该可以通过代码执行此操作。
通过使用GetComponents
函数从代码初始化您的4个变量,该函数返回附加到GetComponents
的组件的数组。 注意最后的“ s”。 这与GetComponent
返回一个GetComponent
函数不同。
public BoxCollider2D col1;
public BoxCollider2D col2;
public BoxCollider2D col3;
public BoxCollider2D col4;
void Awake()
{
BoxCollider2D[] colliders = GetComponents<BoxCollider2D>();
col1 = colliders[0];
col2 = colliders[1];
col3 = colliders[2];
col4 = colliders[3];
}
虽然代码版本应该可以,但是不要将多个BoxCollider2D附加到一个GameObject。 要做的是为每个想要的额外对撞机创建子GameObject,然后将BoxCollider2D组件附加到它。 这是在一个GameObject上使用多个碰撞器的推荐方法,应该可以解决您的问题。
下面是应该显示的屏幕截图:
现在,您可以将每个子Collider( BoxCollider2D 1 , BoxCollider2D 2 , BoxCollider2D 3 ) 拖到适当的public
变量名称中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.