unity

蜂窝状网格的定位方法

隐身守侯 提交于 2019-11-28 04:47:37
所谓蜂窝状网格,也就是由多个六边形组成的类似蜂窝的网格,在一些游戏地图编辑器,手机触摸屏,泡泡龙游戏等场景可以看到使用这种蜂窝网格。对于普通的矩形网格来说(例如俄罗斯方块,贪吃蛇的棋盘),由于屏幕和位图在逻辑上的点阵模型,使得矩形网格的定位非常简便。矩形网格如果按照边连接,具有 4 临域(上下左右),而按照顶点连接,具有 8 临域(在前者基础上加上对角线);蜂窝网格的行间是一种错位关系,这使得我们编程建立数据结构模型时带来一点不便。下面仅从直观观察描述该网格(实际编程实现时还需要根据具体情况而定)。蜂窝网格具有 6 临域,例如在下面的图中,就是左,右,上偏左,上偏右,下偏左,下偏右。当我们把蜂窝网格的数据也用数组存储时,蜂窝网格的临域和存储结构有关。如下图在行间交错的情况下,6 临域是在 8 临域 的基础上去掉了两个元素(去掉的元素根据所在奇数行和偶数行有所不同),在编程时这些是需要注意的地方。   蜂窝网格的捕获并不是那么直观的,本文将讲解如何在蜂窝网格定位,换句话说,也就是给定一个屏幕坐标,需要判断哪个网格被该坐标选中。首先我们来看蜂窝网格定位的原理,由下图所示: 在上面的蜂窝网格上,我用蓝色线条绘制了一张矩形网格(暂时称为网格A)。并用蓝色圆点在图上标记了每个蜂窝网格的中心点。我们根据给定的坐标(x,y)可以首先定位到网格A中的某个矩形网格,然后观察“网格A”和“蜂窝网格

关于Unity 动画绘制原理

别等时光非礼了梦想. 提交于 2019-11-28 01:15:35
动画绘制的原理:现在屏幕中确定动画的显示区域,然后将动画中的每一帧图片按固定的时间在这个区域中按顺序切换,从而实现动画的效果。建立文件夹 Textures ,里面放上图片,此处我截了三张图,风怒的小鸟图片放在该文件夹下,运行结果如下图,点击相关按钮小鸟做相关移动,脚本如下: private var anim:Object[];// 动画数组 private var nowFram:int;// 帧序列 private var mFrameCount:int;// 动画帧总数 private var fps:float=5;// 限制一秒多少帧 private var time:float=0;// 限制帧的时间 var x:int; var y:int; var tex:Object[]; var bg:Texture2D;// 背景图片 function Start () { anim=Resources.LoadAll("Textures");// 得到帧动画中所有图片资源 mFrameCount=anim.Length;// 得到动画有多少帧 bg=Resources.Load("next_bg"); } function Update () { } function OnGUI(){ // 绘制背景图片 GUI.DrawTexture(Rect(0,0,Screen

Unity 渲染教程余下

瘦欲@ 提交于 2019-11-28 00:57:13
可能来源于(英文): https://catlikecoding.com/unity/tutorials/ Unity渲染教程(一):矩阵   http://gad.qq.com/program/translateview/7181958 Unity渲染教程(二):着色器基础 https://www.jianshu.com/p/7db167704056 Unity渲染教程(三):使用多张纹理 https://www.jianshu.com/p/0e71516f64f7 Unity渲染教程(四):第一个光源 https://www.jianshu.com/p/64d5f6ac15a1 Unity渲染教程(五):多个光源 https://www.jianshu.com/p/c1a9a5d27765 Unity渲染教程(六):凹凸度 http://gad.qq.com/program/translateview/7173935 Unity渲染教程(七):阴影   http://gad.qq.com/program/translateview/7173984 Unity渲染教程(八):反射    http://gad.qq.com/program/translateview/7173985 Unity渲染教程(九):复杂材质 http://gad.qq.com/program

unity shader 剔除指定的颜色

