随笔分类 - Unity 3D
摘要://创建一个名为"Player"的游戏物体//并给他添加刚体和立方体碰撞器.player=new GameObject("Player");player.AddComponent("Rigidbody");player.AddComponent("BoxCollider");//创建一个没有名称的游...
阅读全文
摘要:打包这个Unity3D的程序时出现错误(程序是由XML数据改成连接数据库):ArgumentException: The Assembly System.Configuration is referenced by System.Data. But the dll is not allowed to...
阅读全文
摘要:问题描述:FBX文件导入Unity3d后的动画名字一般都是 “Take 001”并且无法修改!如何修改它呢?解决方法:解决方法其实很简单,只要你按照Unity3d的FBX文件命名规则,压根就不会存在这个问题!名字规则,角色名@动作名.fbx 这样命名的FBX文件导入Unity3d后,Unity3d自动帮你把动画名改为@后的名字!例如:PlayerA@jump.fbx导入Unity3d后,Unity3d自动帮你把动画名改为jump;
阅读全文
摘要:GameObject.Find 查找static functionFind(name: string) : GameObjectDescription描述Finds a game object by name and returns it.If no game object with name can be found, null is returned. If name contains a '/' character it will traverse the hierarchy like a path name. This function only returns act
阅读全文
摘要:用unity3d开发移动平台的游戏不可避免的会遇到屏幕分辨率的问题 不同的分辨率上会使得原本正常的UI变得乱七八糟 我们知道在unity3d中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置可以认为是绘制在摄像机上的因此分辨率的不同会导致UI的位置和大小出现错误我们完全可以用一个plane去模拟button并将它放在世界空间中这样虽然可以解决位置和大小的问题但是所带来的问题也一大堆并难于维护因此我们需要根据屏幕的大小去按比例缩放UI假如原本有个按钮是这样,并且当前的480x854分辨率下没问题,如果改成600x1024或者其他的分辨率,便会发现位置和大小都不正确了function
阅读全文
摘要:/*button 和Rect上悬停显示tips */var buttonText : GUIContent = new GUIContent("some dasdfgwbutton");var buttonStyle : GUIStyle = GUIStyle.none;var leftPosition:float;var topPosition:float;var btn_w :float;var btn_h :float;public var isOver;public var create;function Awake(){isOver = false;create
阅读全文
摘要:Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因为播放视频用到的MovieTexture属于贴图Texture的子类,那么本章我们就好好学习一下Unity中播放视频的这两种方式。哇咔咔~ Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。如下图所示,MOMO将default_video.mp4拖拽...
阅读全文
摘要:在一些Unity脚本的开始经常可以看到 #pragma strict,#pragma downcast、#pragma implicit指令,而有的Unity脚本则没有这些指令,那这些指令有什么作用呢?#pragma strict,此指令的含义是强制输入,也就是我们在声明变量时,需要精确的声明变量是什么类型,而不是让编译器来自己推测变量的类型,因此,也不能随便的使用一个随机的名称并让编译器来为你实例化此变量。例如,在使用此指令后,我们随意声明一个变量:private var bobby;//是不可以的,而需要这样:private var bobby : GameObject;//这个可以通过使
阅读全文
摘要:// Scroll main texture based on time var scrollSpeed = -0.5; // This must be set to override a bug where Render Order // of the tunnel objects is lost when SetTextureOffset is used var queue = 0; private var offset = 0.0; function Update () { offset = Time.time * scrollSpeed; rende...
阅读全文
摘要:Mathf结构:常用数学函数的集合。类变量◆ static var Deg2Rad:float描述:度到弧度的转化常量(只读)。这个等于(PI*2)/360.//转化30度为弧度var deg=30.0;var od=dcg*Mathf.Deg2Rad;参见:Rad2Deg常量。◆ static varEpsilon:float描述:一个小的浮点数值(只读)比较小于它的值没有多人意见,因为浮点数是不精确的。print(MathfEpsilon);◆ static var Infinity:float描述:表示正无穷(只读).◆ static var NegativeIntinity:float
阅读全文
摘要:MonoBehaviour一些有意思的东西:useGUILayout,当你不使用GUI.Window和GUILayout的时候,果断设置为false,这个玩意儿默认是开启的,设置为false最好在Awake回调里面进行设置Invoke系列方法:Invoke系列方法相当于计时器,在指定的时间点上调用指定的函数void Invoke(string methodName, float time); //在time秒后调用methodNamevoidInvoke(string methodName, float time, float repeatRate); //在time秒后开始以repeat..
阅读全文
摘要:1、单一文件创建unity3dusing UnityEngine; using UnityEditor; using System.IO; public class BuildAssetBundlesFromDirectory { [@MenuItem("Asset/Build AssetBundles From Directory of Files")] //生成菜单 static void ExportAssetBundles () { // Get the selected directory //获取选择的目...
阅读全文
摘要:第一个也是最容易区分的一点就是声明变量和方法。JavaScript的脚本:1. private var cubeTransform; 在C#中,同样的代码则会是:1. private Transform cubeTransform; 这对方法同样适用,在C#中,一个方法什么值也没有返回,那么他的返回值为 void 类型,但是在JavaScript中则可以省略。类的继承也是不同的。在JavaScript和C#中,方法是隐型并且不可重载,除非方法声明中添加虚拟关键字。不同的是C#只重载那些包含重载关键字的方法。而JavaScript不需要关键词,只要重载类方法就可继承他们。我们来看一个JavaSc
阅读全文
摘要:unity3d工程中添加多个相机后出现如下警告:There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.解决办法:将后添加相机的Audio Listener移除.
阅读全文
摘要:var myCursor : Texture2D; var myClickCursor : Texture2D; var cursorWidth : float; var cursorHeight : float; private var isClicked : boolean = false; function Start () { Screen.showCursor = false; } function Update () { if (Input.GetMouseButton(0)) isClicked = true; ...
阅读全文
摘要:1。从顶视图上截取一张场景图,命名为map。2。找一个圆圈图标,作为playerTexture.3.创建panle作为地面。实际代码如下:public Texture map ; public Texture playerTexture ;float cubePosX=0 ;float cubePosY=0 ;public GameObject player ;public GameObject plane;float planeWidth;void Start(){ planeWidth=plane.GetComponent<MeshFilter>().mesh.bound...
阅读全文
摘要:unity3d获取鼠标3个键的响应如下:鼠标左键GetMouseButton(0)鼠标右键GetMouseButton(1)鼠标中键GetMouseButton(2)知道了鼠标的响应要做到按下右键再转动摄像机就简单了。建好一工程UNITY自带的脚本MouseLook.cs中已经把通过鼠标移动旋转摄像机的功能做好了。想要按下右键才再转动摄像机。只要在Update()的相应位置加上Input.GetMouseButton(1)就可以了。代码如下:void Update () { if(Input.GetMouseButton(1)) { if (axes == RotationAxes.M...
阅读全文
摘要:1、绘制面板时,Rect是以左上为(0,0)点的2、Camera.ScreenToWorldPoint,屏幕的左下为(0,0).
阅读全文
摘要:1:获得诸如Plane、Cube的size。 1):可以为它们添加Collider,然后使用XXX.collider.bounds.size;该方法获得的size和缩放比例有关,是一一对应的,缩放比例一旦改变,size也改变。 获得terrain的尺寸,在terrain的scale为1的情况下 te
阅读全文
摘要:Unity3D Pro 利用摄像头产生俯视地图效果第一步:单击菜单Assets->Create->Render Texture,创建一个Render Texture;第二步:单击菜单GameObject->Create Other->GUI Texture,创建一个GUI Texture,设置好位置和大小,这将为你俯视地图显示的位置和大小,并设置其Texture为刚创建的Render Texture;第三步:场景内新建一个相机,GameObject->Create Other->Camera;第四步:调整此相机的位置,调整到合适的位置,取消GUILayer和
阅读全文

浙公网安备 33010602011771号