Unity3D 之 C# 脚本】的更多相关文章

  近期在学习Shader时感觉Shader语言參数众多.语法诡异,假设每次都从头開始写Shader一定是一件痛苦的事情.假设能够在本地定义好一组标准的Shader模板,这样当我们须要实现某些效果相似的Shader时,就能够在这个Shader模板的基础上进行改动. 由于Shader文件是一个文本文件,所以我们能够很easy地创建这样一个模板,在这个模板中我们能够进一步完好相关的參数凝视,这样就不用每次写Shader的时候都须要查文档了,从这个角度出发,就进入了这篇文章的正题:扩展Unity3D编…
经过上一篇的学习,我相信开发环境您已经搭好了,如果还没有搭好可以百度一下. 今天主要讲的有以下几点: 第一:Unity3D中的C#脚本与.net中的C#写法的区别 1.Unity3D C#脚本不支持命名空间. 2.Unity3D C#脚本初始化不要放到构造函数中,而是放到Start()方法中. 3.Unity3D C#脚本 get/set写法属性不被识别,直接public字段就能当属性用,private或者不写修饰符就是私有字段. 4.脚本中文问题:代码中有中文的话会有乱码问题.到资源管理器中打…
时间:2016年9月24日17:38:21   作者:yexiaopeng 博客园     在unity3d的世界中,其坐标系可分为四种,世界坐标系-WorldSpace   本地坐标系-LocalSpace  屏幕坐标系-ScreenSpace 视口坐标-ViewPortSpace.其中作者本人当前面对的是世界坐标系和本地坐标系的问题.本文讲诉这两个坐标系对物体运动的影响,其他的坐标系涉及到再做说明.    在学习unity3d官方例子(太空大战)的过程中,编写脚本对陨石的运动进行控制时发现旋…
原地址:http://www.xuanyusong.com/archives/2418#comments 最近在研究Unity3D脚本批量打包,比如在Android平台下各种不同分辨率和不同内存大小的机器,可能还有不同的渠道包,不同渠道可能用的SDK都不一样,这一切的一切都表明你的代码无法做到自适应的,除非批量打包提供各个平台的预定义标签#define . Unity默认提供了一些预定义标签如: UNITY_EDITOR  : 编辑器模式下. UNITY_STANDALONE:PC Mac Li…
ExportAssetBundles.rar // C# Example // Builds an asset bundle from the selected objects in the project view. // Once compiled go to "Menu" -> "Assets" and select one of the choices // to build the Asset Bundle using UnityEngine; us…
引用类型 :class ,interface, 数组 , delegate , object ,string (object 是C#中所有类型,包括所有的值类型和引用类型的根类,string 类型是一个从object类直接继承的密封类型(不能再被继承),其实例表示Unicode字符串) try后面一个finally,try中有一个return,那么finally中的代码会不会运行?如果运行,是在return后还是return前答:会运行,并且在return 后运行. public static…
1. 先有一个普通的 继承自 MonoBehaviour 的脚本. 2. 创建一个 Editor 文件夹, 写 关于 UnityEditor 的脚本 都要放在这个文件夹下,不然会编译出错. 具体的实现如下: using UnityEngine; using UnityEditor; using System.Collections; [CustomEditor(typeof(TestBehaviour))] // 这里是表示,这个Editor是哪个脚本的界面 [CanEditMultipleOb…
怀着无比激动的心情下载了Unity3D,按照网上的教程试着制作我的第一个U3D"作品":camera绑定绘制GUI显示"Hello, World",很简单的例子,因此很快就弄完顺利运行,可是我想试试中文字符的,原以为不会出问题,可是真的出问题了:在u3d运行时显示乱码.自己顺藤摸瓜,通过修改u3d的c#代码模板顺利解决问题: ① 定位到:Unity\Editor\Data\Resources\ScriptTemplates ② 用EditPlus打开:81-C# S…
using UnityEngine; using System.Collections; public class ProjectileTest : MonoBehaviour { public GameObject target; ; private float distanceToTarget; private bool move = true; void Start () { distanceToTarget = Vector3.Distance (this.transform.posit…
下述内容不对c#语法做过多讲解,仅对已入门并有兴趣的同学做为学习和拓展的资料 大家在Unity制作的过程中一定都使用过UI功能,那么很多人也一定见过这个面板: 那么我们如何能在自己的脚本中添加上像OnClick这样的面板呢. UnityEventUnity中内置了一个UnityEvent类作为事件处理的类,我们只要在脚本中声明出来,Unity便会自动添加到脚本面板上,这样便可以在脚本之外添加移除事件,非常方便. 脚本代码using System.Collections;using System.…
在Unity3D中.有yield语句它负责延迟操作,yield return WaitForSeconds(3.0); //等待 3 秒 查看unity3d脚本手冊,使用方法须要在对应的格式. 以下代码含义就是,载入图片显示等待6秒后进入场景level1中. using UnityEngine; using System.Collections; public class init : MonoBehaviour { // Use this for initialization public T…
void Update () { )) { if (axes == RotationAxes.MouseXAndY) { // Read the mouse input axis rotationX += Input.GetAxis("Mouse X") * sensitivityX; rotationY += Input.GetAxis("Mouse Y") * sensitivityY; rotationX = ClampAngle (rotationX, mi…
using UnityEngine; using System.Collections; /// MouseLook rotates the transform based on the mouse delta. /// Minimum and Maximum values can be used to constrain the possible rotation /// To make an FPS style character: /// - Create a capsule. /// -…
一般安卓自动化打包直接会生成个APK出来,但是我不想生成APK,我想生成Eclipse项目. 然后在自动化完成后面的打包工作.     1 2 3 4 5 6 7 8 9 10 11 using UnityEngine; using System.Collections; using UnityEditor;   public class NewBehaviourScript : Editor {       [MenuItem("Tools/Build Google Project"…
报错截图: 报错原因: c#文件创建以后再改名,会报错找不到对应类. 类名和文件名要一致才行.(这个是Unity要求,c#本身不要求一致)…
unity3d是支持vs2010的,但是有很多开发者反应,unity3d中的C#脚本不能用vs2012打开.我想了一下,先进入存放C#脚本的目录,在设置里面C#文件的打开方式,选择用vs2012打开,这样就可以了.不过可能稍稍有一丝麻烦,每次都要进入C#脚本目录.如果有更好的方法,可以交流. 另外,还有一种方法,大家可以试一试行不行. Unity3D自带的MonoDevelop编辑器无论是js还是c#代码提示都很差,很诡异的就是变量名和方法名有的时候提示有的时候不提示.不过用Visual Stu…
首先要明白,这三种说的混用是指文件级别的混用,就是说一个文件是由一种语言写的.而不是说你这一个文件可以混用这三种语言,注意这是不允许的. 第二要明白,在unity3d中为什么可以使用三种语言混合开发?这个问题简单说一下,我举一个例,如英语和中文,如果你不懂英文,你就需要别人将英文翻译成中文,你才能听懂.同样你懂英文,不懂中文,你就需要把中文翻译成英文.如果世界就二种语言,那就太好了,很可措,不是,如果你听我们的老大哥俄文怎么办,找人将俄文翻译成中文,英文,同时将英文,中文翻译成俄文,这工作量还可…
1.首先下载opencv2.4.10,解压缩后放在合适的地方,然后根据自己的电脑(32位或64位)选择X86或X64,我的是32位,将“opencv存放路径\build\x86\vc12\bin”加入到系统的path环境变量中. 2.下载opencvsharp,它是一个给.net 框架使用的opencv卷绕(wrapper of OpenCV for .NET Framework),它不仅支持.net 框架,也支持.net 框架的另一个开源跨平台实现mono.Unity3D中的CS脚本的执行就是…
Unity3D自带的MonoDevelop编辑器无论是js还是c#代码提示都很差,很诡异的就是变量名和方法名有的时候提示有的时候不提示.不过用Visual Studio代替MonoDevelop这个问题就可以解决了.(只限c#,Unity3D里的js不是原生的js,不建议在Visual Studio中编辑) 在Unity3D 4中关联Visual Studio 2012的步骤: 1.在Unity3d中选择菜单Edit->Preferences 2.在弹出窗口点击External Tools->…
Unity3D自带的MonoDevelop编辑器无论是js还是c#代码提示都很差,很诡异的就是变量名和方法名有的时候提示有的时候不提示.不过用Visual Studio代替MonoDevelop这个问题就可以解决了.(只限c#,Unity3D里的js不是原生的js,不建议在Visual Studio中编辑) 在Unity3D 4中关联Visual Studio 2012的步骤: 1.在Unity3d中选择菜单Edit->Preferences 2.在弹出窗口点击External Tools->…
开发环境 Window 7 Unity3D 3.3.0 MB525 defy Android 2.1-update1 本次学习: 1.认识Unity 2.Unity3D环境搭建与Android软件生成 3.Unity3D基本使用方法 1.认识Unity3D Unity3D是一个让开发者能够在多平台制作同一款游戏的游戏开发工具,有专业的图像处理和游戏引擎,能做出各式各样的游戏. 羽化以前认为Android游戏开发只能在Eclipse里面死活敲代码,也许是自己阅历不够,不知道游戏引擎能给游戏开发带来…
将Unity3D游戏移植到Android平台是一件很容易的事情,只需要在File->Build Settings中选择Android平台,然后点击Switch Platform并Build出apk即可.通常,我们的工作不仅限于此,一般还需要给手机游戏加入计费.广告等功能.这些功能一般没有提供Unity3D插件,我们需要将游戏导出为Android工程,然后添加这些功能:或者,我们根据这些计费sdk来做自己想要的Unity3D插件,然后直接在Unity3D中使用. 1.从Unity3D到Androi…
第六章 Unity3D中的C#Script编程的注意事项 也许您在学习Unity3D之前,已经是一位C#的编程高手了.但在Unity3D中的C#并不像真正的C#那般强大,在Unity3D的C#中必须全部继承自MonoBehaviour.下面为一段C#Script的完整代码: 除此之外它不支持空间命名,但官方说他们很有可能会在以后的版本中支持这一功能. 在Unity3D中,JavaScript和C#Script的编程效果近乎一样.只是为了不同程序爱好者设立了不同的编程模式.并且JavaScript…
在使用 Unity3d 倒入Fbx模型的时候,动画的动画片段需要自己手动添加模型多了以后会是一个不小的工作量. Unity3d支持 编辑器脚本来控制资源导入的过程.添加一个 AssetPostprocessor 监听其中的 OnPreprocessModel 方法,在其中使用 ModelImporter 的 clipAnimations 属性来为导入的动画添加动画片段. 我的项目中美术给的模型中,按类型划分,每一个类型都有一套动画.我是采用的方法是 分别将不同类型的模型放置到不同的文件夹,通过路…
前言 上节说到了Lua脚本与unity3d中C#脚本的数据交互,但是我感觉上节中的数理方式不太好,因为我们是把Lua脚本以字符串形式粘贴到C#脚本中的,如果读取配置数据都这样做的话,那就太可怕了.想想看,一个C#脚本中有一个长长的字符串,十分不方便,也非常混乱.那么有没有更好的处理方式呢?答案是肯定的.这节我们就来看看如何读取外部的Lua脚本吧,这样的话,Lua和C#就是完全分开的,便于维护和理解. 在宿主脚本中(C#中)的处理方式是确定的,主要是如何来获取外部的Lua脚本,以下会详细说明读取外…
注意:unity3d与原生代码的调用需要pro版本,此点注意了. 一.IOS平台,由于IOS平台的原生应该是objectC,所以通讯起来非常的简单, 1.原生代码调用u3d代码: 1.1.在Xcode项目上调用unity3d自带的dll框架,使用其中的发消息命令(UnitySendMessage)就可以向u3d的代码里发送事件消息了,这里第一个参数便是u3d约定的gameObject对象名和函数名,第三个参数是额外的消息参数. 1.2.然后是接收端,也就是unity3d这里的代码 ,这里需要在u…
最近开始试着玩Unity3D,要为场景中的物体编辑脚本.Unity3D推荐的脚本语言是C#,在Unity打开C#就会使用Visual Studio来进行编辑. 启动Visual Studio之后注意到,Unity类和方法名都没有代码补全,而且Unity似乎也编译不过: 在网上找了一圈,发现并没有人遇到这样的问题,那可能性比较大的应该就是环境问题了. 我之前先安装过Visual Studio进行C/C++开发,之后才安装Unity.初步断定是我的Visual Studio没有C#语言和Unity类…
0x00 前言 由于工作繁忙所以距离上一篇博客已经过去一个多月的时间了,因此决心这个周末无论如何也得写点东西出来,既是总结也是分享.那么本文主要的内容集中在了委托的使用以及内部结构(当然还有事件了,但是受制于篇幅故分为两篇文章)以及结合一部分Unity3D的设计思考.当然由于时间仓促,文中难免有一些疏漏和不准确,也欢迎各位指出,共同进步. 0x01 从观察者模式说起 在设计模式中,有一种我们常常会用到的设计模式——观察者模式.那么这种设计模式和我们的主题“如何在Unity3D中使用委托”有什么关…
http://www.shouce.ren/post/d/id/108632 XSLT参考手册-新.CHMhttp://www.shouce.ren/post/d/id/108633 XSL-FO参考手册-新.CHMhttp://www.shouce.ren/post/d/id/108634 XQuery参考手册-新.CHMhttp://www.shouce.ren/post/d/id/108635 XPath参考手册-新.CHMhttp://www.shouce.ren/post/d/id/1…
原理 Unity3D如何通过CombineChildren和MeshCombineUtility优化场景? 首先解释下联结的原理和意思:文档里说,显卡对于一个含100个面片的物体的和含1500个面片的物体的渲染消耗几乎是等价的.所以如果你有N个同一材质的东西,那么把他们联成同一个物体再统一用一个material那么对于显卡的渲染消耗就要降低N倍. 方法 1.直接在max等工具里联结好,贴上同一材质再导进来,这方法固然好却不灵活,而且通常不实用,因为项目里大量同一材质的东西都是Unity>系统的树…