2016-01-07 17:30:07 newbieol 阅读数 862
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    2976 人正在学习 去看看 朱润

在Unity3D游戏开发过程中,UI界面表现有着举足轻重的地位,好的表现效果能让游戏增色不少。要让 UI 精灵图片有独特的表现效果,需要给图片加上特定的 Shader 着色器,这样一来就能让这个图片表现出独特的效果,比如:溶解、消失等等。

然而在Unity3D游戏开发中因为精灵被打包到图集里面,运行起来的效果大相径庭,Shader 里面 uv 坐标不再是单个图片的坐标了,而是图集里面该图片的坐标,使得 Shader 计算错误,最终渲染错乱。

今天我们就先来介绍下简单的处理 Alpha 融合方法,具体代码如下:

using UnityEngine;

using UnityEngine.UI;

public class VertIndexAsUV1 : BaseMeshEffect

{

public override void ModifyMesh(VertexHelper vh)

{

if (!IsActive())

return;

UIVertex vert = new UIVertex();

for (int i = 0; i < vh.currentVertCount; i++)

{

vh.PopulateUIVertex(ref vert, i);

vert.uv1.x = (i >> 1);

vert.uv1.y = ((i >> 1) ^ (i & 1));

vh.SetUIVertex(vert, i);

}

}

}

今天的知识点总结就先到这里,若还有不明白的欢迎到菜鸟在线观看Unity3D游戏开发课程,也可留言。每次的分享都是根据大家的留言总结的,所以想知道什么就得积极互动哦!

2019-05-17 21:38:30 zxm_jimin 阅读数 4732
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    2976 人正在学习 去看看 朱润

Unity3D_最简单的开始界面_结束界面

开始界面

1、创建一个新的场景
添加button
在这里插入图片描述
2、C#脚本
LoadingGame.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LoadingGame : MonoBehaviour
{
    public void LoadGame()
    {
        Application.LoadLevel("mianScene");
    }
}

3、建一个空对象
将LoadingGame.cs拖入
在这里插入图片描述
在这里插入图片描述
4、添加到button中
在这里插入图片描述
5、在Building Settings中加入两个场景

在这里插入图片描述

然后就可以尝试运行啦~

结束界面

同理——结束界面
endGame.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class endGame : MonoBehaviour
{
    public void EndGame()
    {
        UnityEditor.EditorApplication.isPlaying = false;
        Application.Quit();
    }
}

调用

Application.LoadLevel("endGame");
2016-01-05 18:22:12 newbieol 阅读数 550
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    2976 人正在学习 去看看 朱润

  前面小编简单介绍了下Unity3D游戏开发界面各种窗口的简单设置,有不少学员留言想知道“Wide窗口”怎么布局。其实很简单,小面小编就将方法整理如下。


  在介绍主题前,我们还是先来瞧瞧Unity3D游戏开发界面都有哪些布局:


  打开Unity3D游戏开发软件,一般看到的就是默认的窗口布局;


  击菜单栏上的“Window”菜单,在下拉框中选择“Layouts”选项,可以看到“2 by 3”、“4 split ”、“Default”、“Tall”、“Wide”等多种视图,开发者可以根据自己的喜爱自行选择。


  对于默认窗口、“2 by 3”、“4 split ”、“Default”、“Tall”、“Wide”等视图的设置,我已经在前面介绍过,大家可以查看以前的文章进行查看,或是到菜鸟在线官网上寻找答案。


  好了,接下来我们再来讲讲上面提到的“Wide窗口”怎么布局。


  点击菜单栏上的“Window”菜单,在下拉框中选择“Layouts”-->"Tall",将展示“Tall”窗口布局,此视图将“Hierarchy”视图与“Project”视图放置在“Scene”视图的下方。


  如果大家还想了解Unity3D游戏开发的其他相关知识,欢迎跟我互动留言,或是关注我以前发布的文章。另外,菜鸟在线官网上还有Unity3D教程,大家想多学习的话可以去看看,定会有帮助的。

