unity3d C#和Unity简单编码问题

fykwrbwg  于 2022-11-15  发布在  C#
关注(0)|答案(1)|浏览(246)

所以我正在学习Unity教程,现在我的角色可以左右移动。但是现在我试着让它前后移动,我做到了,但是我有麻烦,所以它只能在一定的范围内。比较一下我的左右代码,我不知道我做错了什么,但我相信这对更了解的人来说很简单。
感谢帮助的家伙。zRangeBackwards设置为10。(浮点,10f)左和右工作完美,向前和向后工作,但不在我试图在这里设置的边界内。
感谢你的帮助。
`

// Move left to right within the XRange boundary
        if(transform.position.x < -xRange)
        {
            transform.position = new Vector3(-xRange, transform.position.y, transform.position.z);
        }

        if (transform.position.x > xRange)
        {
            transform.position = new Vector3(xRange, transform.position.y, transform.position.z);
        }

        //Move forwards and backwards within zRangeBackwards boundary
        
        if (transform.position.z < -zRangeBackwards)
        {
            transform.position = new Vector3(-zRangeBackwards, transform.position.y, transform.position.z);
        }
       
        if (transform.position.z > zRangeBackwards)
        {
            transform.position = new Vector3(zRangeBackwards, transform.position.y, transform.position.z);
        }

`
我试着将它与我的从左到右的代码进行比较,但不确定我做错了什么。

nkoocmlb

nkoocmlb1#

我认为代码的问题在于,您尝试再次限制X轴的向前/向后方向,但您应该限制Z轴,如下所示:

//Move forwards and backwards within zRangeBackwards boundary
    
    if (transform.position.z < -zRangeBackwards)
    {
        transform.position = new Vector3(transform.position.x, transform.position.y, -zRangeBackwards);
    }
   
    if (transform.position.z > zRangeBackwards)
    {
        transform.position = new Vector3(transform.position.x, transform.position.y, zRangeBackwards);
    }

相关问题