Class Functions 1)static function Raycast (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool 在origin坐标上建立一个方向为direction,距离为distance的射线,可以与layerMask(层遮罩)之外的所有的collider碰撞: 返回true如果…
Class Variables类变量 gravity The gravity applied to all rigid bodies in the scene.场景中应用到所有刚性物体的重力. minPenetrationForPenalty The minimum contact penetration value in order to apply a penalty force (default 0.05). Must be positive.两个物体接触碰撞时,物体间最小渗透(穿透)深度…
  ScriptableObject非常适合小数量的游戏数值. 使用ScriptableObject的时候需要注意,生成ScriptableObject数据文件需要自己写Editor代码实现. 大概的工作流程是:写一个ScriptableObject(继承ScriptableObject的类,相当于数据模板) → 使用自己写的Editor代码生成一个实现该模板的数据文件 → Inspector面板中编辑数据. 给出我的Editor代码: using UnityEngine; using Syst…
本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的万能对象池 本节通过一个简单的射击子弹的示例来介绍Transform的用法.子弹射击本身很容易制作,只要制作一个子弹Prefab,再做一个发生器,使用发生器控制按拼了吧产生子弹,即克隆子弹Prefab,然后为每个子弹写上运动逻辑就可以了.这本该是很简单的事情.不过问题来了,发射出去后的子弹如何处理?直接Destroy吗?这太浪费了,要知道Unit…
本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的对象池 本节通过一个简单的射击子弹的示例来介绍Transform的用法.子弹射击本身很容易制作,只要制作一个子弹Prefab,再做一个发生器,使用发生器按频率产生子弹,即克隆子弹Prefab,然后为每个子弹写上运动逻辑就可以了.这本该是很简单的事情.不过问题来了,发射出去后的子弹如何处理?直接Destroy吗?这太浪费了,要知道Unity的Mon…
作者:王选易,出处:http://www.cnblogs.com/neverdie/  欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点推荐.谢谢! Unity3D重要模块的类图 最近刚刚完成了一个我个人比较满意的小项目:[深入Cocos2d-x]使用MVC架构搭建游戏Four,在这个游戏中,我使用了自己搭建的MVC架构来制作一个游戏,做到了比较好的SoC(关注点分离).但是苦于Cocos2d-x没有一个比较完善的编辑器,所以我开始学习另一个非常流行的游戏引擎-Unity3D. Unity3…
本文系作者原创 转载请注明出处 如果是一个2D的平面项目或者说需要在三维空间选择一个物体时(经常表现为抓取物件),我们需要用到Raycast事件 那么首先先说说什么是Raycast 按照字面上来理解的话,就是投射射线=.=的确也是这样 Raycast有几种重载函数,所以按照惯例,先看看官方文档怎么说的 ------------------------------------------------------------------- Physics.Raycast 光线投射 static fu…
在unity3d中用Find可以直接查找组件 例子一: 该脚本时绑在main Camera上的,"/Scene/player"这是在Hierarchy目录下直接找寻Scene   if (Physics.Raycast (ray.origin, ray.direction, hit,10)) { if(hit.transform.name=="player"){ var player = transform.Find("/Scene/player"…
原地址:http://liweizhaolili.blog.163.com/blog/static/16230744201371721511106/ 之前曾经介绍过Unity3D的LightMapping烘焙的用法.单独使用的LightMapping效果很好,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果.这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果.   接下来说一下具体的用法:…
原地址:http://www.cnblogs.com/xuling/archive/2013/03/04/2943154.html 最近开始研究U3D,它的强大就不多说了, 今天研究了研究射线相关东西,总结了些东西放上来,一来做个笔记,二来和大家分享分享!嘿嘿~  如果有不对的地方希望指出哈 !- _ - 进入正题 射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 . 用途:射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)…
原创至上,移步请戳:Unity3D的LightProbe动态光探头用法介绍 之前曾经介绍过Unity3D的LightMapping烘焙的用法.单独使用的LightMapping效果很好,但由于只是把光影烘焙到贴图上面,所以并不会对周围的动态物体产生真正的光照效果.这次来介绍一下LightProbe,这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果.   接下来说一下具体的用法: 首先在场景里面随意的放了一些物体,搭建了一个场景,里面有一盏直射灯,两盏…
物理系统:碰撞器.触发器等 力:有大小有方向的矢量,有受力点位置(和向量的区别) ----F = ma(m质量,a加速度,质量越大,加速度越小,停下来越慢) ----m1v1 = m2v2(冲量守恒定理,质量越小,速度越快) ----力的分解 Ft = mv(动量定理) ----Rigid.AddForce(Vector3.forward, ForceMode mode);写在Start里 ----Force(默认):持续力,完全满足动量守恒定理:Ft = mv ----Impulse:瞬间冲击…
http://www.xiaobao1993.com/231.html 射线是一个无穷的线,开始于origin并沿着direction方向. 当射线碰到物体后.它就会停止发射. 在屏幕中拉一个CUBE,并用鼠标点击它 using UnityEngine; using System.Collections; public class TestRay : MonoBehaviour { void Update() { if (Input.GetMouseButton(0)) { Debug.Log(…
射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 . Ray射线类和RaycastHit射线投射信息类是射线中常用的两个工具类. 用途:射线多用于碰撞检测(如:射击游戏里是否击中目标).角色移动.判断是否触碰到3D世界中的哪些物体对象,进而操作等. 基础API: Ray 射线类 :[使用鼠标拾取或者判断子弹是否碰到對象,需要往特定方向发射射线.方向可能是世界坐标中的一个矢量方向,或屏幕上某一点.针对后者,提供了两个API,如下:] 1.R…
unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被特定的事件调用.最常用的列在下面:Update:这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物理代码.FixedUpd 一. 脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函…
Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Introduce -- 基本介绍 2 EaseType -- 缓冲函数 3 Hashtable Usage -- 哈希表的用法 4 Example -- 例子1- - 抛物线运动 支持 May Be -- 搞开发,总有一天要做的事! 1 Introduce -- 基本介绍 iTween 官网-- iTween…
[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://www.4399.com/flash/127672_3.htm),虽然抄袭了人家的创意,不过我只用来练习(目前还很不成熟,离人家的境界相差很大),坦克.导弹.建筑模型来自网络,应该不会有版权问题吧. 由于模型和代码总共10M以上了,需要源代码和发布的Windows版.网页版程序的同学麻烦支付100元并留下你的邮箱…
这段时间在做Unity的项目,这差不多是我的第一次实战啊~然后公司来了实习的童鞋要学Unity,但是我一向不靠谱啊,所以只能帮他们稍微梳理下基础的东西了啊,唉~学长只能帮你们到这里了~顺便就把自己这两天整理的一些基础知识分享上来了,闲话不多说~ 美术部分:        Unity的话主要还是分两块吧,第一块是美术(自己都不懂~这里允许我稍微带过一下吧~),美术的话主要包括3d模型.材质.纹理(贴图)这几部分吧,当然你也可以说还有shader(着色器),Unity本身拥有几十种shader,也可…
在沙盒游戏里,能自由建造是很重要的特点,比如说风靡全球的<我的世界>,用一个个方块就能搭建出规模宏大的世界.甚至有偏激的人说,没有自由建造,就不是一个真正的沙盒游戏.的确,沙盒游戏的魅力有很大一部分是能自由构建一个游戏世界.看着自己一砖一瓦搭建起一个城堡世界会很有成就感的. 现如今的手游,大多数就是一个争斗和炫耀的世界.不管是传奇类的狂霸拽酷,还是连连看,消消乐等好友排名,就是消费国人的虚荣心.其实,游戏是第九艺术,要上升到艺术的角度.在游戏里,玩家需要一种情感的宣泄和寄托以及体验. 说了这么…
http://blog.csdn.net/yupu56/article/details/50441151 Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0-31).在Unity中可编辑的Layer如下图所示:   在Unity中每个GameObject都有Layer属性,默认的Layer都是Default.在Unity中可编辑的Layer共有24个(8-31层),官方已使用的是0-7层,默认不可编辑! LayerMask实际上是一个位码操作,在Unity3…
http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function GetPixel(x: int, y: int): Color 描述:返回坐标(x, y)处的像素颜色.如果像素坐标超出边界(大于宽/高或小于0),它将给予纹理的包裹模式来限制或重复.如果你正在从纹理中读一个大的像素块,使用GetPixels可能会更快,它将返回整个像素颜色块.该函数只工作在ARGB3…
Unity3D脚本中文系列教程(八) name 对象名称hideFlags 该物体是否被隐藏,保存在场景中或被用户修改继承的函数 GetInstanceID 返回该物体的实例id继承的类函数 operator bool 这个物体存在吗?Instantiate 克隆original物体并返回这个克隆.Destroy 移除一个游戏物体.组件或资源.DestroyImmediate 立即销毁物体obj.强烈建议使用Destroy代理.FindObjectsOfType 返回所有类型为type的激活物体…
◆ static var matrix : Matrix4x4 描述:设置用于渲染所有gizmos的矩阵. 类方法 ◆ Static function DrawCube(center:Vector3,size:Vector3):void 描述:用center和size绘制一个立方体.function OnDrawGizmosSelected() {        //在变换位置处绘制一个变透明的蓝色立方体        Gizmos.color=Color(1,0,0,5);        Gi…
这里来记录下射线检测的相关内容: 射线检测故名就是通过射线去检测是否和碰撞器产生了交集,和碰撞器与碰撞器发生交集一样,会返回一个真. 射线的用法很多:比如检测是否跳跃,通过向地面投射射线控制在地面时候可以跳起. 射击游戏中可以通过定长射线去判断目标物体是否被击中,等 主要用到的工具类是: Physics RaycastHit 光线投射碰撞 Ray 射线 第一种是: Physics.Linecast 线性投射 从开始位置到结束位置做一个光线投射,如果与碰撞体交互,返回真. Debug.DrawLi…
大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 这段时间博主将大部分的精力都放在了研究官方演示样例项目上,主要是希望能够从中挖掘出有价值的东西分享给大家.这样博主和大家能够共同学习.好了,那么今天博主想和大家分享的是自己主动寻路与Mecanim动画系统结合起来实现的一个小案例,希望对大家学习Unity3D能够有所帮助. 博主以前告诉大家.博主是一个仙剑迷,平时学习编程累了的时候,博主就会玩玩仙剑.如图是博主偶尔回去玩玩的<新仙剑OL>…
转载注明smartdot:http://my.oschina.net/u/243648/blog/67193 1.  数学(点乘/叉乘)/unity3d的数学辅助类 2.  坐标系统(本地/世界/屏幕) 3.  Unity3d执行流程 4.  计算角色和目标点的夹角.旋转角色朝向目标点,然后移动角色(样例) 5.  Gizmos/inspector/地图编辑 6.  脚本文件间的数据交互 7.  Yield return/协同线程/事件 8.  Socket 9.  Unity3D调用c++DL…
大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章最后,博主给大家留下了一个问题,就是我们的这样的方法存在一定的问题,无法运用到复杂的模型上. 原因是什么呢?这要从这样的方法的原理上来说.事实上这样的方法相似于摄像机的视角方向上对物体进行了一个投影.这样的话,假设模型被其他物体遮挡的话,就会出现渲染不全然的问题.如图所看到的,有一位朋友在评论中提出…
前文说到碰撞检测时候,不要在Update内部尝试移动GameObject 来检查碰撞检测,这样是徒劳无功.但是 说到 因为你移动的过程中其实并没有将实际的移动位置更新到物理引擎,只是做了个缓存而已, 只有在调用FixedUpdate的内部函数(物理引擎处理)时,才会将最新的位置设置到物理引擎上,甚至是渲染引擎也使用最新的位置. 其实是有问题的,因为我发现每次移动都会导致 碰撞器不断更新 下面是测试代码: ; // Returns true if you were able to move, fa…
Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0—31).在Unity中可编辑的Layer如下图所示:   在Unity中每个GameObject都有Layer属性,默认的Layer都是Default.在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑! LayerMask实际上是一个位码操作,在Unity3D中一共有32个Layer层,并且不可增加. 位运算符 按位运算符:~.|.&.^.位运算符主要用来对二进…
RayCast 射线检测 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 Unity 中射线检测的基本用法为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Raycast -- 射线检测 2 Scritps -- 脚本 3 Effect -- 效果 4 Extend -- 扩展 支持 May Be -- 搞开发,总有一天要做的事! 全文高…