我正在制作2D游戏,其中玩家可以抓取并放下一些物体。我正在使用OnCollisionStay
函数来执行此操作。问题是我的玩家需要“触摸”该框才能抓住它,我认为在没有网格渲染器的情况下在他的左右两侧制作2个碰撞盒并将我的脚本放到它们上面就可以解决问题。 / p>
剧本有效,但游戏中的效果就像玩家正在触摸并用他周围的2个隐形框抓住东西。
有没有办法让隐藏的盒子通过我的游戏对象抓住它们,同时仍然导致OnCollisionStay函数被执行?
这是我的剧本:
#pragma strict
var agarrado: boolean;
var cosa : Collision;
function OnCollisionStay(other : Collision) {
if (other.transform.position.y < transform.position.y-1.5)
return;
if(Input.GetKeyUp("e")){
cosa = other;
agarrado= true;
}
}
function Update()
{
if(agarrado)
{
cosa.transform.position.x = transform.position.x;
}
}
答案 0 :(得分:0)
你可以通过勾选&#34; isTrigger&#34;来让你的两个盒子碰撞器触发器让你的对象通过它们。检查器中的盒子对撞机组件上的复选框。
然后简单地将OnCollisionStay替换为OnTriggerStay
OnCollisionStay(other: Collision)
变为
OnTriggerStay(other: Collider)