一、射线:Physics2D.Raycast( )必须参数:起点、方向可选参数:距离、Z轴深度、过滤条件(检测哪些层、是否检测触发碰撞器等)out 参数:RaycastHit2D[ ] (存放碰撞返回的结果)返回值:int  (表示碰撞结果的个数)/ RaycastHit2D射线碰撞的结果)备注:如果射线碰撞体内部发出,可以使用collider2d.Raycast( )方法二、与碰撞
直入正题,检测失效的原因如图,设此时子弹,射线碰撞体属性都如图所示,这里射线从子弹的坐标位置发出,发出位置可以通过修改预设或者增加偏移量的方式进行修改。可以看到,第一帧进行射线检测时,子弹距离碰撞体太远(或者说射线长度不够)导致并没有检测到碰撞,结果第二帧时,子弹已经飞过了碰撞体,此时再次进行射线检测,当然也不会检测到,如此就导致了射线检测失效。怎么去解决这个问题,很简单,增加射线的长度即可,但
2D阴影生成2d阴影一般有两种方案,一种是基于物理射线生成Light Mesh(也有叫ShadowMesh,我觉得叫LightMesh更贴切点)。另一种同unity3D阴影原理,就有是生成ShadowMap。这篇记录使用射线生成LightMesh的两种方法。方法1:通过射线扫描可视区域因为使用了物理射线,所以需要遮挡物体有碰撞器(Collider)组件。参考SIGHT & LIGHT基本流
转载 2024-02-24 10:53:25
105阅读
本教程基于Unity5.0.2f1,所以推荐使用该版本的Unity来学习该教程。接下来下载 2D_Joints_Starter。解压并在Unity中打开这个Demo。初始的scene应该如下所示: 像很多游戏一样,这个场景中有多种带有物理组件的物体。然后这里面的所有物体都没有关节。通过这个教程,你会尝试使用每一个Unity 2D关节并看到他们是如何起作用的。运行这个场景,你会看到一些物体因为重力的
转载 2024-08-13 09:30:05
205阅读
碰撞与休眠上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性。一旦刚体開始运动,那么系统方法便会监视刚体的碰撞状态。一般刚体的碰撞分为三种:进入碰撞碰撞中,和碰撞结束。关于休眠能够理解成为让游戏对象变成精巧状态。假设给某个游戏对象休眠的状态,那么这个物体将立刻精巧,不再运动。碰撞首先学习下碰撞几个重要的方法:OnCollisionEnter(  ):刚体開始
转载 2024-10-19 15:58:43
165阅读
一、       前言又是一个好久没更新文章了,最近实在是太忙了。前段时间跳槽了,离开了自己曾经熟悉的一个环境,进入了一个全新的环境,初来乍到需要更对的精力去应对。还是废话不多说,一贯的惯例直接上图。看到标题其实有人就要问了,自制2D碰撞体。楼主你这是在炫技吗,Unity不是有自带的碰撞体和刚体可以用吗,为什么要吃饱了自己写一
转载 2024-06-08 16:14:20
229阅读
本篇没有推荐,纯手工.....目的:测试在多层对象中,碰撞消息的传递方式先附上实验总结(RigidBody同样适用):      *      a、消息的接受者为 RigidBody2D,如果本层没有 RigidBody2D,向上(父)寻找      * &
方法一:Physics.Raycast 光线投射 1.static function Raycast ( origin : Vector3 , direction : Vector3 , distance : float = Mathf.Infinity , layerMask : int = kDefau
转载 2024-09-01 06:51:56
95阅读
    盒子碰撞器(BoxCollider2D)是Unity2D中常用的碰撞器,所有为碰撞器,顾名思义,就是用于检测物体之间的碰撞情况的,Unity2D里面除了BoxCollider2D碰撞器之外还集成Box2D物理引擎和一系列2D物理组件,分别如下:    1 Rigid-body组件(RigidBody2D)支持static/kine
前言说到unity的物理系统,大家肯定第一反应肯定是“不就是rigidbody和collider那些东西吗,我会”。但是提及背后的原理,我敢说99%的人是不知道的。unity的物理系统很强大没错,然而当它不能满足我们的需求时,我们就需要自己写一套物理系统了。今天这个系列文章分享的是如何不依赖unity的api自己搭建一个简单的2D物理系统。 说是物理系统,其实只有最基础的部分,如下是演示之一: (
1 思路效果的想法:按下“Fire1”就可以切换为shoot射击状态,角色就会自动连续发射子弹,在shoot模式下再按下“Fire1”就可以切换回上一个状态。代码的思路:用一个Empty GameObject作为枪口,然后一个PreFab预制体作为子弹。2 子弹新建一个Sprite,并命名为Bullet(子弹)。然后为Bullet添加Rigidbody 2D(刚体)、Box Collider 2D
转载 2024-04-26 15:54:57
206阅读
Unity2D及输入系统Unity2D 部分一、Unity 2D 介绍1. 游戏中 2D、3D 以及 UI 的概念先笼统地将整个游戏分为两部分:UI 和游戏内容。UI :即 User Interface,人机交互,操作界面,游戏中一般指血条、背包、注册登录等。游戏内容:指场景、角色等实际游戏世界的展示。一般我们所说的 2D/3D 是指游戏内容部分,绝大多数情况下 UI 本身都是 2D的。2. Un
转载 2024-05-21 21:04:49
92阅读
先说说我遇到的坑吧: 在做图像检测的时候,用的是Vuforia 的 打包Sdk,具体想要实现的功能就是,当用户的摄像头检测到指定的图片时,将已经准备好的人物模型显示出来,当用户长按手机屏幕的时候,令模型消失,具体代码如下using System.Collections; using System.Collections.Generic; using UnityEngine; public cla
转载 2024-07-29 16:27:11
294阅读
框架分类【UI面板控制】【事件组件】事件基类具体的事件实现【UI面板】UI面板基类具体的一个UI面板实现 【UI面板控制】功能说明:通过射线检测获取场景中的事件脚本 —>获取事件脚本上的信息 —>将信息传递给UI面板using System.Collections; using System.Collections.Generic; using UnityEngine; public
本篇用于记录UNITY的学习历程   引用尽量注明出处初期搜到的一些资料:Manual:https://docs.unity3d.com/Manual/Unity2D.html Scripting API:https://docs.unity3d.com/ScriptReference/index.html官方脚本教程:https://unity3d.com/cn/l
1 Tilemap介绍 Tilemap(瓦片地图):unity中自带的快速构建2D场景的工具 2 Pixels Per Unit介绍 需要先介绍一下Pixels Per Unit(每个单位的资源像素量),这个属性在你点击你的素材的时候会出现(如下图所示)。从左下的文件里面找到素材图片,然后单击,右上边就会出现素材图片的信息,就会看见Pixels
转载 2024-03-18 00:04:58
859阅读
1 为角色添加代码控制为Player添加一个New Script(我名命为了PlayerController),就会发现在Assets文件夹下多出了一个C#文件。在Assets下面新建一个Script文件夹方便管理,并把C#文件放入到文件夹里。2 查看代码控制涉及到input设置控制角色暂时只涉及到左右移动和跳跃,需要先知道玩家是怎么输入,我们需要调用那些参数。Edit->Project S
转载 2024-03-25 05:34:57
91阅读
1.2D模式和3D模式的区别,2D模式默认的摄像机的模式是Orthographic(正交摄像机),3D模式默认的摄像机的模式是Perspective(透视摄像机)。3D会额外给你一个平衡光。3D模式修改为2D模式,点击Edit下面的Editor 修改为2D2.UGUI渲染模式 World Space Screen Space-Camera Screen Space-OverlayWorld Sp
转载 2024-03-19 19:59:32
310阅读
1.需求        我们在开发的时候,有时候一些按钮或者菜单栏的边角是直角的需要改成圆角,但是让美术重新绘制耽误时间不说也确实没必要,这个时候我们不妨使用一个简单的shader去解决这个问题,下面我们就讲讲这个shader要如何实现。需求1:可以将图片四角任意一角从直角变为圆角,可控制圆角大小需求2:在需求一的基础上可以选择是否给图片加上边框,颜色可变附
       在我们小时候玩过的2d游戏中,比如超级玛丽、魂斗罗等等,地图中都常常会有升降平台的出现,话不多说,以下为博主实现自动升降平台的过程:        第一步,新建Tilemap(如下图,素材可在Unity Asset Store中搜索Sunnyland,导入即可),并搭建一个平台,(Inspector)检视
转载 2024-06-03 18:03:37
269阅读
  • 1
  • 2
  • 3
  • 4
  • 5