精华内容
参与话题
问答
  • 基于Unity游戏开发(上)

    万人学习 2015-03-09 19:53:04
    本课程是Unity游戏开发的入门课程,课程分为上、下两个部分。上篇主要讲述游戏的基本概念、Unity的开发环境、游戏资源的创建和使用等基础内容。
  • 深入浅出Unity3D——第一篇

    万人学习 2015-02-05 09:58:48
    Unity3D基础知识、游戏算法一网打尽。
  • C# For Unity系列之入门篇

    万人学习 2017-03-26 14:00:01
    A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》  https://edu.csdn.net/course/detail/24643 B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》 ...
  • Unity轻松制作塔防游戏

    万人学习 2019-01-31 09:48:16
    本系列课程使用简单易懂的逻辑带你一起剖析这类游戏制作的过程。本案例完美展示了该类项目从搭建到完成的完整架构体系,无论代码设计还是结构布局都是悉心安排。想知道如何使用四元数跟随目标旋转吗?想知道如何使用...
  • 在前面学习会使用blender制作游戏的模型或动画,那么这些动画和模型可以放到游戏里了...在选择不同的游戏引擎,又有很多选择的,在这里主要选择unity引擎,你也许问为什么?其实,我之所以选择它,就是因为王者荣耀...

    在前面学习会使用blender制作游戏的模型或动画,那么这些动画和模型可以放到游戏里了,但是怎么样制作成游戏呢?一般制作游戏有两种方法,一种就是从头开始,所有代码全部自己造;另外一种就是使用现有游戏引擎。在本文里使用最后一种方法,使用现成的游戏引擎,前面那种方法以后再考虑吧。
    在选择不同的游戏引擎,又有很多选择的,在这里主要选择unity引擎,你也许问为什么?其实,我之所以选择它,就是因为王者荣耀使用它来开发的,因此,如果想开发游戏跟这样的游戏竞争,必须站在同样的起点上,才有机会PK一下。

    好吧,这样就选择了unity这个工具了,别的就放下。要使用这个工具之前,必须进行下载和安装,这个具体过程,我就不说了,如果不懂,可以参考我的课程:

    Unity5.x游戏基础入门
    http://edu.csdn.net/course/detail/4810

    接着,安装好了,就可以进行下面的操作了。

    双击桌面的unity图标:

    就打开像下面的窗口:

    可以看到前面有new、open这两项,new就是创建新项目,open就是打开以前的项目。在这里选择new这项,就会出现下面界面:

    这个就是创建新项目的界面,在project name这里输入项目的名称,这里叫作UnitySeries1,在3D、2D选项里,选择3D。后面使用默认的即可,继续点击create project下一步:

    Unity有5个主要区域:Scene, Game, Hierarchy, Project, 和Inspector。Scene窗口是编辑游戏世界所有相关物体,可以通过鼠标进行操作这里的物体。右键点下时,可以使用WASD来查看整个世界,使用QE按键来进行升降查看。如果没有显示这个界面,可以通过下面的菜单来选择:

    这样选择之后,肯定会出现上面界面布局了。

    接着下来,要在游戏世界里添加物体,这样怎么样操作呢?

    首先在菜单里选择GameObject->3D Object->Capsule:

    这样就可以创建一个3D的物体:小容器,如下图:

    在这里可以选择capsule,它是这个物体的名称,就可以右边查看它的属性,如下图:

    在这里,可以看到inspector里就是物体的属性,第一个物体的名称,接着下面是它的相关属性。比如Transform对象,就表示这个物体在游戏世界里的位置、大小、方向。

    接着下来,要对这个物体进行一些动作,比如让这个物体运动起来,因此要添加脚本,以便响应不同的事件,如下添加:

    先要选中capsule,然后在inspector里,找到add component按钮,点击之后选择new script,就会出来这个窗口,然后在最上面输入脚本的名称为:BasicMovement,最后一步点击create and add,就可以创建脚本,并关联到这个物体。接着就可以看到脚本代码在项目里显示了:

    到这里,终于看到代码了。在这脚本代码里,主要有两个方法:一个是Start (),这个方法只是运行一次;另一个是Update (),每一个游戏帧里运行一次,一帧是表示什么意思呢?其实这帧的概念是来自于电影,电影每秒播放24个图片,一帧就是一个图片。在游戏里,每秒钟更新多少个图片,取决于电脑性能。

    我们来在Update ()方法里添加一行代码,如下:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class BasicMovement : MonoBehaviour {
    
    	// Use this for initialization
    	void Start () {
    		
    	}
    	
    	// Update is called once per frame
    	void Update () {
            transform.position += Vector3.right * Time.deltaTime;
        }
    }

    这行代码里,transform表示物体小容器,transform.position是表示小容器的位置不断地改变,Vector3.right是表示游戏世界右边方向,即是Vector3(1, 0, 0);Time.deltaTime是表示游戏里最后一帧所使用的时间,这里Vector3.right * Time.deltaTime,就是相当于每秒移动多少距离,如果Time.deltaTime越大,表示每帧时间越大,移动的距离就要大一些,如果时间小,那更新的速度很快,那么就移动距离小一些。

    最后点击下面的按钮,就可以运行起来了:

    到这里,就完成unity的第一个项目了。

    五子棋游戏开发

    http://edu.csdn.net/course/detail/5487
    RPG游戏从入门到精通
    http://edu.csdn.net/course/detail/5246
    WiX安装工具的使用
    http://edu.csdn.net/course/detail/5207
    俄罗斯方块游戏开发
    http://edu.csdn.net/course/detail/5110
    boost库入门基础
    http://edu.csdn.net/course/detail/5029

    展开全文
  • Unity 2D游戏制作

    万次阅读 2017-09-05 11:19:42
    2D游戏制作最重要的是层的设置 先设置两个层①Layers②Edit Layers③Sorting Layers添加两个层BackGround和Front 调试大雁 创建2D object改名BackGround设置背景图片修改为BackGround 0层 创建2D object添加...

    调试背景

    2D游戏的制作最重要的是层的设置

    先设置两个层①Layers②Edit Layers③Sorting Layers添加两个层BackGround和Front

    调试大雁

    创建2D object改名BackGround设置背景图片修改为BackGround 0层

    创建2D object添加大雁图片Ctrl+6,保存,把大雁动态模型全选,插入。调整时间可以看起来舒服,调整所在层为BackGround 1层

    添加脚本使大雁从屏幕右边开始飞入左边飞出

    publicclassSwanFly : MonoBehaviour {

        //天鹅起飞的位置

        privateVector3 startPosition;

        publicfloat speed;

             // Use this for initialization

             void Start () {

            Debug.Log("屏幕的宽度" + Screen.width);

            Debug.Log("屏幕的高度" + Screen.height);

            Vector3 screenSize = Camera.main.ScreenToWorldPoint(newVector3(Screen.width, Screen.height, 0));

            float swanExtentsX = transform.GetComponent<Renderer>().bounds.extents.x;

            startPosition = newVector3(screenSize.x + transform.position.y, transform.position.z);

            transform.position = startPosition;

             }      

             // Update is called once per frame

             void Update () {

            if (transform.position.x <-startPosition.x)

            {

                transform.position = startPosition;

            }

            transform.Translate(Vector3.right * -1 * speed * Time.deltaTime);

             }

    }

    调整草地

    设置空物体,在其中创建草地,两边超过相机边框。

    在空物体上挂载BoxCollider2D组件,点击EditCollider 会有一个绿色方框调整位置

    如图所示即可

     

     

    游戏对象设置

    设置球添加Front0层,挂载Circle Collider2DRigibody2D组件

    创建一个2D空物体挂载脚本,随机产生球

    publicclassCreatBall : MonoBehaviour {

        //保龄球预制体

        publicGameObject ballPrefab;

        //产生的范围

        privatefloat createRange;

        //产生的时间

        publicfloat rate;

             // Use this for initialization

             void Start () {

            Vector3 screenSize = Camera.main.ScreenToWorldPoint(newVector3(Screen.width, Screen.height, 0));

            float ballExtentsX = ballPrefab.transform.GetComponent<Renderer>().bounds.extents.x;

            createRange = screenSize.x -ballExtentsX;

        }

             // Update is called once per frame

             void Update () {

            rate -= Time.deltaTime;

            if (rate<0)

            {

                Vector3 position = newVector3(Random.Range(-createRange, createRange),transform.position.y, transform.position.z);

                GameObject ball = Instantiate(ballPrefab, position, Quaternion.identity) asGameObject;

                //下一个保龄球产生的时间

                rate = Random.Range(1.5f, 2.5f);

                Destroy(ball, 3f);

            }

             }

    }

    调试接物体的物体

    创建两个2D object分别添加帽子的内沿和外沿,外沿为内沿的子物体

    内沿层Front 0层  外延层Front 1层

    分别挂载Edge Collider 2D组件,内沿勾选Is Trigger,发生碰撞

    设置Edit Collider

    外沿 内沿

    挂载脚本接球然后销毁产生粒子效果

    publicclassHatController : MonoBehaviour {

        //帽子移动的范围

        privatefloat HatMoveRange;

        //粒子产生的位置

        publicGameObject particleSystemPoint;

        publicGameObject particle;

             // Use this for initialization

             void Start () {

            Vector3 screenSize = Camera.main.ScreenToWorldPoint(newVector3(Screen.width, Screen.height, 0));

            float hatExtentsX = transform.GetComponent<Renderer>().bounds.extents.x;

            HatMoveRange = screenSize.x -hatExtentsX;

        }

             // Update is called once per frame

             void Update () {

            Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);

            float x = Mathf.Clamp(mousePosition.x,-HatMoveRange, HatMoveRange);

            transform.position = newVector3(x, transform.position.y, transform.position.z);

             }

        voidOnTriggerEnter2D(Collider2D col)

        {

            //粒子产生

            GameObject tempParticle = Instantiate(particle,particleSystemPoint.transform.position, Quaternion.identity)asGameObject;

            Destroy(col.gameObject);

            Destroy(tempParticle, 2f);

        }

    }

    设置粒子效果

    设置预制体的Renderer Sorting LayerFront 2

    离子产生的位置设置一个2D空物体成为帽子内沿的子物体,调整位置



    展开全文
  • 本课程是Unity3d 初级系列的第一篇,为了能让更多的初学者更方便的掌握unity3d,再这里我将全面而详细的讲解untiy3d游戏引擎。
  • 使用Unity3D制作一个转盘游戏

    千次阅读 2015-03-15 19:22:58
    今天我们来做点和游戏无关的事情吧!因为博主在找工作的过程中遇到些挫折,所以难免会有些失落,因此实在心情和精力再去完成新的游戏案例,希望大家能够谅解啊。博主今天想和大家分享的是一个叫做幸运转盘的案例。...

    今天我们来做点和游戏无关的事情吧!因为博主在找工作的过程中遇到些挫折,所以难免会有些失落,因此实在心情和精力再去完成新的游戏案例,希望大家能够谅解啊。博主今天想和大家分享的是一个叫做幸运转盘的案例。我们知道平时在节假日商场为了促销商品,通常都会推出诸如转盘抽奖这样的游戏。在学了概率以后,虽然我们都知道中奖是一个小概率事件,可是人们对买彩票中奖这样的事情仍然乐此不疲。就像腾讯通过今年的春晚成功地为微信支付培养了大量忠实用户一样,虽然大家抢红包抢到的钱都不算多,可是大家都还是愿意去抢红包啊。为什么呢?呵呵,不就图一乐嘛。好了,那么下面我们一起乐一乐吧,因为激动人心的抽奖环节就要开始了!

    首先我们来看看在Unity3D中如何实现转盘抽奖:

    转盘游戏示意图

    从这张图片我们可以看出,转盘抽奖有两部分组成:转盘是可以旋转的、转盘指针是固定不动的。那么,好了,抽奖无非就是让转盘转起来然后再停下来嘛,直接给出代码:

    using UnityEngine;
    using System.Collections;
    
    public class LuckyRoll : MonoBehaviour {
    
        //幸运转盘
        private Transform mRoolPanel;
    
        //初始旋转速度
        private float mInitSpeed;
        //速度变化值
        private float mDelta=0.5f;
    
        //转盘是否暂停
        private bool isPause=true;
    
        void Start () 
        {
            //获取转盘
            mRoolPanel=this.transform.FindChild("Background");
        }
    
        //开始抽奖
        public void OnClick()
        {
            if(isPause)
            {
                //随机生成一个初始速度
                mInitSpeed=Random.Range(100,500);
                //开始旋转
                isPause=false;
            }
        }
    
        void Update()
        {
            if(!isPause)
            {
    
                //转动转盘(-1为顺时针,1为逆时针)
                mRoolPanel.Rotate(new Vector3(0,0,-1) * mInitSpeed * Time.deltaTime);
                //让转动的速度缓缓降低
                mInitSpeed-=mDelta;
                //当转动的速度为0时转盘停止转动
                if(mInitSpeed<=0)
                {
                    //转动停止
                    isPause=true;
                }
            }
        }
    }

    这里我们随机给出一个速度mInitSpeed,然后让它按照mDelta的速率缓慢的减少,当mInitSpeed的数值为0时表示转盘停止转动。好了,我们来看看最后的效果:

    转盘游戏演示

    从现在的效果来看,这个案例基本上成功了,所以以后如果碰到需要这种抽奖活动的场合,大家就可以跟美术协调好,快速地制作出这样一个幸运转盘来向身边的人们炫耀了。不过这个案例同样存在问题:

    • 基于随机数的转盘转动不受玩家控制,玩家无法参与到互动当中,可以考虑触摸操作,这样可以根据玩家的操作来模拟转动,提高游戏的真实性和可玩性。

    • 因为抽奖的结果是由美术设计在转盘上的,所以程序无法根据转盘停止后指针的位置直接判断出玩家抽奖的结果以及本次抽奖是否为有效的抽奖(指针恰好停留在两个扇形区域的分界线上)。

    • 因为这里转盘的旋转并没有严格地按照实际情况下转盘的受力情况来设计,因此可以说这个游戏中的概率分布可能不是均匀的,因此计算机里使用的随机数是伪随机数。

    好了,暂时就发现这些问题,如果有朋友知道如何模拟触屏操作和阻尼运动,可以在这篇文章后面给我留言,今天的内容就是这样了,希望大家会喜欢!

    展开全文
  • Unity3d游戏制作 UV贴图

    千次阅读 2019-03-21 16:16:19
    也算是简单的,丑丑的把这弄到Unity了,上次的那个实在是面数太多了导到Unity里占了17.1K的面。 这次次的占2.1k先凑合着用吧,下面给大家分享一下遇到的坑。 建模过程需要用到很多技巧,但是我的原则就是用尽量少的...

    此文内容仅为个人踩坑记录,绝对不是正确的做法,后面将会写一篇正确的做法出来。

    继续之前的踩坑之路的分享哈!
    经过了N个小时的努力,先给大家看看效果吧。
    在这里插入图片描述
    也算是简单的,丑丑的把这弄到Unity了,上次的那个实在是面数太多了导到Unity里占了17.1K的面。
    这次次的占2.1k先凑合着用吧,下面给大家分享一下遇到的坑。
    建模过程需要用到很多技巧,但是我的原则就是用尽量少的面的实现。或许后面还会发现,这个模型还有很多不用合理甚至不能用的地方,但是没关系,这就是学习的过程嘛,今天从建模完成后开始讲。

    展开UVW

    当模型建好了以后首先就是要把模型的各个面展开到一张平面图中,进行纹理的绘制。没有什么很多视频资料和文字资料都没有讲的那么基础,虽然花了不少时间,但是最终还是知道是怎么回事了。
    d
    在修改器中找到UVW展开,然后点击下面的编辑
    在这里插入图片描述
    会像下面这样弹出UVW展开的窗口,我们可以选择下面红框中的工具。
    在这里插入图片描述
    在3D视窗中选中要展开的面,3DMax就会同时为这个窗口中为我们选中对应的UV。

    在这里插入图片描述
    然后我们可以在UV窗口中点击右健,使用“松弛”或“断开操作”,其实目的就是把这个模型的面展开到一个平面中,我们才可以往上面画内容。最后整理成这个样子。
    需要强调的是,建模和UV这样子是肯定不专业的,但是由于是自己在玩的就不投入列多的时间去研究了。
    在这里插入图片描述
    对于我来说最重要的就只是脸而已,别的位置也没什么纹理可言了。

    下面照着图片操作我们就可以得到一张图片,然后我们可以把这图片导到PS中或BodyPaint中进行绘制。
    在这里插入图片描述
    在这里插入图片描述

    随便画了一下以确定 位置。
    在这里插入图片描述
    在3Dmax中创建材质,并把它赋予模型即可。
    在这里插入图片描述
    这个记得打开,不然会以为没有效果。
    在这里插入图片描述
    然后我们得到这样一个效果。
    在这里插入图片描述
    把它拖到Unity中发还是还会贴图丢失了,于是我们其实需要在3Dmax中,把贴图材质和物体都用用相同的名字,然后把贴图先导进Unity,然后再把模型到导进去。就可以看到我们最上面的那个模型效果啦,后面再把UV用手绘板优化一下。

    展开全文
  • unity3d游戏场景制作

    千次阅读 2013-06-13 09:52:06
    运用unity3d熟练,不仅可以更巧妙的熟练制作游戏更重要的是可以做到将自己完美的想象发挥的淋漓尽致。  UniSky是Unity3d的一款模拟环境天气的插件,使用它可以简单的实现呼风唤雨的各种功能。  ...
  • 大家好,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei,今天继续由我为大家带来Unity3D游戏开发系列文章。今天我们来通过Terrain Toolkit来实现地形的制作。尽管Unity3D已经为我们提供了地形绘制...
  • Unity3d游戏制作 建模与蒙皮

    千次阅读 2019-03-15 02:38:30
    最近准备一个人跑一遍制作一个3D游戏的全过程,体验一下所有岗位的工作,在这里把我遇到的问题和解决方案分享给大家,也帮助自己回忆。 3DMax建模 看了一下建模的教程觉,看的时候觉得蛮简单的。真到自己做的时候才...
  • Unity制作塔防游戏

    千次阅读 2018-05-29 15:03:57
    视频地址以及资源需要请留言 相机移动 float mouse = Input.GetAxis(&quot;Mouse ScrollWheel&quot;...transform.Translate(new Vector3(h * speed, mouse * mspeed, v * speed) * Time.deltaTime, Space....
  • Unity3d制作简单拼图游戏源码+工程

    千次下载 热门讨论 2012-08-25 21:25:24
    Unity3d制作的简单拼图游戏 制作流程可以看我的博客:http://blog.csdn.net/cube454517408/article/details/7907247
  • Unity 游戏2048:制作总结

    万次阅读 多人点赞 2016-07-18 23:12:36
    因为游戏2048画面简单,可以自己搞定,于是选择2048游戏作为练手对象。 在动手练习的过程中,自己积累了实践经验,也加深了对unity的理解。 写下此文,作为学习总结。希望和大家交流,彼此促进进步。
  • Unity制作游戏中的场景

    千次阅读 2015-03-11 10:07:47
    Unity制作游戏中的场景
  • Unity3D游戏制作——人物移动逻辑

    千次阅读 2018-03-10 19:29:41
    Unity中移动某个游戏对象有以下两种方式:·更改Transform组件的Position属性;·利用物理引擎(PhyX, Box2D)移动游戏对象。首先我们试着通过调整Transform组件的属性实现游戏对象的移动。在Unity的左手坐标系中,+...
  • 欢迎回来!在第一篇中,我们学会了怎么在U
  • FairyGUI编辑器制作Unity3D UI值得借鉴

    千次阅读 2017-07-31 15:28:01
    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN视频网址:...
  • Unity3d制作简单拼图游戏

    万次阅读 热门讨论 2012-08-25 21:16:16
    本文为原创,如需转载请... 最近一直在使用Unity,对它有了一些小的使用心得 今天写一个简单的拼图游戏实例来和大家分享一下Unity中material.mainTextureOffset和material.mainTextureScale的作用和用法 m
  • unity制作斗地主游戏大致流程

    千次阅读 2015-11-03 09:25:49
    1 导入NGUI包 2 绘制一个斗地主bg图 3 绘制一个斗地主牌 拖成预设 4 添加一个脚本CardsBox:牌预设CardObjPrefab,总共是54张。 绘制牌Init 克隆CardObjPrefab + 给每个牌挂上一个属于自己的Card脚本 ...
  • 关于unity3D棋牌游戏制作,现在处于一个项目之处制作,用到微信登录和微信支付,需要用到微信开放平台,调用接口。第一次接到关于网络多人棋牌游戏的制作,有点压力山大啊。如果有这方面的朋友,希望能够得到你的...
  • 这是一款使用Unity引擎制作2D游戏的入门案例,建议大家接触过3D项目后在来学习,整个工程一共5个类,代码总行数不到200行,非常适合做2D入门案例,简单新颖的玩法,趣味的讲解,快来加入吧!
  • 现在的游戏大体分为2种,要么就是单机游戏,要么就是联网游戏。像现在比较火的游戏,比如手机游戏王者荣耀,比如端游LOL,这些...那么这就是我们今天讨论的话题了:基于NetWork的局域网对战游戏制作。先上效果图: ...
  • 1.有时属于一类应急性的工程,也就不好去定什么风格细节,大致描绘下一个影子轮廓,参考下自己熟悉的游戏资料 更多精彩请点击  http://www.gopedu.com/article  2.为了达到最佳的资源利用,需要有一个模型面数...
  • Unity2D 制作游戏FlappyBird心得—Unity5学习笔记 前些天用Unity2D制作了一个小游戏FlappyBird,算作是计算机图形学这门课的一个小作业了,我用的Unity开发引擎版本是5.4.1_64-bit的,其中有些控件的脚本语法跟...
  • Unity制作格斗游戏核心思路总结

    千次阅读 2019-01-12 23:31:23
    Unity制作格斗游戏核心思路总结 随笔 发表于 3年前 (2016-05-22) 4516次浏...
  • 我的世界 unity3d minecraft 用unity3d制作我的世界的游戏 优化 先来个图搞笑一下:) 随着玩家的位置动态生成地图已经完成,虽然效率还不是很好,但是比起原先一卡一卡的已经好很多了。接下来要做植被什么的,...
  • Unity制作“见缝插针”小游戏

    千次阅读 2018-06-13 18:15:16
    控制小球旋转 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateSelf : MonoBehaviour { //每秒旋转90度 public float speed = 90;... // Update is called on...
  • unity3d制作自己简单游戏场景

    千次阅读 2018-04-10 18:24:19
    下面演示一下如何用unity3d制作一个自己的游戏场景 1. 导入环境资源 Assets -&gt; import packet -&gt; environments 2. 新建terrain 3.在terrain上画上山脉,种树 ,种草 4.对游戏场景...

空空如也

1 2 3 4 5 ... 20
收藏数 195,036
精华内容 78,014
关键字:

游戏制作