您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    摄影机随鼠标偏移 副对象旋转Y轴 不影响偏移轨迹
    时间:2015-04-02 10:03 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    不多说,直接贴出代码:


    using UnityEngine;
    using System.Collections;
    
    //如果需要旋转Y轴,请按要求设定父对象
    //创建父对象players(空对象), 放置摄影机 角色相关!角色移动脚本给该对象即可
    //创建子对象cameras(空对象,脚本对象), 坐标和角度 请跟players对象一致,否则旋转Y轴将影响偏移
    //camera 主摄影机,调整好坐标和角度,然后放到子对象cameras下
    //脚本功能:
    //实现摄影机跟着鼠标偏移,同时能够旋转players对象Y轴,并且不会打乱摄影机的偏移轨迹
    
    public class cameras : MonoBehaviour 
    {
        //public float Speed = 0.02f;
        public float pointX;
        public float pointY;
        public float mouseX;
        public float mouseY;
        public float mouBak;
        public float width;
        public float height;
    
        void Update()
        {
            width = Screen.width;
            height = Screen.height;mouBak = Input.mousePosition.x;
            if (mouBak > width)
            mouBak = width;
            if (mouBak < 0)
            mouBak = 0;
            mouBak -= width/2;
            mouseY = Input.mousePosition.y;
            if (mouseY > height)
            mouseY = height;
            if (mouseY < 0)
            mouseY = 0;
            mouseY -= height/2;
            mouseX = mouseY/width;
            mouseX = 1 - mouseX * mouseX;
            mouseX = mouseX * mouBak;
            mouBak = mouBak/height;
            mouBak = 1 - mouBak * mouBak;
            mouseY = mouseY * mouBak;
            if (mouseX != 0)
            {
                transform.Translate((mouseX-pointX)*0.008f, 0, 0);
                pointX = mouseX;
            }
            if (mouseY != 0)
            {
                transform.Translate(0, 0,(mouseY-pointY)*0.01f);
                pointY = mouseY;
            }
        }
    }


    赶快测试下吧。。。


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家