首页 > 解决方案 > 协助游戏对象重新定位,执行

问题描述

我正在尝试制作一款与“cube surfers”具有相似堆栈机制的游戏。我创建了一个名为 stacks 的空游戏对象,并使其成为玩家的子对象。理论上,在我的项目中,当玩家与盒子碰撞时,盒子应该在玩家下方产生。但是当播放器碰撞时会发生视频 ,它将盒子移动到播放器下方但在地面内,并且盒子不会将播放器向上推,以便玩家可以站在上面。当我将堆栈游戏对象移动到播放器旁边而不是在其下方(从(0,-0.5,0)到(1,0,0)) 视频 堆栈正在工作

请帮助你的兄弟解决这个问题。他该怎么办?将它们作为子对象是坏主意吗?如果是怎么办?请指导我谢谢。

我的等级

我的代码

private void OnTriggerEnter(Collider other)
{
    if (other.gameObject.CompareTag("Pickup"))
    {
        
        Transform otherTransform = other.transform;
        Rigidbody otherRb = otherTransform.GetComponent<Rigidbody>();
        otherRb.isKinematic = true;
        other.gameObject.GetComponent<BoxCollider>().isTrigger = false;
        
        

        if (parentPickup == null)
        {
            parentPickup = otherTransform;
            parentPickup.position = stackPosition.position;
            parentPickup.parent = stackPosition;
            
        }

        else
        {
            parentPickup.position += Vector3.up * (otherTransform.localScale.y) ;
            otherTransform.position = stackPosition.position;
            otherTransform.parent = parentPickup;
            
        }
    }
}

标签: stackgameobjectrelocation

解决方案


推荐阅读