PlayMaker
PlayMaker简介 PlayMaker是由第三方软件开发商Hutong Games开发完成。它的Logo是一个中文的“玩”字(PS:看来中国文化声名远播)。 它既是一个可视化脚本工具,又是一个分层逻辑框架。 设计师、程序员使用PlayMaker能够很快的完成游戏原型动作,既适合独立开发者,又特别适合团队合作。 在线网站 Unity Asset Store 商店资源 https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368 PlayMaker优点 1.很多动作行为(例如:跑,跳,攻击等)只需要通过简单状态机FSM(Finite state machine)就能实现,根本不用写一句代码; 2.方便简洁的图表管理每个状态机; 3.播放游戏,可以实时错误检查; 4.集成的帮助,可以让我们快速查看行为说明; 5.设置断点和单步执行状态 6.可以编写自定义行为,让在出现在我们的行为列表(这就要求有点语言基础了) 7.支持各类插件配合使用,加速开发进程(例如Ngui, 2D Toolkit, A...
DoTween
DOTween简介 DOTween是一个免费的Unity3D动画插件,少量编码即可以实现常见的动画效果 DOTween和iTween iTween的性能没有DOTween好,因为iTween每个动画使用一个Update维护 安装 Window->AssetStore下载 导入Package 菜单栏->Tools->DOTween Utility Panel->Setup按钮 更新 删除Resources/DOTweenSettings文件 删除老的DOTween安装目录Demigiant 重新导入Package,再走安装流程 在线手册 http://dotween.demigiant.com/documentation.php https://shenjun4unity.github.io/unityhtml/%E7%AC%AC9%E7%AB%A0%20DOTween/9.2%20%E6%96%87%E6%A1%A3.html 命名空间1using DG.Tweening 常用方法123456DoFade()//淡入或淡出DoLocal...
Unity脚本的生命周期
生命周期中常用方法 特性序列化字段:在编辑器中显示私有变量12[SerializeField] private int a = 1; 在编译器中隐藏字段12[HideInInspector] public int b = 2; 只能在范围内设置值12[Range(0,15)] public int c = 3; 一、初始化相关的方法Awake()1private void Awake() {......} 脚本被加载到场景中时自动调用 是整个生命周期中最先执行的方法 当脚本实例被加载时会自动调用这个方法 整个生命周期中只执行一次 该方法主要用于在游戏开始之前初始化对象或游戏状态,如:使用 GameObject.FindWithTag()查询游戏对象。 OnEnable()1private void OnEnable() {......} 当对象变为可用或激活状态时调用,判断对象或脚本是否可用 执行完Awake()方法后,如果当前脚本可用或可激活,按正常执行顺序则会执行OnEnable()方...
Unity查找物体的6种方法详解
前言 无论是哪种方法,为了性能的考虑,请不要将获取物体的代码写在Update里 请注意GameObject和gameObject的区别 请注意Transform和transform的区别 查找物体方法(速查表) GameObject(Unity的所有物体的基类,针对全局,方法是静态方法,所以可以直接用)注意:非gameObject,注意大小写,gameObject指的是该物体,gameObject无这些方法 transform(是本物体的transform的组件,所以查找都是针对本物体的)注意:非Transform,注意大小写,Transform指的是Transform类型,Transform无这些方法 P.S. transform效率比GameObject高,强烈建议使用transform 查找物体的6种方法 方法 优点 缺点 GameObject.Find(物体名字) 递归遍历全局物体,直到找到第一个为Capsule的物体 全局搜索 1. 无法查找隐藏对象2.效率低下(相当于递归遍历查找) GameObject.Find(“GameObjec...
Gameobject,gameObject,Transform,transform的区别和关联
Gameobject和gameobject Gameobject是一个类型,所有的游戏物件都是这个类型的对象。 gameobject是一个对象, 就跟java里面的this一样, 指的是这个脚本所附着的游戏物件 12345678public class ShowSliderValue : MonoBehaviour { private GameObject obje; //定义GameObject类型的指针 void Start(){ Text lal =gameObject.GetComponent<Text> (); //通过gameObject获取到Text组件. Debug.Log ("Text" + lal.text); //打印获取到组件的中的text的属性 } } Text lal =gameObject.GetComponent<Text> () 中不使用gameObject , 直接通过GetCompone...
Unity常用的基础 API
Unity常用的基础 API 在线手册 Unity 脚本API 2020.02 unity5圣典中文API手册.chm 组件 坐标系 鼠标事件 Time类 Vector3 Transform Gameobject lnput类 TransformTransform组件的成员变量 组件名称 组件作用 position 世界坐标中的位置 localPosition 父对象局部坐标系中的位置 enlerAngles 世界坐标系中以欧拉角表示的旋转 localEulerAngles 父对象局部坐标系中的欧拉角 right 对象在世界坐标系中的右方向 up 对象在世界坐标系中的上方向 forward 对象在世界坐标系中的前方向 rotation 世界坐标系中以以元数表示的旋转 localRotation 父对象局部坐标系中以四元数表示的旋转 localScale 父对象局部坐标系中的缩放比例 parent 父对象的Transform组件 Transform组件的成员函数 组件名称 组件作用 Translate 按指定的...
Unity基础界面
Unity 版本号与许可证2017.1.0 、2017.1.1 、 2017.2.0 、2017.3.4 、 5.5.3 p4 小版本号高出现bug可能性更小;一台电脑可以安装多个版本的unity,但是需要安装在不同路径;安装Unity时不能有中文路径;unity项目路径也不要有中文 菜单栏与快捷键 File (文件菜单) File 菜单主要用于打开和保存场景项目,同时也可以创建新场景。 File 菜单功能及快捷键列表: 命令 描述 快捷键 New Scene(新建场景) 创建一个新的场景 Ctrl + N Open Scene(打开场景) 打开一个已经创建的场景 Ctrl + O Save Scene(保存场景) 保存当前场景 Ctrl + S Save Scene As(另存场景) 将当前场景另存为一个新场景 Ctrl + Shift + S New Project(新建项目) 新建一个项目 无 Open Project(打开项目) 打开一个已经创建的项目 无 Save Project(保存项目) 保存当前项目 无 Build Se...
Unity简介
Unity 简介由 Unity Technologies 公司开发的用于轻松创建游戏和三维互动内容的开发工具,是一个国际领先的专业游戏引擎。 Unity 网站资源 (CN) 资源名称 网址 Unity中国官网 https://unity.cn/ Unity开发者社区 https://developer.unity.cn/ Unity Learn Premium https://unity.com/cn/products/unity-learn Unity 网站资源 (World) 资源名称 网址 Unity官网 http://unity3d.com Unity论坛 http://forum.china.unity3d.com/fourm.php Unity博客 http://answers.unity3d.com/index.html Unity官方在线案例 http://unity3d.com/gallery/demos/live-demos Unity官方项目源文件 http://nity3d.com/gallery/demos...
C#笔记(41)Lambda表达式
Lambda表达式简介Lambda表达式是比匿名方法更简洁的一种匿名方法语法。Lambda运算符:所有的Lambda表达式都是用新的Lambda运算符 =>,可以叫它,“转到”或者 “成为”。运算符将表达式分为两部分,左边指定输入参数,右边是lambda的主体。 lambda表达式:1.一个参数:param=>expr2.多个参数:(param-list)=>expr 匿名方法转换为lambda表达式的步骤 删除delegate关键字 在参数列表和匿名方法主体之间放lambda运算符=>.lambda运算符读作goes to 简化lambda表达式 编译器还可以从委托的声明中知道委托参数的类型,因此lambda表达式允许我们省略类型参数。 带有类型的参数列表称为显示类型 省略类型的参数列表称为隐式类型 如果只有一个隐式类型参数,我们可以省略周围的括号 lambda表达式允许表达式的主体是语句块或者表达式。如果语句块包含了一个返回语句,我们可以将语句块替换为return关键字后的表达式(即 去掉关键字return) 实例...
C#笔记(40)if(){}try{}catch{}语句
try…catch 语句用来测试代码中的错误,try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。 用法12345try { //可能会导致错误的代码} catch (error) { //在错误发生时怎么处理} 实例12345try { window.someNonexistentFunction(); //调用不存在的函数} catch (error) { alert('An error happened!');} finally子句虽然在try-catch语句中是可选的,但finally子句一经使用,其代码无论如何都会执行。换句话说,try语句块中的代码全部正常执行,finally子句会执行;如果因为出错而执行了catch语句块,finally子句照样还会执行。只要代码中包含finally子句,则无论try或catch语句块中包含什么样的代码——甚至return语句,都不会阻止finally子句的执行。来看下面这个函数: 1...
C#笔记(39)多线程
多线程线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。 线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。 到目前为止我们编写的程序是一个单线程作为应用程序的运行实例的单一的过程运行的。但是,这样子应用程序同时只能执行一个任务。为了同时执行多个任务,它可以被划分为更小的线程。 线程生命周期线程生命周期开始于 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。 下面列出了线程生命周期中的各种状态: 未启动状态:当线程实例被创建但 Start 方法未被调用时的状况。 就绪状态:当线程准备好运行并等待 CPU 周期时的状况。 不可运行状态:下面的几种情况下线程是不可运行的: 已经调用 Sleep 方法 已经调用 Wait 方法 通过 I/O 操作阻塞 死亡状态:当线程已完成执行或已中止时的状况。 主线程在 C# ...
C#笔记(38)不安全代码
不安全代码当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。 指针变量指针 是值为另一个变量的地址的变量,即,内存位置的直接地址。就像其他变量或常量,您必须在使用指针存储其他变量地址之前声明指针。 指针变量声明的一般形式为: 1type* var-name; 下面是指针类型声明的实例: 实例 描述 int* p p 是指向整数的指针。 double* p p 是指向双精度数的指针。 float* p p 是指向浮点数的指针。 int** p p 是指向整数的指针的指针。 int*[] p p 是指向整数的指针的一维数组。 char* p p 是指向字符的指针。 void* p p 是指向未知类型的指针。 在同一个声明中声明多个指针时,星号 ***** 仅与基础类型一起写入;而不是用作每个指针名称的前缀。 例如: 12int* p1, p2, p3; // 正确 int *p1, *p2, *p3; // 错误 下面的实例说明了 C# 中使用了 ...






