unity3d车展示_unity3d界面介绍 unity3d.com - CSDN
  • 一、Unity3D 5.0.1-示例项目“汽车游戏”的展示及开发准备

    学习之前首先给大家提供一下Unity3D 5.0.1的各操作系统的安装文件及示例项目等下载地址:

    Win版:
    32位:
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/Windows32EditorInstaller/UnitySetup32.exe
    链接:http://pan.baidu.com/s/1mgBpsLi 密码:x548

    64位:
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/Windows64EditorInstaller/UnitySetup64.exe
    链接:http://pan.baidu.com/s/1mg43INu 密码:42q9


    这次5.0.1的发布,除了要安装上述的安装包,还要安装下述资源。
    内置着色器
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/builtin_shaders.zip
    链接:http://pan.baidu.com/s/1c0hd0zu 密码:vxrn
    示例项目
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/WindowsExampleProjectInstaller/UnityExampleProjectSetup.exe
    链接:http://pan.baidu.com/s/1hqu20mC 密码:tb8j
    标准资源
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/WindowsStandardAssetsInstaller/UnityStandardAssetsSetup.exe
    链接:http://pan.baidu.com/s/1qWFkTlE 密码:vk9g
    ------------------------------------------------------------------------------------------------------
    Mac版
    安装包
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/MacEditorInstaller/Unity.pkg
    链接:http://pan.baidu.com/s/1kTildSr 密码:qhjc

    内置着色器
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/builtin_shaders.zip
    链接:http://pan.baidu.com/s/1qWQana0 密码:9m8q

    标准资源
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/MacStandardAssetsInstaller/StandardAssets.pkg
    链接:http://pan.baidu.com/s/1bnnRcuz 密码:3yfm
    示例项目
    http://netstorage.unity3d.com/unity/5a2e8fe35a68/MacExampleProjectInstaller/Examples.pkg

    ********************************************************************************************************************************************************


    首先,给大家一个学习的视频链接,全部免费的,主讲是Mark老师,个人觉得讲的还是不错的。你注册后登陆即可观看全部视频!

    链接如下:http://edu.9miao.com/course/8。课程如图:



    在我们安装好Unity3D 5.0.1之后,安装示例项目程序“UnityExampleProjectSetup.exe”即可,我们依次打开安装后的目录:Assets\SampleScenes\Scenes,之后打开Car.unity,如图所示:


    我们运行后可以看看效果,运行后可以用鼠标点击屏幕右上方的“MENU”按钮,可以看到有一些例子,主要包括:2D、人物、粒子效果、交通工具等。如图:


    一、“2D”就不解释了,如图:



    二、“Characters”-人物,这里包括:“第一人称”、“第三人称角色”、“第三人称的AI角色”(鼠标左击地面自动行走)、“滚动的球”(键盘行走控制,鼠标移动调整人物视角)。

    如图:



    三、“Particles”-粒子效果,粒子效果包中包括:“Exploision”(爆炸)、“Firecomplex”(火球)、“Firemobile”(多个火球)、“Duststorm”(沙尘暴)、“Steam”(蒸汽)、“Hose”(水管喷水)、“Fireworks”(烟花)、“Flare”(闪光点)。

    如图:




    四、“Vehicles”-交通工具,主要包括:“Car AI”(智能漫游汽车)、”Car“(汽车)、”Jet Plane“(喷气式飞机)、”Propeller Plane“(螺旋桨飞机)、”Jet Plane AI“(智能漫游喷气式飞机)、”Propeller Plane AI“(智能漫游螺旋桨飞机)。

    如图:



    我们在Project文件列表中找到”Standard Assets\Vehicles“下的Car文件夹,右键导出资源包,为我们之后制作汽车游戏做准备。提示:这里勾选掉默认的“inculd dependencies”选项,去掉依赖包。如图:
















    展开全文
  • 今天完善成了虚拟3D汽车展示项目的部分功能,虽然用的汽车模型有点粗糙,但感觉还不错,下面我就贴下源码供初学者学习! 项目展示地址:http://114.92.242.208/aspnet_client/system_web/carshow/dxw2.html,说明:...

    今天完善成了虚拟3D汽车展示项目的部分功能,虽然用的汽车模型有点粗糙,但感觉还不错,下面我就贴下源码供初学者学习!

    项目展示地址:http://114.92.242.208/aspnet_client/system_web/carshow/dxw2.html,说明:浏览器必须要安装unityplayer插件。

    项目操作说明:

    1.鼠标左击可以点击左右车门,控制它的开关,还可以点击前后盖控制打开和关闭。

    2.鼠标滚轮可以缩放,达到一个远近的效果。

    3.按住键盘s键可以显示menu,h键可以隐藏menu菜单。

    源码:

    using UnityEngine;
    using System.Collections;
    
    
    
    
    public class NewBehaviourScript : MonoBehaviour
    {
    
        public GameObject cube;
        public GameObject car;
        public GameObject light;
        Vector2 p1, p2;//用来记录鼠标的位置,以便计算旋转幅度
        Vector3 originalPosition;
        float target = 0;
        public Texture2D redbtnTexture;
    
        private bool bOpenMenu = false; //是否打开功能框
        private Rect myWindow = new Rect(10, 10, 470, 300); //功能选项框架
        public GUISkin customSkin;//自定义皮肤
        private Rect closeButton = new Rect(415, 0, 26, 22);//关闭按钮
        public Texture2D tHero;
        private Rect rHero = new Rect(0, 40, 180, 230); //人物的位置
    
        //图像框
        private Rect stateBox = new Rect(157,50,280,210);
    
        private string[] functionStr ; //功能选项数组
    
        public Texture2D redBtn;
        public Texture2D greenBtn;
        public Texture2D blueBtn;
        public Texture2D orangeBtn;
        public Texture2D whiteBtn;
        public Texture2D blackBtn;
        private Texture2D[] iBtn;
        //iBtn= new Texture2D[6]{redBtn,greenBtn,blueBtn,orangeBtn,whiteBtn,blackBtn};
    
        private Rect[] pBtn = new Rect[6];
    
        //车轮更换
        private bool selectToggleWheel = false;
        //雨刷器
        private bool selectToogleWiper = false;
        //转向灯
        private bool selectToogleLeftTurningLight = false;
        private bool selectToogleRightTurningLight = false;
        //前照灯
        private bool selectToogleFarLight = false;
        private bool selectToogleNearLight = false;
    
    
    
        private GUIContent[] guiCon = new GUIContent[4]; //接受字符串
        public Rect[] strPosition = new Rect[4];
        // 鼠标中间键
        int MouseWheelSensitivity = 5;
        int MouseZoomMin = 18;
        int MouseZoomMax = 90;
        float normalDistance = 32;
        public GameObject doorL;
    
        // Use this for initialization
        void Start()
        {
            iBtn= new Texture2D[6]{redBtn,greenBtn,blueBtn,orangeBtn,whiteBtn,blackBtn};
            originalPosition = transform.position;
            doorL = GameObject.Find("doorL");
            cube = GameObject.Find("Main Camera");
    
            for (int i=0;i<6;i++)
            {
                pBtn[i] =  new Rect(170+i*43, 65,40,30);
            }
            functionStr= new string[4]{"车轮更换","雨刷器","转向灯","前照灯"};
    
            for (int i = 0; i < 4; i++)
            {
                guiCon[i] = new GUIContent(functionStr[i]);
            }
            strPosition[0] = new Rect();
        }
    
        // Update is called once per frame
        void Update()
        {
            //如果为s键则打开弹出框
            if (Input.GetKey(KeyCode.S))
            {
                bOpenMenu = true;
            }
            else if (Input.GetKey(KeyCode.H))
            {
                bOpenMenu = false;
            }
    
            //开门
            //if (target < 20)
            //{
            //    doorL.transform.Rotate(transform.forward, 2);
            //    target = target + 1;
            //}
            
            //旋转
            if (Input.GetMouseButtonDown(0))
            {
                p1 = new Vector2(Input.mousePosition.x, Input.mousePosition.y);//鼠标右键按下时记录鼠标位置p1
            }
            if (Input.GetMouseButton(0))
            {
                p2 = new Vector2(Input.mousePosition.x, Input.mousePosition.y);//鼠标右键拖动时记录鼠标位置p2
                //下面开始旋转,仅在水平方向上进行旋转
                float dx = p2.x - p1.x;
                float dy = (float)0.1*(p2.y - p1.y);
                transform.RotateAround(car.transform.position, Vector3.up, dx * Time.deltaTime);
                //鼠标上下移动
                //transform.Translate(dy*Vector3.up * Time.deltaTime);
                light.transform.RotateAround(car.transform.position, Vector3.up, dx*Time.deltaTime);
            }
    
    
            //鼠标滚轮控制场景大小
            // 如果按住滑轮
            if (Input.GetAxis("Mouse ScrollWheel") > 0)
            {
                Debug.Log(1);
                Debug.Log(Input.GetAxis("Mouse ScrollWheel"));
               
                if (normalDistance >= MouseZoomMin && normalDistance <= MouseZoomMax)
                {
                    normalDistance -= Input.GetAxis("Mouse ScrollWheel") * MouseWheelSensitivity;
                }
    
                if (normalDistance < MouseZoomMin)
                {
                    normalDistance = MouseZoomMin;
                }
                if (normalDistance > MouseZoomMax)
                {
                    normalDistance = MouseZoomMax;
                }
               // transform.Translate(transform.forward * normalDistance);
                transform.camera.fieldOfView = normalDistance;
    
                
            }
    
            //后滚
            else if (Input.GetAxis("Mouse ScrollWheel") < 0)
            {
                Debug.Log(-1);
                if (normalDistance >= MouseZoomMin && normalDistance <= MouseZoomMax)
                {
                    normalDistance -= Input.GetAxis("Mouse ScrollWheel") * MouseWheelSensitivity;
                }
    
                if (normalDistance < MouseZoomMin)
                {
                    normalDistance = MouseZoomMin;
                }
                if (normalDistance > MouseZoomMax)
                {
                    normalDistance = MouseZoomMax;
                }
               // transform.Translate(-transform.forward * normalDistance);
                transform.camera.fieldOfView = normalDistance;
            }
    
    
            
    
            //按返回键退出程序    
            //if (Input.GetKey(KeyCode.Escape))
            //{
            //    print(1);
            //    Application.Quit();
            //}  
    		
        }
    
        void OnGUI()
        {
    
    
            GUI.skin = customSkin;//赋值个性化皮肤
    
            //弹出功能选项框
            if (bOpenMenu)
            {
                myWindow = GUI.Window(0, myWindow, DoMyWindow, "");
                //限制移动的横纵向坐标
                //myWindow.x = Mathf.Clamp((float)myWindow.x,(float)0.0,(float)Screen.width-myWindow.width);
                //myWindow.y = Mathf.Clamp((float)myWindow.y, (float)0.0, (float)Screen.height - myWindow.height);
            }
    		
    			string s = "作者:丁小未";
                GUIStyle bb = new GUIStyle();
                bb.normal.background = null;//设置背景
                bb.normal.textColor = new Color(1,0,0);//设置颜色
                bb.fontSize = 40;
                GUI.Label(new Rect(40, 20, 100, 50), s, bb);
    		
        }
    
    
        private bool flagLight1 = false; //方向灯
        private bool flagLight2 = false; //远近灯
        
        void DoMyWindow(int windowsId)
        {
            GUI.BeginGroup(new Rect(10, 10, 500, 400));
    
            GUI.Box(stateBox, "");
    //
    //
    //        //点击关闭按钮
            if (GUI.Button(closeButton,"",GUI.skin.GetStyle("ExitButton")))
            {
                bOpenMenu = false;
            }
           // GUI.DragWindow();
            GUI.DrawTexture(rHero, tHero);
    
            for (int i = 0; i < 6;i++ )
            {
                GUI.DrawTexture(pBtn[i], iBtn[i]);
            }
    
            //写文字
            //GUI.Label(new Rect(170, 100, functionStr[0].Length, 20),guiCon[0],"TextItem");
            for (int i = 0; i < 4; i++)
            {
                GUI.Label(new Rect(174,108+i*38,functionStr[i].Length,20),guiCon[i],"TextItem");
            }
    
            //车轮更换
            //绿色开状态
            if (selectToggleWheel)
            {
                //加选择框
                selectToggleWheel = GUI.Toggle(new Rect(255, 110, 15, 15), selectToggleWheel, "", "TrueCheckItem");
    
            }
            //红色关闭状态
            else
            {
                selectToggleWheel = GUI.Toggle(new Rect(255, 110, 15, 15), selectToggleWheel, "", "FalseCheckItem");
    
            }
            //雨刷器
            if (selectToogleWiper)
            {
                //加选择框
                selectToogleWiper = GUI.Toggle(new Rect(255, 148, 15, 15), selectToogleWiper, "", "TrueCheckItem");
    
            }
            //红色关闭状态
            else
            {
                selectToogleWiper = GUI.Toggle(new Rect(255, 148, 15, 15), selectToogleWiper, "", "FalseCheckItem");
    
            }
    
            //转向灯
            //左转
            if (selectToogleLeftTurningLight)
            {
                if (flagLight1&&selectToogleRightTurningLight) //右边打开
                {
                    selectToogleRightTurningLight = false; //关闭右边
                }
                //加选择框
                selectToogleLeftTurningLight = GUI.Toggle(new Rect(255, 186, 15, 15), selectToogleLeftTurningLight, "", "TrueCheckItem");
                flagLight1 = true;
            }
            //红色关闭状态
            else
            {
                selectToogleLeftTurningLight = GUI.Toggle(new Rect(255, 186, 15, 15), selectToogleLeftTurningLight, "", "FalseCheckItem");
                flagLight1 = false;
            }
            //右转
            if (selectToogleRightTurningLight)
            {
                if (flagLight1 && selectToogleLeftTurningLight) //左边打开
                {
                    selectToogleLeftTurningLight = false; //关闭右边
                }
                //加选择框
                selectToogleRightTurningLight = GUI.Toggle(new Rect(285, 186, 15, 15), selectToogleRightTurningLight, "", "TrueCheckItem");
                flagLight1 = true;
            }
            //红色关闭状态
            else
            {
                selectToogleRightTurningLight = GUI.Toggle(new Rect(285, 186, 15, 15), selectToogleRightTurningLight, "", "FalseCheckItem");
                flagLight1 = false;
            }
    
            //前照灯
            //近
            if (selectToogleNearLight)
            {
                if (flagLight2 && selectToogleFarLight) //远灯打开
                {
                    selectToogleFarLight = false; //关闭远灯
                }
                //加选择框
                selectToogleNearLight = GUI.Toggle(new Rect(255, 224, 15, 15), selectToogleNearLight, "", "TrueCheckItem");
                flagLight2 = true;
            }
            //红色关闭状态
            else
            {
                selectToogleNearLight = GUI.Toggle(new Rect(255, 224, 15, 15), selectToogleNearLight, "", "FalseCheckItem");
                flagLight2 = false;
            }
            //远
            if (selectToogleFarLight)
            {
                if (flagLight2 && selectToogleNearLight) //近灯打开
                {
                    selectToogleNearLight = false;
                }
                //加选择框
                selectToogleFarLight = GUI.Toggle(new Rect(285, 224, 15, 15), selectToogleFarLight, "", "TrueCheckItem");
                flagLight2 = true;
            }
            //红色关闭状态
            else
            {
                selectToogleFarLight = GUI.Toggle(new Rect(285, 224, 15, 15), selectToogleFarLight, "", "FalseCheckItem");
                flagLight2 = false;
            }
    
            GUI.EndGroup();
        }
    
    }
    

    门盖控制:

    private bool isOpenDoor = false;
    private bool openDoor = false;
    private bool closeDoor = false;
    
    private int target = 0;
    
    int flag = 0;
    
    Ray ray;
    RaycastHit hitobj;
    private GameObject doorl; //左门
    
    // Use this for initialization
    	void Start () {
            doorl = GameObject.Find("doorL");//左门
    		
    	}
    	
    	// Update is called once per frame
    	void Update () {
            //画出射线
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    	    if (Input.GetMouseButtonDown(0))
    	    {
                //鼠标点击车门
                if (Physics.Raycast(ray,out hitobj,1000))
                {
                    print("ddd");
                    Debug.DrawLine(ray.origin, hitobj.point);
    				//左车门
                    if (hitobj.collider.name == "doorL")
                    {
                        print("111");
                        if (flag == 0)
                        {
                            openDoor = true;
                            closeDoor = false;
                        }
                        else
                        {
                            closeDoor = true;
                            openDoor = false;
                        }
    
                        flag++;
                        flag %= 2;
                    }
    }
    		//开左门
    	    if (openDoor)
    	    {
                //开门
                if (target < 40 && !isOpenDoor)
                {
                    doorl.transform.Rotate(Vector3.forward, 1);
                    target = target + 1;
                }
                else
                {
                    isOpenDoor = true;
                }
    	    }
    	    if(closeDoor)
            {
                //关门
                if (isOpenDoor && target > 0)
                {
                    doorl.transform.Rotate(-Vector3.forward, 1);
                    target -= 1;
                }
                else
                {
                    isOpenDoor = false;
                }
            }
    }

    效果图:



    关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:858550 欢迎进行技术讨论,里面有不少大牛

    展开全文
  • 包内包含奥迪Q7模型带贴图源文件,工程演示中用到的车漆Shader ,(CarPaintShader.zip)
  • Unity学习Demo1汽车展览

    2020-07-30 23:32:28
    Unity学习Demo1汽车展览 在学习Unity 的Demo 并没有汽车用的是正方形替代的.
  • 亲测可以用。支持5.0以上~ 很好的学习资料,是想学习开发的同学的首选资料~
  • 最近在做一个unity3d汽车展示类的项目,但如果只是在前面添加一个聚光灯的话,效果没那么逼真,所以我们就要用到这么一个工具,就是Flares光晕效果,将它拖放在灯光上就会发现具有比错的效果。 效果图: Flares...

    最近在做一个unity3d汽车展示类的项目,但如果只是在前面添加一个聚光灯的话,效果没那么逼真,所以我们就要用到这么一个工具,就是Flares光晕效果,将它拖放在灯光上就会发现具有比较不错的效果。

    效果图:


    Flares插件包:http://download.csdn.net/detail/s10141303/6506225

    展开全文
  • 从去年十一月份开始转型自学Unity3D。发现对这个领域、这个方向更为喜爱。在经过两个多月的跟书自学、跟游戏实例教程练习之后,决定自己完成一款游戏,以融会贯通,让我对整体的Unity3D游戏开发有一个认识与提升。我...

            我之前一直在做C# 的Winform多媒体软件开发。从去年十一月份开始转型自学Unity3D。发现对这个领域、这个方向更为喜爱。在经过两个多月的跟书自学、跟游戏实例教程练习之后,决定自己完成一款游戏,以融会贯通,让我对整体的Unity3D游戏开发有一个认识与提升。

    我最后选择了赛车游戏,其一是这个我更为喜欢、其二对当时的我来说,我觉得这个更具挑战性、却也容易入门。

    今天我已经完成了游戏的开发,分别制作了Windows版本与Android版本

    游戏视频链接http://pan.baidu.com/s/1dEKUuY1

    游戏下载链接Android:http://pan.baidu.com/s/1dEKoyv3

         PC:    http://pan.baidu.com/s/1skHOcah;


    一.游戏组成


    我的游戏分为三个场景

    二.主界面

    主界面其实分为菜单栏场景动画导览两部分。

    1.游戏导览

    对整体地图进行了展示,并配合背景音乐达到渲染气氛的目的






    当动画摄像头进行到瀑布下时,做了一个屏幕水珠淡入淡出的处理,达到屏幕被溅上水珠的模拟场景。

    2.菜单栏

         1.设置菜单

    背景音效、游戏音效、画面质量


    2.计时模式/竞赛模式->路线选择

    3.计时模式/竞赛模式->车型选择


    三.加载场景

    进度条设计思路:汽车从最左边开到最右边,同时云彩向左边走,中间黑色轮胎旋转,进度红色数字增长
    加载完毕效果:当汽车从右边出去同时数字增长到100加载完毕


    四.游戏场景

    3秒倒计时完毕后,游戏开始
    左上角为小地图
    右上角为仪表

    1.竞赛模式

    会有1名AI对手参与竞赛,不同的赛道对应着不同的总圈数。



    比赛结束画面


    2.计时模式

    计时模式,只有玩家自己,输赢标准为是否超越历史最高成绩。以完成赛道的耗时作为评判标准




    我之后会陆续更新记录里边我认为比较重要的知识点。
    展开全文
  • Unity制作汽车展示

    2017-07-11 08:10:53
    这是一个汽车展示的应用。包含了让汽车旋转展示、更换车漆、开关车灯等操作。
  • 最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现。原本在C#中很方便地就可以完成的一个小场景,使用Unity3D的设计思想(即...
  • 最近在一个3D汽车虚拟展示的项目,将其中的汽车开门关门的脚本简单的介绍一下吧,主要的原理就是通过从摄像机发射一个到屏幕点击的位置的一个射线,然后判断这个射线是否碰到你想要碰到的位置,如果碰到则实现逻辑...
  • 目前3D手游的开发主要工具是使用Unity3D引擎,于是,如何在Unity3D的开发过程中结合入物理功能变一个需要仔细考虑的问题。 我们考察的2种物理效果实现方案:Unity3D物理引擎和Havok物理引擎。 Unity3d物理引擎介绍...
  • 致力于赛车性能算法已有多时,在确定赛车最终版本之时,做下总结。 文章还是不会非常详尽,点到为指,不想太多利用工作时间。 在制作前,必须先了解真实车辆的原理: 车辆分前轮驱动,后轮驱动和四驱动。...
  • 导入官方标准资源包Standard Assets,使用其中的Car Controller和Car User Control脚本。 注意:黄色框内即为需要拖拽入Car Control组件中的,必须要保证他们的local的轴向和位置一致。   ...
  • 做到汽车的开关门,原本我是用代码进行控制,在update函数中只要让他旋转到一定的角度就OK了,但后来发现这样实现的效果并不好,所以就决定用动画来实现开关门的效果。 操作步骤: 1.Project->Add Tab->Animation ...
  • unity3d 各大插件评测

    2018-01-30 15:00:43
    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 引言:想用Unity3D制作优秀的游戏,插件是必不可少的。工欲善其事必先利其器。本文主旨是告诉使用Unity3D引擎的同学们如何根据需求选择适当的工具...
  • Unity3d:https://unity3d.com/cn 参考百度百科:https://baike.baidu.com/item/Unity3D/3064002?fromtitle=Unity&amp;fromid=10793&amp;fr=aladdin Unity3D是由Unity Technologies开发的一个让玩家轻松创建...
  • 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步。该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章)详细介绍了Unity3D中的表面着色器...
1 2 3 4 5 ... 20
收藏数 802
精华内容 320
关键字:

unity3d车展示