441568140
新手
新手
  • UID4394
  • 粉丝0
  • 关注1
  • 发帖数5
阅读:336回复:1

如何使用两个按钮来控制模型的放大或缩小?

楼主#
更多 发布于:2017-10-16 01:06
我用的是unity + vuforia
在unity中添加了两个按钮,添加了脚本,脚本绑定在canvas中,脚本中添加了日志用来记录模型的localScale大小,在手机中测试时,通过日志能明显看到模型的localScale已发生变化,但运行界面中,模型的大小根本没有明显的变化,请问各位是为什么呢?脚本的主要内容如下:

public class UICtrl : MonoBehaviour {
    float indent = 10f;
    //public GameObject obj;
    int iBig = 0;
    int iSmall = 0;
    string path = "/sdcard/Zoom.txt";
    //Vector3 curScale;
    public void ZoomBig()
    {
        GameObject obj = GameObject.Find("ZomBear"); //模型名称
        Vector3 curScale = obj.transform.localScale;
        float x = curScale.x + indent;
        float y = curScale.y + indent;
        float z = curScale.z + indent;
        obj.transform.localScale = new Vector3(x, y, z);


        iBig++;
        string str = string.Format("{4}Big{0}, x:{1},y:{2},z:{3}",
            iBig, obj.transform.localScale.x, obj.transform.localScale.y, obj.transform.localScale.z, obj.name);
        Debug.Log(str);
        WriteLog(str);
    }


    public void ZoomSmall()
    {
        GameObject obj = GameObject.Find("ZomBear");//模型名称
        Vector3 curScale = obj.transform.localScale;
        float x = curScale.x - indent;
        float y = curScale.y - indent;
        float z = curScale.z - indent;
        obj.transform.localScale = new Vector3(x, y, z);
        
        iSmall++;
        string str = string.Format("{4}Small{0}, x:{1},y:{2},z:{3}",
            iSmall, obj.transform.localScale.x, obj.transform.localScale.y, obj.transform.localScale.z, obj.name);
        Debug.Log(str);
        WriteLog(str);


    }


    void WriteLog(string str)
    {
        using (StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default))
        {
            sw.Write(DateTime.Now + " ");            sw.WriteLine(str);
        }
    }




    // Use this for initialization
    void Start () {
        Button btnBig = GameObject.Find("btnBig").GetComponent<Button>();
        btnBig.onClick.AddListener(
            delegate() { btnBigOnClick(btnBig); }
            );


        Button btnSmall = GameObject.Find("btnSmall").GetComponent<Button>();
        btnSmall.onClick.AddListener(
            delegate () { btnSmallOnClick(btnSmall); }
            );


    }


    void btnBigOnClick(object obj)
    {
        ZoomBig();        
    }
    void btnSmallOnClick(object obj)
    {
        ZoomSmall();        
    }


    // Update is called once per frame
    void Update () {
        //obj.transform.localScale = curScale;
 }
}

欢迎分享

归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
沙发#
发布于:2017-10-16 13:48
你在手机上运行的时候,这个记录txt的路径可能是不对的,你把记录路径这块去掉测试一下。或者加上file:///试试。由于这个报错,导致没有效果。我在PC上测试是可以的。
AR学院(www.arvrschool.com),从这里感触未来!
游客

返回顶部