• 应用于3D场景中有很多3DUI界面,功能如下所示。【效果>>>>从哪里来到哪里去<<<<】 点击3DUI界面转换为2DUI界面,并放大移动到屏幕中心显示 点击已点击...

    此方法是将世界坐标转换为屏幕坐标,并实现UI的缩放移动效果,具体情况具体分析。

    应用于3D场景中有很多3DUI界面,功能如下所示。【效果>>>>从哪里来到哪里去<<<<】

    1. 点击3DUI界面转换为2DUI界面,并放大移动到屏幕中心显示
    2. 点击已点击过3DUI界面或其它3DUI界面,显示的2DUI界面缩小回原处并放大新点击的3DUI界面
    3. 给2DUI界面添加Button按钮,点击2DUI界面缩小返回到3DUI界面位置点

     

    详细代码如下

        //加载数据UI界面
        private GameObject dataPanel;
        private Text dataName, value;
        GameObject dataUIParent;
        public void WorldToScrennPoint(GameObject _parent)
        {
            mask =  1 << 15;//实例化mask自定义的层级之上;
    
            dataUIParent = _parent;
    
            var _dataUI = Resources.Load<GameObject>("factory/DataUI");
            dataPanel = GameObject.Instantiate(_dataUI) as GameObject;
            dataPanel.transform.SetParent(dataUIParent.transform, false);
    
            dataName = dataPanel.transform.Find("lineBg/name").GetComponent<Text>();
            value = dataPanel.transform.Find("lineBg/Value").GetComponent<Text>();
    
            dataPanel.transform.FindChild("lineBg").GetComponent<UnityEngine.UI.Button>().onClick.AddListener(() =>
            {
                DataUIShrink();//缩小UI界面
            });
        }
    
    
        //用于检测数据UI界面信息
        public LayerMask mask = 1 << 15;//实例化mask自定义的层级之上;
        GameObject gameObj;
        Vector2 screenPos;
        Tweener scaleTweener;
        void Update()
        {
             if (Input.GetMouseButtonDown(0))
            {
                //创建射线;从摄像机发射一条经过鼠标当前位置的射线
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hitInfo;
    
                if (Physics.Raycast(ray, out hitInfo, 500, mask.value))
                {
                    if (dataPanel.transform.localScale == Vector3.zero)
                    {
                        gameObj = hitInfo.collider.gameObject;
                        //赋值
                        dataName.text = hitInfo.transform.parent.parent.parent.name;
                        value.text = gameObj.GetComponent<Text>().text;
    
                        DataUIMagnify();//放大UI              
                    }
                    else
                    {
                        DataUIShrink(); //缩小UI界面
    
                        gameObj = hitInfo.collider.gameObject;
                        //赋值
                        dataName.text = hitInfo.transform.parent.parent.parent.name;
                        value.text = gameObj.GetComponent<Text>().text;
    
                        scaleTweener.OnComplete(DataUIMagnify);//缩小后放大点击的另一个UI界面
    
                    }
                }
            
                Debug.DrawLine(ray.origin, hitInfo.point, Color.red);
            }
        }
    
        //将点击的物体坐标转换为屏幕坐标-----------UI界面放大移动
        private void DataUIMagnify()
        {
            screenPos = Camera.main.WorldToScreenPoint(gameObj.transform.position);//世界坐标转屏幕坐标
            dataPanel.transform.position = screenPos;
    
            dataPanel.transform.DOScale(Vector3.one, 0.3f);
            dataPanel.transform.DOLocalMove(Vector3.zero, 0.3f);
    
        }
        //将点击的物体坐标转换为屏幕坐标-----------UI界面缩小移动
        private void DataUIShrink()
        {
            if (gameObj == null)
                return;
            screenPos = Camera.main.WorldToScreenPoint(gameObj.transform.position);//世界坐标转换为屏幕坐标
    
            dataPanel.transform.DOScale(Vector3.zero, 0.3f);
            scaleTweener = dataPanel.transform.DOMove(screenPos, 0.3f);
            Debug.LogError("缩小");
        }

     

    展开全文
  • Live2DUnity中的使用

    2019-04-23 12:00:12
    Live2D-Unity Live2D是日本Cybernoids公司开发的绘图渲染技术,在2D中能实现类似2.5D效果的人物动画,在电子游戏中可能会用得到。 前一阵子公司游戏客户端想要导入Live2D模型,将游戏里剧情人物替换,让剧情看...

    Live2D模型在Unity中的使用

    Live2D是日本Cybernoids公司开发的绘图渲染技术,在2D中能实现类似2.5D效果的人物动画,在电子游戏中可能会用得到。
    
    前一阵子公司游戏客户端想要导入Live2D模型,将游戏里剧情人物替换,让剧情看起来更加的好看,中间走了很多坑,下面我就记录下Live2D导入Unity的过程。

    先放官方链接:Live2D官网
    在官网里下载Live2D Unity SDK然后导入Unity,然后Live2D官网有几个Demo可以直接下载使用。
    直接上图嘻嘻嘻
    看完Demo之后可能会一脸蒙蔽,什么鬼东西,动来动去的怎么动的。
    作为程序员的我们可能不需要了解动画人物制作的详细过程,但是使用过UI动画编辑器之类的应该知道类似的原理,人物的动作其实就类似网格图,然后通过这些点来拉动人物的动作;动画大概就是设置一些关键点之类的差不多都那样;live2D有自己的物理系统,大概是设置一些重量,偏移值之类的。
    当美术做完Live2D模型之后,这个文件夹包括了moc3模型信息动作json文件physics文件等等;然后我们为每一个模型创建一个文件夹,把每个模型相关的motion文件放在一起,然后直接导入Unity工程目录下;unity因为提前导入了sdk,它会自动识别模型文件信息,然后自动把文件编译成unity可用的Prefab和AnimationClip。
    接下来工作就简单啦,创建Animator Controller来控制这些AnimationClip,这部分内容就自己去学习吧~
    这里有几点:
    1.最好将嘴部动画和肢体动作分开管理,animation controller增加parramator即可,然后设置

    blendingMode = AnimatorLayerBlendingMode.Override;
    

    直接看Animator长这样
    代码写好的animator,通过unity直接查看就长这样,通过AnyState?各个状态就能使用unity的动作融合啦
    2.为了动作融合,Aninator只能通过对应的transaction Index来切换状态。我是把Transation和动作名之间的关系写了个对应关系脚本存储为程序可读的数组,那样就能通过动作名直接获取链接名啦~~

    //Animator可以直接创建Controller在指定路径
    CreateAnimatorControllerAtPath
    
    3.为了更好的控制模型,在创建Prefab的时候就要添加几个Component用来控制模型的位置,动画,渲染等
    4.有时候会遇到Live2D在Scene界面有轮廓,但是没有贴图的情况,
    我直接上代码啦:
    
    	local shaderName = "Live2D Cubism/Unlit"
    	local shader = CS.UnityEngine.Shader.Find(shaderName)
    
    	local trans = self.obj.transform:Find("Drawables")
    	local renders = CS.LuaMgr.getCubismRendersInChildren(trans)
    	for i=0, renders.Length - 1 do
    		renders[i].Material.shader = shader
    	end
    

    这段是Lua代码,大概就是找到Unlit这个shader然后把它指定下就好啦,不知道新版sdk还有没有这个问题。

    再说一点Live2D比较坑的几个问题:
    1.物理效果非常容易跟项目代码进行冲突,这个自己阅读SDK找问题吧~
    2.Live2D脚本自带的控制Alpha的Component跟Unity的Animator不能兼容,两者只能同时有一个运行……是我傻逼了么,没想到别的解决方案。
    3.如果遇到经常创建销毁模型的情况,最好是创建资源池进行管理,
    并且频繁移除的时候,不要频繁的setActive,这样会导致各种未知情况的发生 。

    最后说一点动画播放结束之后的回掉函数和几个动作自动进行联合播放的问题,一般情况下可以在动画后面添加关键帧或者监听动画机的状态,最简单的方法就是计算动画的长度,然后使用计时器……

    public static float GetClipLength(Animator animator, string clip)
        {
            if (null == animator || string.IsNullOrEmpty(clip) || null == animator.runtimeAnimatorController)
                return 0;
            RuntimeAnimatorController ac = animator.runtimeAnimatorController;
            AnimationClip[] tAnimationClips = ac.animationClips;
            if (null == tAnimationClips || tAnimationClips.Length <= 0) return 0;
            AnimationClip tAnimationClip;
            for (int tCounter = 0, tLen = tAnimationClips.Length; tCounter < tLen; tCounter++)
            {
                tAnimationClip = ac.animationClips[tCounter];
                if (null != tAnimationClip && tAnimationClip.name == clip)
                    return tAnimationClip.length;
            }
            return 0F;
        }
    
    

    上边这个直接给了计算的代码~~

    别忘了最后释放内存……

    展开全文
  • 把你的SceneView变成2D画布一共需要两步。第一步是把它变成2D。第二步是把它变成画布。 通过代码控制SceneView的摄像机进入2D模式。 炒鸡简单,SceneView里提供了一个字段叫做in2DMode,开启它会使SceneView的摄像机...
        

    图片描述

    嗯。。把你的SceneView变成2D画布一共需要两步。
    第一步是把它变成2D。
    第二步是把它变成画布。

    通过代码控制SceneView的摄像机进入2D模式。

    炒鸡简单,SceneView里提供了一个字段叫做in2DMode,开启它会使SceneView的摄像机变成正交相机并且锁定在Z轴上。
    以下代码呈现了这种切换的主要部分:

        bool _enabled;
        SceneView _sceneView;
        private bool _restoreCamera2DMode;
        private Vector3 _restoreCamearPosition;
    
        private void SetEnabled(bool value)
        {
            if (_enabled != value)
            {
                if (value)
                {
                    _sceneView = SceneView.lastActiveSceneView;
                    if (_sceneView == null) return;
                    _restoreCamera2DMode = _sceneView.in2DMode;
                    _restoreCamearPosition = _sceneView.pivot;
    
                    _sceneView.in2DMode = true;
                    _sceneView.LookAt(new Vector3(0, 0, -10));
                    _sceneView.Repaint();
                }
                else
                {
                    _sceneView.in2DMode = _restoreCamera2DMode;
                    _sceneView.LookAt(_restoreCamearPosition);
                }
                _enabled = value;
            }
        }

    重载掉SceneView上原生的鼠标输入,让你可以自定制画布相关的逻辑。

    首先你最好把所有unity的Tool状态置为空。什么是Tool呢?
    看图:clipboard.png
    最左边的图标是ViewTool,其余四个图标是Tool。
    你需要这样做:

                Tools.current = Tool.None;
                Tools.viewTool = ViewTool.None;

    然后屏蔽掉unity的内置逻辑,用自己的逻辑来代替。

        void OnSceneGUI(SceneView scene)
        {
            Event e = Event.current;
            Vector2 mousePosition = e.mousePosition;
            
            // View point to world point translation function in my game.
            this._mousePosition = SceneScreenToWorldPoint(mousePosition);
           
            // Block SceneView's built-in behavior
            HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive));
    
            // ------------------------------
            // Your Custom OnGUI Logic
            // ------------------------------
    
            if (Event.current.type == EventType.MouseDown) Event.current.Use();
            if (Event.current.type == EventType.MouseMove) Event.current.Use();
        }
    
        private Vector3 SceneScreenToWorldPoint(Vector3 sceneScreenPoint)
        {
            Camera sceneCamera = _sceneView.camera;
            float screenHeight = sceneCamera.orthographicSize * 2f;
            float screenWidth = screenHeight * sceneCamera.aspect;
    
            Vector3 worldPos = new Vector3(
                (sceneScreenPoint.x / sceneCamera.pixelWidth) * screenWidth - screenWidth * 0.5f,
                ((-(sceneScreenPoint.y) / sceneCamera.pixelHeight) * screenHeight + screenHeight * 0.5f),
                0f);
    
            worldPos += sceneCamera.transform.position;
            worldPos.z = 0f;
    
            return worldPos;
        }

    最后,为了让这一切可以起作用,你需要在切换进画布模式的时候把OnSceneGUI注册给SceneView才行。

    SceneView.onSceneGUIDelegate += OnSceneGUI;

    现在,你可以尝试在编辑器中做各种2D刷子了。

    展开全文
  • Unity3D_2D系统

    2018-03-08 14:50:14
    2D游戏简介2D游戏是指二维交互式动画,也就是我们通常所说的‘2D动画’。 只不过在游戏方面,这种动画可以根据用户的需求而进行互动2D游戏基本特征二维交互式动画的基本特征如下(主要是针对3d游戏):⒈贴图传统的...

    2D游戏简介

    2D游戏是指二维交互式动画,也就是我们通常所说的‘2D动画’。 
    只不过在游戏方面,这种动画可以根据用户的需求而进行互动


    2D游戏基本特征

    二维交互式动画的基本特征如下(主要是针对3d游戏):

    ⒈贴图

    传统的2d游戏中的美术资源(人物行走、人物状态、地图等等)都是以png或jpg的图形文件渲染而成,而3d游戏中的美术资源多数是以模型为主.

    ⒉视角

    2d游戏是没办法完成视角转换的.因为2d游戏的美术资源是平面图.即某种美术资源的前、后、左、右不能够同时出现在游戏里.但3d游戏却可以完成视角转换.

    ⒊渲染

    2d游戏的所有美术资源可以不经过引擎的渲染就能使用,但3d游戏的任何美术资源都必须经过引擎的渲染才能使用.


    早期Unity制作2D游戏的方法

    以前版本的Unity做2D游戏,虽然能做,但是很麻烦。

    比如你可以将一张纹理赋予一个”面片”网格,然后用脚本控制它的动画调整它的位移.如果你要使用物理引擎,那么还要将这个Obeject处理3D的,所以你还要确保你的Object要有足够的深度以确保他们在其它轴向上不起冲突.或者你选用一个第三方插件,如2D Toolkit或者Orthello 2D Framework,他们有着强大的功能,但同样需要你去做一些约束工作。


    Unity4.3原生的2D开发环境

    Unity4.3增加了原生的2D开发环境。 
    这里写图片描述 
    如果你想更改这个设置,可以选择”Edit\Project Settings\Editor”打开编辑器设置,在”Default Behavior Mode”中改模式为2D,如下图: 
    这里写图片描述 
    “Default Behavior Mode”(默认行为模式)定义你项目在导入Assets时的默认导入设置,当设置为3D模式时,Unity假设你将导入的文件创建为纹理类型(如:PNG文件);当设置为2D时,Unity假定你想要的导入的资源为Sprite类型


    创建序列帧动画

    篇幅较长请查看以下的链接 
    创建序列帧动画


    场景视图的2D模式

    场景视图里有个控制二维切换的按钮,点击2D按钮可以激活2D模式,像下面这样: 
    这里写图片描述 
    这个按钮会将场景相机在透视视图和正交投影视图之间进行切换。 
    当观察透视视图时,远离相机的物体看起来更小,就像在现实世界中眼睛看物体一样,然而当正交投影视图的时候,物体的大小并不受与相机的距离影响。因此,在二维模式时,一个对象不管位置离相机远近,只要尺寸不变,它看起来将没有变化的。

    下面的图可以清晰的看到2D和3D模式视窗的区别 
    这里写图片描述 
    你只能做视图的平移操作,Y轴指向上,X轴指向右。 
    这个设置是不会影响到游戏播放时效果的,因为它只是帮助你组织场景里的对象,甚至后期你会在创建2D游戏的同时创造3D游戏,你可能需要在这两种模式间根据需要切换


    制造精灵

    切片精灵表 
    Sprite图层


    什么是drawcall

    Unity每次在准备数据并通知GPU渲染的过程称为一次Draw Call。

    一般情况下,渲染一次拥有一个网格并携带一种材质的物体便会使用一次Draw Call。

    对于渲染场景中的这些物体,在每一次Draw Call中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作。

    Draw Call的次数是决定性能比较重要的指标。


    drawcall和setpass call

    不少开发者误以draw call为unity效率的直接衡量指标; 
    unity官方注意到了这点,draw call这个说法比较有误导性;实际上draw call本身的call过程消耗比较低,消耗高的是draw call对象集合的改变过程和集合中各个对象的处理过程,比如dynamic batch和static batch相同draw call下性能差别很大。 
    所以unity的统计界面有了setpass call,其意思大致是场景需要切换处理的pass数,因为渲染的对象是通过材质介以材质所含的shader中的各个pass最终得以显示的,这个指标对衡量性能来说比“draw call”相对准确一点


    2D物理

    • 2D刚体 
      这里写图片描述 
      mass:0代表着无限大,也就是“静态刚体”。范围:0.001到10000。 
      Linear Drag:线性阻尼,也就是物体在运动过程中收到的阻力。 
      Angular Drag:角度阻尼系数,刚体在旋转过程中受到的阻力。 
      GravityScale:重力缩放,控制着重力的大小,其数值范围为-100000到100000. 
      Fixed angle:固定角度,指刚体在运动过程中保持固定的角度,这就相当于关闭了刚体的旋转功能。 
      IsKinematic:控制刚体是否变为运动学物体,就是我们的刚体不在受物理引擎的控制,而受transform或者是动画等等的控制。

      SleepingMode:睡眠,Unity会临时把处于静止状态的物理模拟去除,这样主要是节省计算资源。

    1、Never Sleep:永远不睡眠。 
    2、Start Awake:Awake时就进入睡眠。 
    3、Start Asleep:立即进入睡眠。

    Collision Detection:碰撞发现。 
    1、Discrete Detection:正常状态下的检测。 
    2、Continuous:连续性性检测。 
    - 2D碰撞器 
    这里写图片描述 
    unity2D的碰撞体和3D的差不多。在unity2D中,有Box Collider2D(盒子碰撞器),Circle Collider2D(圆形碰撞器),Edge Collider2D(边缘碰撞器)和Polygon Collider2D(多边形碰撞器)。Edge Collider2D和Polygon Collider2D是3D项目里面没有的。

    Polygon Collider2D:。对于多边形碰撞器有一个比较特殊的功能,也就是可以编辑多变形碰撞器的外形。我们可以在多边形上拖动可以出现一个顶点,拖动次顶点,可以改变碰撞器的外形。按住Ctrl键的同时,单击顶点,可以把顶点删除。 
    这里写图片描述 
    刚体属性的介绍: 
    Material:定义刚体表面的一些物理特性,例如摩擦力,柔软程度等,由此决定了它对其他物体的反弹能力等。 
    Is Trigger:属于3D碰撞的都应该知道这个属性的作用。勾了就会产生的是刚体碰撞。不勾就是触发碰撞,此时碰撞的两个物体之间可以不使用刚体去进行驱动。

    void OnCollisionEnter2D(Collision2D coll) 
    {
        Debug.Log(coll.gameObject.name);
    }
    
    void OnTriggerEnter2D(Collider2D other)
    {
        Debug.Log(other.name);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 2D物理材质

    SpritePacker


    图集的优点

    展开全文
  • Unity3d界面介绍

    2017-07-17 00:48:05
    五大界面Unity 有五大界面,scene(场景)、game(游戏)、project(项目)、hierarchy(层级)、inspector(检查员)。Scene 界面是游戏场景设计界面,一个场景是游戏的一个显示单位,如战斗场景,欢迎场景,设置场景等。场景...

    五大界面

    Unity 有五大界面,scene(场景)、game(游戏)、project(项目)、hierarchy(层级)、inspector(检查员)。

    Scene

    Scene 界面是游戏场景设计界面,一个场景是游戏的一个显示单位,如战斗场景,欢迎场景,设置场景等。场景中的每个物体都有一个三维,unity 的坐标系是左手坐标系,即 x 轴向右,y 轴向上,z 轴就向里。

    场景界面

    • shaded(遮蔽处)下拉框可以选择场景的显示方式,shaded 是以实体方式显示,wireframe(线框) 是以线框方式显示,还有一些其它的显示方式,在引擎中试试就知道了。

    • 2D 按钮是控制场景以 2D 方式显示还是 3D 方式,默认没选中表示是 3D 方式,选中后场景会以 2D 方式显示,摄像机的视图变成平行视图。

    • 光线按钮是控制场景光线是否启用,如果启用,则可以在场景中看到运用光线之后的效果,则显示场景真实角度的光线,而不是游戏呈现出来的效果。此操作不会影响真实游戏的光线效果,只影响在场景界面中的显示效果。

    • 音频按钮是控制场景中是否播放音频,此操作同样不影响游戏实际运行效果,只控制场景中音频是否播放。

    • 右边这个图片下拉框是控制其它物体在场景中是否显示,同样只针对场景,不影响游戏运行效果。skybox 是控制场景是否显示天空盒,fog 是控制场景是否显示雾效果,flare(闪耀)是控制场景是否运用镜头光晕效果,animated meterials(动画材料),image effects(图片特效)。

    • gizmos(小玩意)按钮是控制场景是否显示一些物体,比如 3D icon 控制场景是否以 3D 的方式来显示音频,摄像机这些图标。show grid 是控制场景中的物体是否显示网格。

    • 上面那五个按钮是对选中物体或场景的控制按钮,分别是平移场景,平稳物体,旋转物体,缩放物体和 2D 控制,对应的快捷键分别是 QWERT。另外,还有一些快捷键
      • 选中一个物体,把鼠标放在在 Scene 界面中,按 F 键可以把视野切到选中物体身上。
      • 滚动鼠标中键可以缩放场景显示
      • 按钮鼠标中键移动也可以平衡场景
      • 按住 alt 键的同时按钮鼠标左键移动可以自由角度的旋转场景
      • 按住鼠标右键移动也自由角度的旋转场景
      • 按钮鼠标右键的同时配合快捷键可以漫游场景,按 w 是镜头前进,按 s 是镜头后退,按 a 是镜头左移,按 d 是镜头右移,按 e 是镜头上升,按 q 是镜头下降。
      • 再过来的那个按钮是控制同时选中多个物体时操作点的中心,center 是以所有物体的共同的中心,pivot(中心点)是以每个物体各自的中心。
      • 再过来的按钮是控制物体的坐标系是全局的还是局部部的,global 表示坐标系是全局的,物体旋转时坐标系不会旋转,物体与坐标系之间的角度出现不一致;local 表示坐标系是相对于本身的,物体旋转时坐标系也会跟着旋转,坐标系与物体之间一直保持着原来的角度。

    Game

    game 界面是游戏运行时的显示界面,对 scene 界面的修改都会时时同步到 game 界面。

    游戏界面

    • Display 下拉框是控制以几个摄像机进行渲染,默认是一个,即默认摄像机。
    • 第二个下拉框是控制渲染界面的分辨率,free aspect 表示填满界面。
    • 下一个滑动条是控制渲染界面的缩放比例
    • Maximize on Play 选中时,游戏一运行就会全屏显示
    • Mute(沉默的) Audio 选中时,游戏运行不会播放音频
    • Stats(统计)控制是否显示运行信息面板
    • Gizmos 和 scene 的 Gizmos 一样,控制是否显示一些物体。

    Project

    项目界面用于显示和管理项目中的文件,是真实存在的文件,与操作系统的资源管理器一一对应,在 project 界面上添加和删除文件,资源管理器上也会同步。虽然在资源管理器上操作增删文件也会同步到 unity 中,但最好在 unity 中操作,更不易出错。project 的根目录是 assets 目录,对应到资源管理器就是 项目根目录/assets

    项目界面

    • create 下拉框可创建各种资源,也可使用菜单栏的 Assets/Create 按钮。
    • 右边是一个搜索框,可以快速找到某个资源,默认按名称搜索,右边那两个按钮分别是按类型和按标签探索。

    Hierarchy

    Hierarchy 界面列出当前打开场景的所有物体,这些物体保存在场景文件中,在资源管理器上不会有这些物体的单独文件,所以这些物体可以说是虚拟的文件,这点与 Project 下的文件有所不同。

    层级界面

    • create 下拉框可创建各种物体,也可使用菜单栏的 GameObject 下面的各个物体按钮。
    • 右边是一个搜索框,当输入物体名称进行搜索时,Hierarchy 界面只显示搜索到的物体,其它的物体会被隐藏,同时 Scene 界面会把没搜索到的物体变成灰色,突出显示搜索到的物体。

    Inpector

    在 Scene 中选中一个物体,Inspector 会显示出该物体的所有组件。

    组件界面

    • 最上面的 Account 选项卡是开发者账号管理。
    • 右边的 Layers 选项卡显示或隐藏某些层上的物体,也可以锁定某个层。
    • 再过去的选项卡是设置 unity 界面的布局。
    • 下面这一栏设置是否显示物体,设置物体名称,是否静态物体。
    • 再下来的一栏是给当前物体设置标签和所属层,也可以打开层-标签管理面板,管理标签和层。
    • 接下来就是该物体所拥有的所有组件,每个物体都会有一个最基础的组件,就是 Transform 组件,这个组件控制物体的位置,旋转和缩放。
    • 最下面的按钮是添加组件按钮,也可以使用菜单栏的 Componet 按钮来添加。
    展开全文
  • 本文介绍了Unity3D界面及游戏对象基本操作。
  • Unity 3D - Mask和RectMask2D区别 : 主要区别: 区别1: Mask主要处理不规则图形遮罩效果 RectMask2D只能做矩形遮罩. 区别2: Mask需要一个Image来当作遮罩区域,子节点在Image[渲染区域]才会显示 RectMask2D以...
  • 此方法是改变3D场景中3DUI界面的父类,实现点击3DUI界面呈现在屏幕上。 using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.EventSystems; using UnityEngine....
  • 下面里面4.6之后Unity3D自带的UGUI,实现一个公告栏和开始界面,以此说明Unity3D中是怎么布置游戏UI的。如下图所示,开始游戏之前,我们会给用户公告比较长,但用户可以通过滑动滑块看完。 具体制作步骤如下: ...
  • Unity3D界面介绍及入门

    2014-05-25 11:48:37
    首先,你可以在unity3d官网(http://unity3d.com/)下载新版本的软件,本文中使用的是unity3d 4.0.标准版是不支持阴影的,只有专业版才支持,所以对于效果要求较高的读者,可以选择购买正版,不要使用盗版或者破解版,...
  • 开始界面 1、创建场景 添加button 2、LodeGame.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class LoadGame : MonoBehaviour...
  • 1 利用摄像机深度 2 利用rendertexture 将3d物体渲染到texture上面
  • Unity3d基础:界面介绍

    2019-04-21 14:47:27
    项目视图:Project View:存放开发中所需资源。 场景视图:Scene View:显示三维空间,设计可视化窗口。 控制栏(control Bar):DrawMode选项: sharding(阴影模式)shaded,模型表面附着材质纹理。...
  • 新版本中引入不少2D的新功能,我们打开资源包管理器,可以看到2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。 我们先来讲讲2D Animation的功能。 2D Animation的安装 点击菜单Window &gt; ...
  • 角色全都是用手机的dotpict这款像素画APP一点一点画...动画制作我使用的是AssetStore里面的Anima2D插件,真心好用,不过仅仅合适于两朝向的动画,例如《饥荒》,而想要制作四朝向动画,例如GBA上《塞尔达传说》那种...
  • 好一段时间没写博客了,新年来第一天正式上班,新的一年里要求自己有新的变化,坚持每天不断的学习和提高,改变过去的晚睡晚期的不好习惯,昨天周末,利用一天休息时间去打打篮球,发现过去一百天里每天熬夜到深夜,...
  • Unity3D_最简单的开始界面_结束界面开始界面结束界面开始界面1、创建一个新的场景添加button 2、C#脚本LoadingGame.cs using System.Collections;using System.Collections.Generic;using UnityEngine; public ...
  • 为啥要写这个呢,主要是因为在之前制作游戏的时候,需要在3D游戏场景之上加一层2D的用户界面。之前一直属于小白的阶段,身边玩unity的人也少,也没人教,网上去问了一下也没有特合适的方法(大概是关键词没有搜对)...
  • 如图,将2D3D(包含粒子)显示在UI上层 将Canvas的Render Mode改为Camera模式,选择渲染相机,放在相机与Canvas三维空间之间的物体,将会显示在该Canvas前面,可以给UI添加特效,或者将3D模型显示到UI界面 ...
  • unity3D游戏特效、插件、特效资源包大合集,2D,3D,绝对实用。多种粒子特效的合集包括3D和2D绝对实用,满足各种需求。
1 2 3 4 5 ... 20
收藏数 5,294
精华内容 2,117