我用Javascript创建了一个简单的日志文件,通过这个脚本,第一个人物角色能够拾取对象并将它们移动到另一个地方。但问题是有时物体被放置在空中!例如,在这张图片中,你可以看到一个圆柱体的物体位于地面上......
那么如何调整必须放置在地面上的物体的设置呢? 我的意思是,如果用户拿起一个物体,即使他将物体放在天空中,物体也会因重力而掉落并放在地面上。
这是我添加的JS代码:
//Jimmy Vegas Unity Tutorial
//This script will allow you to pick up and move objects
var target : Transform;
function Update () {
}
function OnMouseDown() {
this.transform.position = target.position;
this.transform.parent = GameObject.Find("FPSController").transform;
this.transform.parent = GameObject.Find("FirstPersonCharacter").transform;
}
function OnMouseUp() {
this.transform.parent = GameObject.Find("FPSController").transform;
this.transform.parent = null;
}
答案 0 :(得分:0)
如果您希望GameObjects
受重力影响,可以附加Rigidbody
并启用重力。
另一个评论:您提供的代码段中包含不必要的代码。在OnMouseDown
中,this.transform.parent
的第二个分配会覆盖第一个分配,因此您可以将第一个分配出去。这同样适用于OnMouseUp
。