自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 【Unity】当人物主角被障碍物遮挡后,将障碍物半透明化

脚本功能:当人物主角被障碍物遮挡的时候(从摄像机视角看去),使障碍物半透明化,当主角可见时,恢复障碍物透明度   脚本位置:MainCamera 或者任意一个可以始终存在的游戏对象身上即可   创建时间:2015年12月29日   障碍物Shader使用的是Unity内置的Standard   Rendering Mode选择Transparent模式  

2017-11-10 16:45:17 3454

转载 Unity异步加载场景loading条

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class LoadingScene : MonoBehaviour {    public Slider processBar;    private

2017-09-22 16:31:46 436

转载 00:00:00计时器

using System.Collections;using System.Collections.Generic;using UnityEngine;public class NewTime: MonoBehaviour {    private float timer = 0f;    private int h = 0;    privat

2017-08-04 13:53:30 1888

转载 Unity3D 海水多线程渲染算法实现

海水仿真渲染一直是比较困难的事情,虽然市面上有了各种海水的渲染算法,但是真正做到仿真渲染的少之又少。大多停留在试验阶段,达到了仿真的要求,但是硬件配置要求高,不利于推广。本篇博客给读者介绍的是关于海水的实施渲染以及通过算法实现船只航行轨迹效果,真实的达到了海水的渲染,海水的网格采用了多个面片网格拼接的方式,网格采用的是LOD处理的,这样就优化了效率。同时将海水的绘制以及算法实现放到C++中进行,这

2017-08-04 11:28:14 1149 1

原创 弹痕的生命周期

using System.Collections;using System.Collections.Generic;using UnityEngine;/// /// 弹痕的生命周期/// public class BulletHole : MonoBehaviour { private float lifeTime = 50f;//弹痕停留时间 private fl

2017-07-26 16:55:24 355

原创 第三人称摄像机

1.先建立一个空对象,然后把主摄像机拉近空对象中2.主角里面建立一个空对象3.把主角里面建立的空对象拉到摄像机上的脚本using UnityEngine;using System.Collections;using UnityEngine.UI;public class Camera : MonoBehaviour{ public Transform playerP

2017-07-12 17:35:08 364

转载 用鼠标控制角色移动

1.我们首先创建地形,然后添加一个带有动画的角色模型,博主在这里已经导进unity了并且把角色名称修改为“主角”,当然名称你可以任意修改成自己喜欢的。然后在模型Inspector面板中把Animation Type修改成Generic,这里不建议选Humanoid。然后就可以在Animation面板中,分割动画帧了。         2.我们完成了动画分割以后为角色添加一个

2017-06-17 17:15:42 1025

转载 Unity3d 防止相机“穿墙”功能

今天博主研究了很久,看了很多种摄像机跟随角色的代码,感觉很多都达不到自己想要的理想实现效果。于是参考了多个脚本,自己做出了修改和完善,达到了第三人称角色控制还算是比较理想的效果吧。相机除了跟随角色的功能外,还有最大的一个问题就是喜欢“穿墙”,于是对于这些代码做了比较好的优化。具体原理大概就是使用一条从玩家角色位置发射的射线,当碰撞到任何不属于相机的物体时,就拉近相机的位置,避免“穿墙”的发生。下面

2017-06-17 16:39:44 21560 2

转载 unity3d实现动态显示伤害值

今天介绍Unity3D使用OnGUI()的方法来实现伤害数值的显示,在战斗系统中我们常用于敌人和我方的伤害显示,在后面做敌人AI的时候会用到。下面我们看脚本!       首先我们创建一个Damage的脚本。好的,我们打好代码后,在场景中新建一个空的游戏对象,并且命名为Damage,把脚本绑定在这个对象上,并且把它作为预设体。        下面我们为敌人写

2017-06-17 15:00:20 3015 2

转载 unity3d实现插件快速开发对话系统

作为一款RPG游戏,对话系统的开发是必不可少的。不对,现在几乎什么游戏都需要对话系统,这点可是毋庸置疑的。今天我给大家介绍一款对话插件,叫做”Localized Dialogs Cutscenes LDC “,百度就有了。这款插件可以大大减少代码的复杂性,而且功能强大,不单只是开发对话的功能,还有其他的开发模块。今天我只教大家怎么去使用它快速开发对话系统,其他模块自己细心研究。当然,你编程能力强大

2017-06-17 14:59:55 8466 1

转载 unity3d实现视频播放

我相信大家玩过的RPG游戏很多都带有剧情播放的环节,开场视频或者退场视频都对一个游戏有承上启下的作用。例如我最近玩的仙剑奇侠传6国产大作,这剧情当中就嵌入了许多动画的播放(虽然被很多人喷的日风二次元动漫)。RPG游戏吗,讲究的就是剧情吗,而一段剧情视频能更加丰富游戏的感染力!好了,废话不说。      首先我们要了解Unity3D的视频格式,只有ogv的一种视频格式可以用。而网上ogv的视

2017-06-17 14:57:59 862

转载 Unity3D之第一人称第三人称角色控制组件修改C#版本

转自: 雨松MOMO 2012年07月01日 于 雨松MOMO程序研究院 发表之前MOMO在 Unity3D研究院之角色控制器组件研究(二十二)文章中向大家介绍了角色控制器组件。默认系统提供了JavaScript脚本的支持,可是我们还是喜欢用C#来编写脚本,本篇文章MOMO将把角色控制器的所有脚本全部改成C#语言。方便自己也方便大家学习,哇咔咔。首先,我们将角色控制器包引入工程中。如下图所

2017-06-17 14:55:51 1003

转载 Unity3D相机切换效果

public Camera cam_0; public Camera cam_1; void Strat() { } void Update() { if (Input.GetKeyDown(KeyCode.Alpha1)) { cam_1.enabled = true;

2017-06-17 10:45:22 3277

转载 Unity中用鼠标缩放相机

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class la : MonoBehaviour { void Update() { //----------------拉进放大--------

2017-06-17 10:34:15 476

转载 unity3d物理赛车系统

最近一直在研究Unity3D,很强大的一款3d引擎。本篇介绍基于此引擎的一个物理赛车驱动算法。建模丑了点...首先,我们需要先弄懂汽车的工作原理。每个汽车的动力来自引擎。引擎动力的量化我们用力矩来表示。引擎通过变速箱把力传给轮子,这样轮子就转了起来,整个汽车就可以动了。需要注意的有以下几个点:1,加减档系统。所谓变速箱其实可以抽象为一个数组,每个数表示引擎力

2017-06-16 17:04:07 581

转载 如何让摄像机跟随你的角色,并且按鼠标右键围绕旋转

把脚本挂载到摄像机上,把要跟随的目标拉到 Target 上using UnityEngine;using System.Collections;[AddComponentMenu("Camera-Control/Mouse Look")]public class MouseLook : MonoBehaviour{ public enum RotationAxes { Mo

2017-06-16 16:56:50 3025

转载 Unity3D里实现物体移动到目标点,并且摄像机跟着移动的简单方案

//其中public Camera cam指定为Main Camerausing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class yidong : MonoBehaviour { float speed = 1.0

2017-06-16 16:35:10 5084

转载 Unity3D#Unity获取游戏对象详解

我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我。我看很多人喜欢在类里面去保存GameObject对象。解决GameObject.Find()无法获取天生activie = false的问题。     private GameObject root ;我觉得你最好不要保存GameObject ,而

2017-06-16 16:26:06 9362

转载 Unity 3D追踪效果的实现 目标箭头指引

public class CArrowLockAt : MonoBehaviour { public Transform target; //目标 public Transform self; //自己 public float direction; //箭头旋转的方向,或者说角度,只有正的值 public Vector3 u;

2017-06-16 16:16:54 5458 1

转载 Unity3d获取物体的所有子物体对象(child)

List lst = new List;foreach (Transform child in transform){ lst.Add(child); Debug.Log(child.gameObject.name);}for(int i = 0;i < lst.Count;i++){ Destroy(lst[i].gameObject);}2014.5

2017-06-16 16:15:58 3678

转载 射线Ray实现点击拾取

using System.Collections; public class rayScript : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame

2017-06-16 16:04:22 522

原创 爆炸

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class Explosi : MonoBehaviour { public float bao=600.0f;//爆炸的力 public GameObjec

2017-06-16 15:46:22 244

原创 两种弹药实例化与发射弹药周期时间

实例一:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class FireCtrl : MonoBehaviour {    //预制体    public GameObject bullet;

2017-06-03 13:48:35 371

转载 三分钟了解LOD在游戏里面的运用

LOD为Levels of Detail的简称,简单来说即为多细节层次,不少朋友经常听到这个名称,但是并不知道如何把这个技术运用在游戏里面,如果用百度查到的说法是:LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。以上的解释可能很多人看了是一头雾水,还是不了解LOD的实际运用,以下让我们通过一个简单

2017-05-19 11:29:15 14056

转载 Unity对象池(一)

对对象池的解释以及优缺点,我在这里就不多做解释了,网络上已经有很完善的解释了,总结一句话,就是我们将对象存储在一个池子中,当需要再次使用时取出,而不需要每次都实例化一个新的对象,将对象循环利用起来。现在用一个简单的例子,来具体实现对象池。我们实现一个这样功能,按下鼠标左键,发射一颗子弹,3秒之后消失。在这个功能中,我们发射了上百上千发子弹,就需要实例化生成上百上千次。这时候,我们就需要使用

2017-05-19 11:13:57 290

转载 Unity关于层级细节(LOD)的使用

层次细节(LOD),它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式。       下面我们分步骤来构造一个最简单的LOD模型示例:步骤1:准备3

2017-05-19 11:12:53 2132

转载 Unity单例模式

实现功能: 1.保证类只有一个实例 2.提供只读属性,方便其他脚本调用 3.实现切换场景之后对象不销毁(第四种写法有介绍)这里为大家介绍Unity中常见的四种单例写法:1 不继承自MonoBehaviour的脚本public class BagManager {//第一步构造方法私有化,保证外部不能实例化private BagMan

2017-05-19 11:12:14 407

转载 UGUI中使用代码动态绑定触发事件

前言:UGUI系统中官方提供了一种Button控件,Button封装了官方提供的一套OnClick事件,如果该GameObject还需要支持按下,移入,移出等事件呢?这时候我们就需要添加EventTrigger组件。如果我们要给一个文本或是一张图片,添加鼠标响应事件,通过EventTrigger组件就变得易如反掌。今天我们实现的是动态添加EventTrigger组件并且动态添加触发事件。

2017-05-19 11:10:04 430

转载 Unity中实现人物平滑转身

今天要实现的功能是利用WASD或是方向键实现人物平滑转身。       1.首先搭建一个简易的场景和人物,我在这里利用一个圆柱加一个cube代表人物,其次保证人物模型的本地坐标与世界坐标保持统一,如图所示2.在人物身上添加PlayerController脚本,源码如下:[csharp] view plain copy

2017-05-19 10:54:23 1953

转载 UNet实战系列(二)

经过上一节的学习,同学们都知道Network Manager HUD组件和Network Manager组件要配合着使用。Network Manager HUD为Network Manager提供简单的登陆界面,可是我们不想用简易的界面,我们想自己做属于自己项目的高大上的界面该怎么办呢?这篇文章讲讲如何自己创建一个简单的Network Manager 界面。   一.   跟上一篇一样,我

2017-05-19 10:53:43 1196

转载 UNet实战系列(一)

Unity自5.1以后支持新版的网络系统Unet,Unet是什么,优缺点是什么,和以前的网络系统有什么区别,请自行去百度。本篇要实现的功能是创建网络游戏的Player主角,以及实现移动同步。本教程来源于爱奇艺上的Unet教程,由于是英文视频,so对于很多人来说......,所以就准备出一些对应的中文教程,来帮助初学者(偶也是初学者,若是分享的技术有误,还望指出)。废话不多说了,进入正题。 

2017-05-19 10:53:08 285

转载 将Unity的脚本封装为dll文件(使用monodevelop编译器)

首先说一下生成dll文件的必要性:给第三方公司提供Unity插件,又不希望对方看到具体的实现过程,这时候就需要将核心代码封装编译成dll文件,供第三方调用。或是多个项目都要用到同一个模块或同样的功能,则可以把该模块或是功能编译成dll,方便复用和维护。       查阅了网上现成的资料,几乎都是使用vs,将Unity脚本封装编译成dll文件的,这次分享给大家的是如何使用mono编译器编译d

2017-05-19 10:52:02 1082

转载 Unity实现画线条功能

废话不多说,今天实现一个用LineRender组件实现画图的功能。网上已有相关博文,感觉步骤有些模糊,今天就整理出来供大家学习第一步:创建一个空对象,为其添加LineRender组件。注意:将材质的Shader改为Particles/Additive,否则在代码里面控制颜色不起效。二.再创建一个新的对象,来挂载脚本。脚本如下:[c

2017-05-19 10:49:26 10689 3

原创 摄像机围绕人物旋转

用法:先在你的Player里新建一个空的Object重命名为CameraTarget(你起什么名字都行),然后将把脚本挂载到主摄像机上,将你新建的 CameraTarget 拖动到脚本的Target属性,运行你就可以看到效果了using System.Collections;using System.Collections.Generic;using UnityEn

2017-05-03 15:11:28 1368

转载 Unity 发射子弹+弹药减少计数功能

创建一个胶囊体(Capsule)改名为Player 作为主角创建一个文件夹命名Prefabs再创建一个Sphere作为子弹,添加上Bullet.cs脚本后拉到Prefabs文件夹内作为预制体1.  新建Fire.cs 类 加载到Player 上using System.Collections;using System.Collections.Generic;usin

2017-05-03 14:18:23 5079

转载 Unity实现物体逐渐消失

通过改变目标物体的Alpha值。要求材质(Material)的类型是Transparent/Diffuseusing System.Collections;using System.Collections.Generic;using UnityEngine;public class wall : MonoBehaviour { private float temp

2017-05-03 13:29:03 16551 1

转载 怪物跟踪玩家

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;//脚本绑定到怪物上public class GenZhong : MonoBehaviour { [SerializeField] [Header("要跟踪的人")]

2017-05-02 15:04:34 2320

转载 通过鼠标控制镜头绕着某物体旋转

把脚本挂载到摄像机上using UnityEngine; using System.Collections; /** * 备注:本脚本必须赋予主镜头 */ public class CameraRotateAround : MonoBehaviour { public Transform target;

2017-05-02 14:12:41 434

原创 鼠标四周查看

using UnityEngine;using System.Collections;public class MouseLook : MonoBehaviour { public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 } public RotationAxes axes = Rotation

2017-04-27 13:30:56 299

转载 unity3d 摄像机跟随角色时被物体遮挡解决方案

在我的项目中,我采用的是物体遮挡作半透明处理,如果按照上述文章中的思路来写代码的话,那么结果就是当多个物体遮挡角色时,只有第一个物体会半透明,如图:角色被墙和屋顶遮挡住了,但是可以清楚的看见左下角的墙呈半透明状态,而屋顶依旧不透明 为了解决这个问题,我们不采用上述文章中的 physics.Linecast,在这里我们需要用到 Physics.RaycastAll;使

2017-04-11 17:40:21 5738 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除