【问题标题】:¿Is there a way to don't permanently transform my unity prefabs?¿ 有没有办法不永久改变我的统一预制件?
【发布时间】:2020-08-17 09:22:03
【问题描述】:

我有一个代码,当相机检测到二维码时,会出现一个模型。我为这些模型使用预制件,一个带有一些装饰的白色立方体。

“原始实例化”使对象看起来离二维码太远了(例如,qr 在 pos 0,0,0,一旦实例化发生,对象就会出现在 45,30,27),而且非常小。

于是我写了如下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class model_caller : MonoBehaviour
{
    // Start is called before the first frame update

    public GameObject modelo;

    public Transform place;

    private Vector3 scaleChange;

    void Start()
    {

        Instantiate(modelo, place);
        modelo.transform.position = new Vector3(0, 0, 0);
        modelo.transform.localScale = new Vector3(1, 1, 1);
    }

    // Update is called once per frame
    void Update()
    {

    }
}

这就是它在编辑器上的样子:

Editor view

现在,我第二次尝试代码,它运行没有问题,但是一旦我关闭播放模式,预制件发生巨大变化,缩放变换本身适用于预制件,从而使其基本无法使用。

为什么会这样?是不是忘记写一行代码了?

编辑:我构建了应用程序并在手机上使用它。在那里,预制件不会异常改变大小,所以问题只发生在统一编辑器中

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    看起来您在编辑器中将其缩放为 (20,20,20),在您的代码中将其缩放为 (1,1,1),因此播放时它变小了,在编辑器中它变大了,只需将右上角的编辑器中的比例更改为(1,1,1)

    【讨论】:

    • 计划就是这样!
    猜你喜欢
    • 2021-05-30
    • 1970-01-01
    • 2020-11-16
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2021-10-16
    • 2014-07-18
    相关资源
    最近更新 更多