unity3d 从Unity中的变量设置玩家位置

nkoocmlb  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(209)

我需要在Start()中为玩家设置随机位置作为minecraft。
玩家已经有了脚本,但位置默认不变。
24和25字符串错误。
编码:

using UnityEngine;

public class RandomRespawn : MonoBehaviour
{
    [Header("Игрок")] // player
    public GameObject Player;

    [Header("Объявление координат")] // have position
    public int positionX;
    public int positionZ;

    [Header("Рандомные координаты")] // random position
    public int randomPosX;
    public int randomPosZ;

    private void Start()
    {
        System.Random randomPos = new System.Random();
        Vector3 positions = transform.position;

        positionX = randomPos.Next(1, 50);
        positionZ = randomPos.Next(1, 50);

        gameObject.positions.x = positionX;
        gameObject.positions.z = positionZ;
    }
}

我有错误:(25,20):错误CS1061:'GameObject'不包含'positions'的定义,而且找不到可存取的扩充方法'positions'接受型别'GameObject'的第一个参数(您是否遗漏using指示词或组件指涉?),now =(

guykilcj

guykilcj1#

要更改附加玩家游戏对象的位置,您需要更改以下内容:

gameObject.positions.x = positionX;
gameObject.positions.z = positionZ;

对此:

Player.transform.position = new Vector3(positionX, positionZ, Player.transform.position.z);
taor4pac

taor4pac2#

无法从GameObject获取position属性,需要从Transform属性获取position
而且你不能直接从float的值直接设置position.x的值,你必须创建一个新的Vector3变量,并首先设置它的值,然后你才能把这个变量的值应用到你的transform.position

相关问题