在我们游戏开发过程中,碰撞检测函数的使用十分频繁,比如射击游戏检测子弹是否碰撞到敌人触发敌人掉血、受伤等状态,生存类游戏中常见的走到门前,通过碰撞检测来控制自动开关门等。碰撞检测函数在unity的中有两个用于碰撞检测的函数1. OnTriggerEnter(Collider other){ }2. OnCollisionEnter(Collision collision){. }
网上查了一下UnitySetActive变化事件没有找到,我想到用另一种思路来实现这个事件通知,它可用来调试是何处把某个gameobject隐藏掉了 Unity提供了这两个函数,OnEnable,OnDisable,当SetActive时会调用这两个函数,所在这两个函数中发出事件就可以实现想要的效
原创 2021-07-20 17:12:14
1132阅读
新建地形:在菜单中新建一个地形。 Unity3D教程:设置地形(Terrain)会看到Terrain对象。如果要修改地形参数,可以在Terrain菜单下的SetResolution中设置。 Unity3D教程:设置地形(Terrain)如上图所示。地形的参数设置:TerrainWidth:全局地形总宽度。其单位为Unity统一单位-米。TerrainHeight:全局地形允许的最大高度,单位为
unity中有一些知识点比较碎,每次用到的时候都要去网上查,实在有些浪费时间,把这些知识点集中到一起倒是不错的想法,下面就是一些琐碎的知识点,以后会逐渐更新...1,gameObject.active 表示是否在场景中停用改物体,当active=false的时候,GameObject无法find此物体,表现在编辑器中就是物体的Inspector里面显示对号没有勾选,如果开始的时候active=tr
这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点处理“一项。这里的几何体就是指组成场景中对象的网格结构。   3D游戏制作都由模型制作开始。
最近在学unity shader,学到SubShader的Tag的时候尤其是对于RenderType很模糊,网上文章看了半天也没有一个具体的解释,于是自己仔细阅读官方文档后,算是明白了些,所以写出来为一些还不明白的shader初学者作为参考Subshaders使用标签来告诉unity何时去渲染,tag有好几种,最常见的有俩种”Queue”和”RenderType”;“Queue”:渲染顺序队列物体
一般游戏逻辑调试的时候用的都是VS调试工具来进行调试1.在Unity脚本中启动调试后并不会立刻开始调试,还需要我们在Unity中点击play(游戏运行)后调试才会开始进行 2.在调试的时候点击f11可以逐语句调试,同时当我们在调试的时候想要查看某个值或者某个组件设计到的数值的时候,我们可以点击右键,然后点击添加监视此时在下面就会出现一个监视窗口,在监视窗口中我们可以输入想要监视数值的变量
Unity防bug指南从这里开始,我们将会讨论Unity游戏编程中一些常见的非预期情况,以及相应的防范与应对策略。一. 【我血条呢??】——组件查找与组件依赖(本章对于有经验的Unity使用者而言可能太过简单了。如果你认为没有什么值得注意的,可以直接前往下一章。)1.1 获取游戏组件在Unity中,相信大家都了解一个极为常用的方法:GetConponent<T>此方法用于查找并返回游戏
转载 5月前
47阅读
 众所周知moba中的每个英雄都有一套自己的技能的攻击范围方式,有如廉颇一样的圆形范围,有火舞一样的直线范围,吕布的扇形方天戟范围,还有上图的牛魔大招时的矩形范围等等。    一些技能是通过物理的碰撞检测来判断的,一些则是通过这样的范围来检测的。物理检测的诟病就在于开销过大,在能考虑不用物理来检测的情况下更倾向来自己通过算法模拟实现。小菜的学习研究
数据结构和算法很重要!图形学也很重要!大的游戏公司很看重个人基础,综合能力小公司看你实际工作能力,看你的Demo。 1.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。主要步骤有:本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->
有些程序要求必须联网才可以运行。如何在unity中进行检测当前运行程序的环境是否连接到网络?新建一个场景,先在log里来显示内容。将脚本ChinarWeb挂载到相机上。下面是脚本内容:using UnityEngine; using System.Net.NetworkInformation; using System.Runtime.InteropServices; using Ping = S
原创 精选 10月前
565阅读
在UGUI中,EventSystem实现了所有关于交互方面的功能,和NGUI不一样的地方是,我们终于可以摆脱添加Box Collider了!下面我们来学习一下。对于按钮来说,直接有onClick的事件,我们可以直接在编辑器中方便的通过拖拽来实现响应函数的赋值,这点和NGUI是一样的,如下:Event TriggerEvent Trigger和NGUI中的Event Trigger功能保持一致,即使
转载 22天前
35阅读
有些程序要求必须联网才可以运行。 如何在unity中进行检测当前运行程序的环境是否连接到网络? 新建一个场景,先在log里来显示内容。 将脚本ChinarWeb挂载到相机上。下面是脚本内容:using UnityEngine; using System.Net.NetworkInformation; using System.Runtime.InteropServices; using Ping
原创 10月前
207阅读
文章目录一、键盘输入二、鼠标输入三、触屏输入四、手柄输入五、其他输入六、说明 新输入系统提供了对应的输入设备类,帮助我们对某一种设备输入进行检测 一、键盘输入using UnityEngine.InputSystem; Keyboard keyBoard = Keyboard.current;(一)单个按键按下抬起长按// 按下 if (keyBoard.enterKey.wasPress
今天从群里的大神口中又套出了一句隐藏游戏物体的方法 gameObject.setActive=(false);这个方法可以使指定的游戏物体隐藏掉!
原创 2016-07-20 18:59:30
9141阅读
public class ObjectPoolManager : Singleton<ObjectPoolManager> { private class InternalPool { private Stack<GameObject> m_pool; private int m_poolDepth; private GameObject m_p...
原创 2021-11-18 16:44:46
781阅读
GameObject属性GameObject.activeSelf 是否活动该属性是一个只读属性我们可以通过打印日志的方式看到运行的结果Debug.Log(gameObject.activeSelf);GameObject.tag 标签该属性是一个可读可写的属性//访问游戏对象的标签 Debug.Log(gameObject.tag);如果要通过代码对游戏对象修改tag值,确保已经在标签列表中添加
1 制作步骤(接上篇)1.3 脚本控制a). 首先在ChoosePanel内新建一个empty object,作为ChoosePanel的子物体,以CenterToCompare命名,此物体的位置是作为每个元素距离显示的Panel的标准点,即选择哪个元素是通过哪个元素与该CenterToCompare距离的远近判定的。b). 在Assets的Script中创建一个C#脚本,命名为SnapCharM
要使用射线检测,物体必须是触发器或者碰撞器。 什么是触发器,碰撞器请看射线检测函数在Physics 类中。由于射线无法看见,调试起来非常不方便。Unity 给我们提供了一个画射线的方法Debug.DrawRay,便于调试。Debug.DrawRay需要在Update中使用,否则渲染一帧就会消失。一帧时间太短。人眼是看不见的。Physics.Raycast 使用此函数来发射一条射线。射线碰到物体将停
转载 4月前
53阅读
0x00 前言Unity的AR Foundation通过上层抽象,对ARKit和ARCore这些底层接口进行了封装,从而实现了AR项目的跨平台开发能力。而苹果的CoreML是一个可以用来将机器学习模型与iOS平台上的app进行集成的框架。本文以及本文结尾处的demo工程,将介绍和演示如何使Unity的AR Foundation与苹果的CoreML一同工作,以实现使用我们的手来和虚拟物
  • 1
  • 2
  • 3
  • 4
  • 5