c# - 相对于另一个游戏对象的位置、宽度和长度产生游戏对象?
问题描述
我目前正在使用 C# 在 Unity 中开发游戏,但遇到了一个小问题。
我需要产生一个gameobjects
相对于Spawnposition
另一个游戏对象的长度和长度的特定值。
现在我认为这bounds.size
将是在这种情况下使用的最佳功能。
如下所示,我首先声明了在我的 start 方法中使用它的变量:
public void Start()
{
GameObject PointBar = (GameObject) Resources.Load("PointBar Horizontal");
PointBarVectorLength = PointBar.GetComponent<BoxCollider2D>().bounds.size.x;
PointBarVectorConv = Camera.main.WorldToViewportPoint(new Vector2(PointBarVectorLength, 0f));
}
但是,有gameobjects
问题的在开始调用时是不活动的,因此我认为调用时不会返回任何值bounds.size
。
有谁知道我如何访问bounds.size
或等效的非活动gameobject
或我在这里缺少其他东西?
解决方案
我通过使用 GetComponent().bounds.size.x 解决了这个问题;而不是 BoxCollider。当游戏对象不活动时,可以访问此组件。
推荐阅读
- python - 呼叫转发循环而不是重定向
- mysql - 如何使用 perl 在 windows V10 上访问 mysql V8?
- c++ - 如果成员函数同时出现内联和非内联,编译器会做什么
- kotlin - Kotlin - 当使用 .. 创建范围或它如何执行比较时会发生什么?
- json - 如何解决这个 JQ 字符串连接问题?
- python - 如何在完全不同的函数中使用函数的返回值
- swift - 如何在两个视图控制器的两个特定实例之间来回移动,而不必每次都传递数据
- java - 我的 grails 项目使用 domain.save(flush:true).save() 面临错误“TransactionRequiredException:no transaction”,它可以保存但正在更新
- python - QPainter 混合颜色
- c# - 非泛型类型“IdentityUser”不能与类型参数一起使用