2014-07-20 00:10:25 han1202012 阅读数 8004
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    2976 人正在学习 去看看 朱润



一. 工作区域详解


1. Scence视图 (场景设计面板)


scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置;

-- 示例 : 创建一个球体, 控制摄像机, 让球体在摄像机拍摄的视图中显示出来;




(1) 摄像机导航


摄像机旋转(Tumble) : alt + 鼠标左键, 摄像机会按照鼠标滚动的垂直中线进行旋转, 可以查看摄像机当前的状态, 注意只是改变视图中的状态, 摄像机还是在视图正中央位置, 摄像机的位置属性是不变的;

摄像机移动(Track) : alt + 鼠标中键, 移动摄像机到视图中的其它位置, 注意只是改变视图中的位置, 摄像机的实际坐标是不会改变的;

缩放视野(Zoom) : alt + 鼠标右键/滚轮, 缩小放大摄像机视野;

穿越模式(Flythrough) : 鼠标右键 + A/S/D/W, 第一人称模式在场景中移动, 鼠标控制前进方向, WASD控制 左 前 后 右 方向;

居中(Center) : F 键, 在 Hierarchy 面板中选中对象, 按 F 键, 即可将选中的对象居中;


(2) 摄像机视角


Persp工具 : 在场景视图的右上角有一个 Persp 工具, 可以对该工具操作 切换摄像机视角;



顶视图 : 单击 y , 就会进入顶视图模式;



侧视图 : 单击 z 进入侧视图;



正视图 : 单击 x 进入正视图;



透视视图 : y 轴在上, 使用 alt + 鼠标左键, 调整到透视视图;




(3) 高级视图操作


在设计面板中有一个工具栏



绘制模式 : 控制对象的绘制, 默认 Textured 模式, 使用指定的颜色 或 贴图绘制对象;

-- Wireframe 模式 : 显示对象的物理网格;

-- Tex Wire 模式 : 把对象的贴图 和 它们的线框叠加在一起;



渲染模式 : 对对象进行微调, 优化; 

-- 默认 RGB 模式 : 带颜色的方式显示所有对象;

-- Alpha 模式 : 使用对象的 Alpha 值(灰度显示) 显示对象;

-- OverDraw 模式 : 显示场景中有多少时间消耗在重复绘制上;

-- Mipmaps 模式 : 显示对象使用的最理想的贴图大小;



场景光照 : 切换光照方式, 方式一 使用默认的内置光照, 方式二 使用开发者设置的光照;


(4) 对象变换 (Object Transform)


对象变换 : 处理选中对象的位置, 旋转 和 大小, 主要有以下两种修改方式;

-- 属性查看器修改 : 在 Inspector 视图中输入新的属性值, 可以进行变换;

-- 变换工具修改 : 通过变换工具;


通过属性查看器修改 : 选中 Camera, 可以在 Inspector 视图中查看 Camera 属性, 其中的 Transform 属性就是摄像机的 位置, 旋转 和 缩放属性;




改变位置

-- 通过拖动属性坐标轴修改(位置改变) : 选中 Camera 对象之后, 在Scence 视图中Camera 会出现三个坐标轴, 可以使用鼠标拖动 Camera 沿着某一条坐标轴移动;



-- 自由拖动对象(位置改变) : 点击 对象 的 中心位置, 可以自由拖动, 但是不精确;


旋转 : 选中 对象, 按 E 键, 或者点击工具栏的旋转图标, 使用鼠标拖动即可进行旋转操作;



缩放 : 选中物体, 按 R 键, 或者 点击工具栏的 缩放工具, 使用鼠标拖动坐标轴 即可 在这个坐标轴方向进行缩放;




2. Game视图 (游戏预览面板)


Game视图 : 显示摄像机拍摄的内容, 是摄像机朝向的内容;



播放控件


