c# - 从 Unity 中的另一个脚本访问对象的位置

标签 c# unity3d

我正在制作一款既有球又有球员的游戏。到目前为止,我为球制作了一个球体,为球员制作了一个正方形(稍后会制作模型)。我给玩家附加了一个运动脚本,这样它就可以向各个方向移动,但我希望他在碰到球时能够捡起球。为此,我假设在球脚本中,在碰撞函数中,我必须将其位置更改为玩家的位置。所以我想知道:从球脚本访问玩家坐标的正确方法是什么?

最佳答案

希望我没听错。为了得到你会做的位置:

GameObject player = GameObject.Find ("Player");
Transform playerTransform = player.transform;
// get player position
Vector3 position = playerTransform.position;

但要捡起并带走球,你更应该为人 parent :

// ...
transform.parent = playerTransform;
// take care to disable physics while ball is under control of the player
rigidbody.isKinematic = true;

这样您就不必关心每次更新或固定更新时自己移动球。如果玩家稍后丢了球,只需设置球的 transform.parent = nullisKinematic = false 即可。

关于c# - 从 Unity 中的另一个脚本访问对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002634/

相关文章:

c# - 保存/加载 Unity3d

c# - 在 Unity3d 中使用 IEnumerator 与 IEnumerable 的嵌套协程

c# - URL中的@字符在iOS的Unity3D中导致错误

java - 如何使用 AndroidJavaObject.Call 将参数传递给 Java?

c# - 按下按钮后将 UI 元素动态添加到 StackPanel

c# - 如何在 razor 页面应用程序中获取 razor 页面列表?

c# - 类库中的资源好东西?

C#数字键决定三个数组操作中的哪一个

c# - Unity 中的缩放问题

ios - Unity-音频文件在iPhone和iPad上播放不佳