社会主义新天地 提交于 2019-11-28 00:50:35
Shader "MyShader/PaintingBGTransparency" { Properties{ _MainTex("Base (RGB)", 2D) = "white" {} _FilterfColor("Ridof (RGB)",Color) = (1,1,1,1) } SubShader{ Tags { "RenderType" = "Opaque" } Blend SrcAlpha OneMinusSrcAlpha pass { CGPROGRAM #pragma vertex vertext_convert #pragma fragment fragment_convert #include "UnityCG.cginc" sampler2D _MainTex; sampler2D _MainTex1; float4 _FilterfColor; struct Inputvrite { float4 vertex : POSITION; float4 texcoord : TEXCOORD0; }; struct Inputfragment { float4 pos : SV_POSITION; float4 uv : TEXCOORD0; }; float ColorLerp(float3 tmp_nowcolor,float3 tmp

Unity Shader内置矩阵之美

≡放荡痞女 提交于 2019-11-28 00:47:59
mul函数 mul函数,Z = mul(M, V)是表示矩阵M和向量V进行点乘,得到一个向量Z,这个向量Z就是对向量V进行矩阵变换后得到的值。 特别需要注意的是,例如normal是float3类型的,点乘的矩阵也要转换成float3x3。 float3 normal=mul((float3x3)UNITY_MATRIX_IT_MV,v.normal); 矩阵 内置的矩阵(float4x4): 1、这里要特别说明一下UnityObjectToClipPos(v.vertex)) 方法,官方网站上说明,编写着色器脚本时,请始终使用UnityObjectToClipPos(v.vertex)而不是mul(UNITY_MATRIX_MVP,v.vertex),因为所有内建的矩阵名字在Instanced Shader中都是被重定义过的,如果直接使用UNITY_MATRIX_MVP,会引入一个额外的矩阵乘法运算,所以推荐使用UnityObjectToClipPos / UnityObjectToViewPos函数,它们会把这一次额外的矩阵乘法优化为向量-矩阵乘法。 2、UNITY_MATRIX_IT_MV的使用场景,专门针对法线进行变换。但是为什么法线的变换和顶点不一样呢? 之所以法线不能直接使用UNITY_MATRIX_MV进行变换,是因为法线是向量,具有方向,在进行空间变换的时候

全新的Unity跨平台开发 IDE JetBrains Rider 2019.2 x64特别版下载

元气小坏坏 提交于 2019-11-27 23:51:23
Rider 基于 JetBrains 的平台,JetBrains 的平台很受那些使用 IntelliJ IDEA 的 Java 开发者和使用 WebStorm 的 JavaScript 开发者的欢迎。Rider 的主要 .NET 组件是 ReSharper,ReSharper 是 Visual Studio 的一个独立语言服务器扩展组件,它提供了代码分析、代码补全、代码重构、代码修复等功能。Rider 可以在 Windows、Mac 和 Linux 上运行。 强大的跨平台 C# 编辑器 JetBrains Rider 是一款快速强大的 C# 编辑器 ,用于在 Windows、Mac 和 Linux 上进行 Unity 开发。 以无与伦比的 2500 多项智能代码检查和重构,Rider 增强您的 C# 体验,使您更加迅速编写零误差的代码。 Unity 轻松开始 Rider 有内置的 Unity 支持,当你初次打开 Unity 解决方案时 它会自动将 Unity 配置为使用 Rider 作为默认的 C# 脚本和 shader 文件编辑器。 完成设置后,之后双击 C# 脚本或 shader 资产,即可在 Rider 中打开解决方案。 控制Unity 编辑器 由于集成的双向通信,无需离开 Rider,您即可切换进出 Play 模式,暂停,和逐帧执行! 工具条包含游戏视图按钮 Play

unity延时方法Invoke和InvokeRepeating

心已入冬 提交于 2019-11-27 23:41:47
MonoBehaviour 里面有两个内置的延时方法 Invoke 1 2 3 Invoke(methodName: string , time: float ): void ; methodName:方法名 time:多少秒后执行 InvokeRepeating 1 2 3 4 InvokeRepeating(methodName: string , time: float , repeatRate: float ): void ; methodName:方法名 time:多少秒后执行 repeatRate:重复执行间隔 还有两个重要的方法: IsInvoking:用来判断某方法是否被延时,即将执行 CancelInvoke:取消该脚本上的所有延时方法 下面是代码笔记: using UnityEngine; using System.Collections; public class DelayScript : MonoBehaviour { //当前时间 private float nowTime; //执行重复方法的次数 private int count; // Use this for initialization void Start () { nowTime = Time.time; Debug.Log("时间点:"+nowTime); this.Invoke(

unity ml agents 环境安装

﹥>﹥吖頭↗ 提交于 2019-11-27 23:15:40
前不久推出了 ml agents 3.0,想着学习看看,开始先安装环境。 按照 官方给出的 demo 安装,依然避免不了踩坑。 官方 windows 安装: 官方 github windows https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation-Windows.md 1. 官方安装的 是 Anaconda,python的一个发行版,我之前学python 的时候已经安装了一个python 3.6,就没再安装Anaconda了 2. 然后开始安装各种库,首先就是 tensorflow,这个和最后安装的tensorflow -gpu 类似,前者 cpu 版本,后者 gpu 版本。需要翻墙才能顺利安装。。。pip3 install --proxy http://127.0.0.1:1080 tensorflow 3.从官方github 下载安装所需库 pip install . 4. 下载 cuda 进行安装,安装版本为8.0 ,地址: cuda 下载地址 https://developer.nvidia.com/cuda-toolkit-archive 下载 cuDNN 进行安装,需要进行开发者注册才行,安装版本6.0,he cuda 8.0 匹配,地址: cuDNN 下载地址

最新!Unity ml-agents v0.5 环境配置——平衡小球项目(包含TFSharpPlugin.unitypackage)

别等时光非礼了梦想. 提交于 2019-11-27 23:15:14
现在unity的插件ml-agents供开发者,将机器学习运用到unity的项目中。 参考视频: https://www.bilibili.com/video/av34659627?t=206 TFSharpPlugin插件地址:https://pan.baidu.com/s/1MSzhF_iH6_UOME4WybsVyg 提取码:5tvp 第一阶段:配置环境 1.下载Unity(本文章用的是Unity 2018.2.14f1 (64-bit)): https://unity3d.com/cn/unity 2.从GitHub上下载ml-agent插件: https://github.com/Unity-Technologies/ml-agents 3.下载anaconda来简介安装Python(下载最新的就可以): https://www.anaconda.com/download/ 记得在选项中勾选第一个,自动配置环境变量,或者根据参考视频设置环境变量。 下载完成后记得打开Anaconda Navigator一次然后再关闭。 4.打开Anaconda Prompt输入以下命令(2018.10.30 ml-agents仅支持这个版本的Python3.6) conda create -n ml-agents python=3.6 中间需要输入 y 然后回车。然后激活工作环境:

ML-Agents 0.8.1+Unity2018.3.3 深度学习开发环境搭建和测试 【2019年4月更新】

筅森魡賤 提交于 2019-11-27 23:15:03
Unity 机器学习 ML-Agents (一)官方介绍概念【必读】 配置Unity机器学习代理工具和TensorFlow环境(Windows 10) 需要注意安装的版本保持一致 。 新版环境搭建参考: https://blog.csdn.net/TianyangQiao/article/details/88284025#3_NVIDIA_114 https://blog.csdn.net/weixin_44095128/article/details/88664928 目前使用的 Unity ML-Agents Toolkit 更新到0.8.1。 注意查看官方微信公众号推送的最新更新消息。 安装ML-Agents遇到的问题记录: 按照Unity2017年官方教程搭建过程提示出现的找不到库,是由于Anaconda3的“pip install tensorflow-gpu”命令获取的tensorflow版本更新为Tensorflow gpu 1.13.1。所以我们需要下载安装对应的新版本的CUDA10.0 和CUDNN10.0。 其它安装步骤和过程和官方介绍一致,照做即可。 老方法安装tensorflow-gpu报 ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file