-- 运行游戏 : 激活预览面板, 开始游戏;

-- 暂停游戏 : 使运行中的游戏暂停, 再次点击该按钮 从 暂停处继续运行;

-- 单帧运行 : 游戏 一帧 一帧 的移动, 主要用于调试bug, 错误等;


游戏预览面板控制栏


-- Aspect (任意显示比例下拉列表) : 改变 Scence 视图的显示比例, 默认为任意比例显示, 在为不通大小的界面制作游戏时使用;


-- Maximize on Play(最大化) : 将Scence 视图扩大到整个视图中;

-- Gizmos 工具 : 切换游戏中 绘制 和 渲染 的所有工具;




3. Hierarchy 视图 (游戏组成对象列表)


Hierarchy视图 : 存放游戏对象 和 文件;



创建对象 : 点击 create 按钮可以创建 游戏场景内的 物体对象;

删除对象 : 选中对象之后 按 Delete 键, 即可删除对象;


对象的父子关系 : 父子关系就是将无关对象建立分组, 位于一个单一的对象之下, 父对象包括的对象叫做 孩子对象;


-- 作用 : 对父对象进行移动 缩放 旋转操作, 其下的孩子对象也进行同样的操作;


添加光照 : 球体创建好后, 在Game视图中却只能看到 一个圆, 这是因为我们没有创建 光照;

-- 创建定向光 : 选择 create 创建对象, 创建 Directional Light 之后, 之后可以看到 Game 中的 3D 效果;


-- Game效果





4. Project视图 (项目资源列表)


Project视图 : 存放一些游戏资源 (脚本, 对象, 场景, 文件等),;

-- Assets目录 : 开发者创建 和 导入的资源 都放在该目录下, 包括 贴图, 脚本 Camera 等;


给游戏中的对象涂装 : 给游戏对象改变颜色, 可以在Project视图中创建一个材质, 然后将材质赋给对象;
-- 创建材质 : 点击 Project 视图的 create 按钮, 选择材质;


-- 给材质选择颜色 : 在 Assets 中选中刚创建的材质;


-- 选择颜色 : 这时 Inspector 视图中会出现材质的属性, 点击 Main Color 按钮, 可以选择材质的颜色;

      

-- 为将材质赋给对象 : 直接将 Assets 中的材质 拖拽到 Hierarchy 视图中的对象上即可, 效果如下 : 





5. Inspector 视图 (属性查看器)


在这个视图中可以修改Game视图的颜色, 以及Scence 视图的属性;


设置Game视图的颜色 : 选中摄像机, 然后在 Inspector 视图中会出现下面的内容, 点击Background 会出现 右图;

     

改变后的效果 : 




Transform属性 : 选中球体, 在 Inspector 视图中会看到以下信息;

-- Position : 选中物体的位置坐标;

-- Rotation : 选中物体的角度;

-- Scale : 选中物体的缩放大小;




二. 入门示例一 - 第 一/三 人称控制游戏


1. 制作地形


(1) 引入地形 


Project 视图中, 右键点击 Assets, 选择 Import Package --> Terrain Assets (地形), 下面是 引入的地形资源;



(2) 移动摄像机到正常位置




(3) 编辑地形


在 Hierarchy 视图中选中 Terrain 地形, 在 Inspector 中可以对地形进行操作;


地形隆起操作 : 点击刷子, 在地形上进行操作;





让地形变得圆滑 : 上图中 红框中的 山地比较尖锐, 使用 第三个工具可以使地形变得圆滑;


-- 圆滑效果




(4) 移动摄像机到合适的位置


移动摄像机 : 点击 Hierarchy 视图中的 Main Camera 对象, 调整摄像机的位置, 使摄像机能够完整的拍摄地形;



摄像机拍摄的地形效果




(5) 为场景贴图


导入场景贴图 : 在 Project 视图中, 右键点击 Assets, 选择 Import Package --> Terrain Assets, 下面是导入的地形纹理;



