简体   繁体   中英

Player not moving down with gravity after transforming position - UNITY 2D

I'm making a game in which I have to transform the players position after he completes the objective, but when I transform him, he's stuck in the air on the new transform position, even though I have a Rigibody2D set on it with a gravity scale of 2. When I move him manually by dragging and releasing, he falls to the ground normally. I'm fairly new so any help would be appreciated. I can't seem to identify the problem. Here's the code,

    public GameObject player;
    public Transform nextPart;
    public Camera cam;


    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (PlayerController.canTransform)
        {
            player.transform.position = nextPart.position;
            cam.transform.position = new Vector3(nextPart.position.x, nextPart.position.y, -10);
        }

    }

Here's a picture too,

在此处输入图片说明

Your code is within the Update function. This means that so long as canTransform is true your player will be placed at that transform every frame.

You need to set that boolean back to false after moving your player or have some other check to ensure you don't move to that position more than once.

It might be better to instead have the player set to that position in a separate function and simply call it one time when you reaches that objective.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM