随笔分类 - Unity3D
摘要:FixedUpdate 可以多次调用; 不饿能用于帧频很高的情况;Update 仅一次调用(每帧);LateUpdate 每帧调用一次;Corountine 用startCoroutine()在执行时间内会一直被调用;OnGUI 每帧被调用一次;补充一下 Trigger 当两物体collider撞击时,产生相应反应,比如cutsenes,automatic door opening,displaying tutorialmessages
阅读全文
摘要:设定一个物体使得camera可以从现在为止自动飞到当前位置1. 设定一个位置,可以在其前方放置一个显示其位置的cube。这里也可以写脚本设定位置。2. 使用函数 移动函数 transform.position = vector3.slerp(positionstart, positionEnd, Time*time*0.001);旋转函数 transform.Rotation = Quaternion.slerp(StartRotation, aimRotation, Time.time*0.00001);3.在控制自动漫游于原始FPC摄像机的切换脚本中添加功能:按下run,自动记录当前pos
阅读全文
摘要:1、 从第一个项目中选择 项目->导出package。在另一个项目中选择 导入package;2、 在导出选项卡中选择all dependency,可以将图片等信息同时导入导出;3、 如果将导出包放在standard packages folder( next to your unity application in install disk),那么他们将会出现在create view project中;系统自带assets:standard assets: first person controller, skyboxes, flames, water plane prefab, ca
阅读全文
摘要:首先用vc建立一个dll工程下载 (7.34 KB)2009-7-20 22:48然后在里面建立一个testunity.h文件。内容如下 extern "C" int _declspec(dllexport)testunity();保存,ok,在建立一个testunity.cpp,代码如下: #include "testunity.h"int testunity(){ return 0;//这是函数,里面可以写你想要实现的任何功能}然后编译、组建。就生成了testunity.dll文件。然后再把这个文件放在你的unity工程的assert的Plugins
阅读全文
摘要:第一个文件,声明枚举类型,分别为均匀变化和加速变化using UnityEngine;using System.Collections;public enum CTRotationType{ Uniform, AccelerateUniformly}第二个文件:主函数,实现围绕轴变化的两个函数,分别为均匀变化和加速变化 using UnityEngine;using System.Collections;public class CTRotation : MonoBehaviour { // Use this for initialization void Start () { } // U.
阅读全文
摘要:using UnityEngine;using System;using System.Collections;using System.Data;using MySql.Data.MySqlClient;public class CMySql : MonoBehaviour { // Global variables public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before static string host = "192.168.1.100"; sta
阅读全文
摘要:多平台支持的编辑器Unity 3支持在一个统一的编辑器中创建项目,然后选择在哪个平台预览,就可观察你的游戏那个平台运行效果如何。延时渲染功能Unity 3提供一个新的延时光照系统,支持在场景中实现上百个点光源。同时开放了延时光照需要的G-Buffers,开发者可以重用到其他高端图片效果上,而没有额外的性能损失。 lightmapping 中间件Umbra获得Unity授权后,可以免费获得最好的lightmapping技术中间件:Beast Lightmapping。 Beast 使用在 Mirror'sEdge (靓影特务)和 Killzone 2 (杀戮地带2)上,制作一款游戏 Be
阅读全文
摘要:进度条如同静态控件一样易于开发,因为他们只接收很少几个消息.基本上,你需要为进度条做两件事-你要告诉它最大/最小范围和步长.例如,我要创建一个载入进度条,由于我要载入100个不同的游戏资源.我会创建一个范围为0到100的进度条.我会把进度条初始为0,然后,当我载入一个资源的时候我会用单位长度来让进度条前进一个步长.当进度条前进时,它都会重画自身,图形上用一个和绘制区成比例的长条来表示出它有多长.进度条很象滚动条;实际上,可以用滚动条的方法来开发进度条.我把进度条和滚动条分开开发是因为我想要他们有非常不同的外观和细微差别的行为-你的需要可能会不同.滑动条和滚动条绘制滑动条或者滚动条和绘制进度条.
阅读全文
摘要:什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来。 我们知道,在游戏中经常会有这样的情况,就是一个平面——这个平面在现实中并不是一个“平”面,例如砖墙的表面带有石质浮雕等等。这样的情况如果要求游戏开发人员将复杂的3D细节都做出来是不现实的,因为即使不计较在建模时候的复杂度,过多的3D细节也同样会大量消耗显示芯片的性能,让游戏根本没有可玩性。如何利用贴图实现凹凸效果呢? 可行的方法就是将这个平面用一个贴图覆盖,用贴图的纹理实现一定的凹凸效果。但是这种方法实现的效果并不是很好,因为如果视角一变化,看起来就会像一张简单的画有图案的平面了。 后来,聪明的游.
阅读全文
摘要:纹理扩散适合与做游戏的背景(卷轴效果),原理就是让材质贴图动起来(循环运动),代码很简单希望对大家有用// Scroll main texture based on timevar scrollSpeed = -0.5;// This must be set to override a bug where Render Order// of the tunnel objects is lost when SetTextureOffset is usedvar queue = 0;private var offset = 0.0;function Update (){ offset = Time
阅读全文
摘要:方案一:speedpublic var simulateAccelerometer:boolean = false;var speed = 10.0;function Update () { var dir : Vector3 = Vector3.zero; if (simulateAccelerometer) { dir.x = Input.GetAxis("Horizontal"); dir.y = Input.GetAxis("Vertical"); } else { dir.x = Input.acceleration.x; dir.y = In
阅读全文
摘要:在飞行射击游戏中,恐怕没有一个游戏不用到跟踪算法的。比如在玩街机的时候,是不是经常挂于BOSS的“跟踪弹”?这是怎样实现的呢?很简单,只要有高中的一点数学知识就行了!首先回忆几个三角函数sin,cos,tan(tg),arctan(arctg)sin(x)—对边/斜边。在1,2项限为正,3,4项限为负cos(x)—邻边/斜边。在1,4项限为正,2,3项限为负tan(x)—对边/邻边。在1,3项限为正,2,4项限为负考虑到游戏里面的坐标系如下所示:假设敌人子弹的坐标为slug.x,slug.y,子弹的速度为slug.speed(全部是double型)上面的三角形的斜边就代表子弹的速度,则子弹每次
阅读全文
摘要:直接切入正体回忆以前Direct3D中的空间向量图形知识,以及研究Unity3D里是怎么表示的。 Vector3: Vector3这词最早是谁发明的无从考证了,但是Unity3D里出现了这个名词的时候,我才意识到这个不是D3D和openGL才有的变量名,D3D里叫做 D3DXVECTOR3继承自_D3DVECTOR结构体,其中_D3DVECTOR结构体只有3个单精度数X,Y,Z。用于表示向量。 Unity3D中Vector3类定义(只写有用的): 属性: x,y,z表示一个空间向量。 this 用于访问x,y,z三个数据使用数组的方式访问,比如[0][1][2] normalized 返回单位
阅读全文
摘要:致力于赛车性能算法已有多时,在确定赛车最终版本之时,做下总结。文章还是不会非常详尽,点到为指,不想太多利用工作时间。在制作前,必须先了解真实车辆的原理:车辆分前轮驱动,后轮驱动和四驱动。动力由引擎提供,反应的力到轮胎上,因此产生转数,即RPM。引擎的功率可以由RPM得到公式为 : RPM = 引擎功率×60/2×pi , 这些都是模拟,只为了更好的为下面的动作服务。还有大众关心的“漂移” ,所谓 漂移就是,在后驱车辆中,前轮方向旋转大角度,地面给于一定向心力,同时后轮又给予更多动力,导致“漂移”动作。基于上面原理,就更容易理解下面的文章。我先说明,有非常多种方法来开发一款赛
阅读全文
摘要:公告板技术是3D游戏中用的非常多的一种技术,主要是用于控制场景中的Texture的方向,让他始终以一定的角度对着我们的镜头(一般是垂直于镜头)。如我们在3D游戏中看到的怪物的蓝、红和怪物名字、一些花草树木等,无论我们在哪个方向看它总是对着我们。如下图所示: GraphicsDeviceManager graphics;Texture2D texRedPanda;//镜头信息参数Vector3 pos, lookat, up;//World,View,Project矩阵Matrix world,view, project;BasicEffect basicEffect;//顶点结构Vertex.
阅读全文
摘要:镜面反射代码文件名MirrorReflection.csusing UnityEngine;using System.Collections;// This is in fact just the Water script from Pro Standard Assets,// just with refraction stuff removed.[ExecuteInEditMode] // Make mirror live-update even when not in play modepublic class MirrorReflection : MonoBehaviour{ publi
阅读全文
摘要:研究了下,颜色变化时遵从RGB圆环(就是说颜色条对接一下成环)路径最小变化原则。举个例子,加入ABCDE四个颜色点,并且A和E在同一点(转了一圈)设定从A变化到C的话,有两种路径,一种ABC,还一种ADC,究竟选择哪条路径 就看这两条路径哪个更短些了var colorStart = Color.red;var colorEnd = Color.green;var duration = 1.0;var minimum = 0.0;var maximum = 200.0;function Update () { var lerp = Mathf.PingPong (Time.time, durat
阅读全文
摘要:这段脚本主要实现一个group的伸缩功能,group里面的内容也就是菜单的内容可以自由添加。var LeftGroupToTop:int=60;var LeftGroupWidth:int=300;var LeftGroupHeight:int=700;var LeftGroupLabelWidth:int=30;private var MoveDistance =LeftGroupLabelWidth-LeftGroupWidth; private var XPosition;private var StartPoint:float=MoveDistance;function Update(
阅读全文
摘要:在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"); print (player.position); }例子二:该脚本时绑在main Came
阅读全文
摘要:这是一段拖动物体的代码,比较简洁明了,对了解unity3d脚本概念有些帮助!在此加上注释分享!var mouseOverColor = Color.blue;//声明变量为蓝色private var originalColor : Color;//声明变量存储本来颜色function Start () { originalColor = renderer.sharedMaterial.color;//开始时得到物体本来着色}function OnMouseEnter () { renderer.material.color = mouseOverColor;//当鼠标滑过时改变物体颜色为蓝色}
阅读全文