为地形添加纹理 : 在Hierarchy 视图中选中 Terrain(地形) 对象, 在 Inspector 视图中会显示 地形的属性;

-- 点击 Inspector 视图中的 Edit Textures, 选择 Add Texture, 在弹出的 Add Terrain Texture 对话框中选择对应的贴图;     


纹理贴图效果




(6) 添加天空盒


在上图中没有天空, 不是很美观;


配置天空盒 : 选择菜单栏 Edit --> Render Settings --> Inspector视图 --> skybox material;



选择天空盒 : 在弹出的 Select Material 对话框中选择天空盒;



最终效果




2. 第一人称控制


(1) 导入角色控制包


右键点击 Project 视图中的 Assets, 选择 Import Package --> Character Controller, 全部导入;




(2) 在 Scence 视图添加第一人称控制


删除摄像机 : 摄像机需要删除, 因为第一人称视角就是摄像机, 如果有摄像机的话就不会出现第一人称视角了, 这里将摄像机在 Scence 视图中删除;


设置第一人称控制 : 将第一人称控制拖拽到 Scence 视图中, 调整坐标, 注意 y 轴坐标必须大于0, 也就是必须在地平面以上, 否则会掉下去;





游戏效果 : 进入 Game 视图, 可以进行游戏体验, 与 CS 差不多, 可以跳跃, 行走, 鼠标控制方向;





3. 第三人称控制 


将第三人称角色拖拽到 Hierarchy 视图中 : 在 Scence 视图中调整 角色位置;



选择摄像机



效果




三. 入门示例二 - 篮球场景



1. 创建篮球场


(1) 创建长方体


创建过程 : GameObject --> Create Other --> Cube, 创建长方体;



查看自己创建的长方体 : 在 Hierarchy 视图中, 双击刚才创建的 Cube 长方体, 就可以在 Scence视图中定位到这个 Cube上; 



(2) 调整 Cube 大小


将Cube调整成篮球场比例的大小 : 根据下面截图进行调整;



(3) 为篮球场添加纹理


导入纹理图片 : 选择菜单栏 Assets --> Import New Assets, 在弹出的对话框中选择要导入的纹理资源图片;

 


创建新的纹理 : 在 Project 视图中, 选择 create 创建一个新的纹理;



为篮球场添加纹理

-- 显示属性 : 在 Hierarchy 视图中选择 Cube; 

-- 选择材料 : 在 Inspector 视图中的 Materials 中选择之前创建的纹理; 

-- 选择纹理 : 然后在 下面的 纹理属性中选择 刚才的篮球场 纹理贴图图片;




2. 创建篮球


(1) 创建球体


创建过程 : 菜单栏 GameObject --> Create Other --> Sphere (球体);



调整大小位置姿态 : 按照下图中的数据进行调整;



(2) 为篮球添加纹理


添加纹理过程

-- 创建一个新的材料 : 在 Project 视图中, 选择 create --> Materal;

-- 显示属性 : 在 Hierarchy 视图中, 点击 Sphere 对象, 在 Inspector 视图中显示出 球体的属性;

-- 选择材料 : 点击 Inspector 视图中的 Material 中的圆点, 选择刚创建的材料;


-- 选择纹理 : 点击 材料中的 纹理图片上的 Select 按钮, 弹出对话框选择纹理;



篮球对象已添加完毕




3. 添加光源和摄像机


(1) 创建光源


创建过程 : 选择 菜单栏 GameObject --> Create Other --> Directional light (平行光);



(2) 调整光源姿态和强度


根据下图中的参数调整



(3) 调整摄像机参数


调整摄像机参数, 背景颜色, 视角大小



4. 为篮球添加动作


(1) 导入材料包


导入材料包 : 菜单栏 Assets --> Import Package --> Physic Materials;



(2) 为篮球添加刚体属性


添加过程 : 在 Hierarchy 视图中选中篮球, 然后选择 菜单栏 Component --> Physic --> Rigidbody;



(3) 为篮球添加球体碰撞者


添加过程 : 在 Hierarchy 视图中选中球体, 选择菜单栏 Component --> Physic --> Sphere Collider;



(4) 为篮球添加弹性属性


添加过程 : 选择 球体属性的 Sphere Collider属性, 选择材料 Material --> Bouncy (弹性);



5. 运行示例


点击Game视图中的运行按钮


.


2016-02-27 18:27:34 newbieol 阅读数 2762
  • unity3D 六周带你开发《王者荣耀》

    本课程介绍如何使用unity3D 制作一款5V5MOBA爆款手游《王者荣耀》,教程详细讲解了王者荣耀4大核心功能点,其中包括unity常用界面的讲解使用、动画机的使用、防御塔的制作、战斗场景的搭建、小兵的制作、子弹移动控制、英雄的制作及开始/局结束界面制作、技能实现、血条制作、UI页面使用、商店背包制作等等。

    2976 人正在学习 去看看 朱润

  本文介绍了两种在Unity中获得相机图像的方法:

  1.使用image 类

  2.使用图像作为OpenGL的纹理

  使用image类

  使用image类更像是原生版本。

  1.注册所需的图像格式使用CameraDevice.SetframeFormat 方法:

  CameraDevice.Instance.SetframeFormat(Image.PIXEL_FORMAT.RGB888, true);

  2.在QCARBehaviour运行之后调用此方法

  使用Unity的脚本排序功能,或在一个更新的回调中做一次。

  3.使用CameraDevice.GetCameraImage方法检索图像。

  在 ITrackerEventHandler.OnTrackablesUpdated 的回调中执行这样的行为。这样您就可以确保您检索当前帧的最新的摄像机图像。

  一定要确保相机的图像不是空的,因为在注册了图像格式之后,图像会在几帧之后才可用。

  这里是完整的脚本:

  using UnityEngine;
  using System.Collections;
  public class CameraImageAccess : MonoBehaviour
  {
  private Image.PIXEL_FORMAT m_PixelFormat = Image.PIXEL_FORMAT.RGB888;
  private bool m_RegisteredFormat = false;
  private bool m_LogInfo = true;
  void Start()
  {
  QCARBehaviour qcarBehaviour = (QCARBehaviour) FindObjectOfType(typeof(QCARBehaviour));
  if (qcarBehaviour)
  {
  qcarBehaviour.RegisterTrackablesUpdatedCallback(OnTrackablesUpdated);
  }
  }
  public void onTrackablesUpdated()
  {
  if (!m_RegisteredFormat)
  {
  CameraDevice.Instance.SetframeFormat(m_PixelFormat, true);
  m_RegisteredFormat = true;
  }
  if (m_LogInfo)
  {
  CameraDevice cam = CameraDevice.Instance;
  Image image = cam.GetCameraImage(m_PixelFormat);
  if (image == null)
  {
  Debug.Log(m_PixelFormat + " image is not available yet");
  }
  else
  {
  string s = m_PixelFormat + " image: \n";
  s += " size: " + image.Width + "x" + image.Height + "\n";
  s += " bufferSize: " + image.BufferWidth + "x" + image.BufferHeight + "\n";
  s += " stride: " + image.Stride;
  Debug.Log(s);
  m_LogInfo = false;
  }
  }
  }
  }

  使用OpenGL的纹理

  image类提供了一个摄像头像素的字节数组。这种方法对一些图像处理任务是有用的,但有时更好的是作为一个OpenGL纹理来找到它。你可以获得的图像的OpenGL纹理使用范例backgroundtextureaccess 中的方法。

  1.注册一个Texture2D对象在每一帧充满摄像头像素,而不是让vuforia渲染相机本身在每一帧渲染图像。

  2.看范例中的readme.txt(在assets文件夹)中的两种方式使用这种方法渲染相机图像。

没有更多推荐了,返回首页