unity

Unity API常用方法和类详细讲解2

自作多情 提交于 2020-02-29 16:01:11
Unity API常用方法和类详细讲解2 019-使用Coroutine实现颜色动画渐变 void Update() { if (Input.GetKeyDown(KeyCode.Space)) { StartCoroutine(Fade()); } } IEnumerator Fade() { for (float i = 0; i <= 1; i += 0.1f) { cube.GetComponent().material.color = new Color(i, i, i,i); yield return new WaitForSeconds(0.1f); } } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { StartCoroutine(Fade()); } } IEnumerator Fade() { while (true) { // cube.GetComponent<MeshRenderer>().material.color = new Color(i, i, i,i); Color color = cube.GetComponent<MeshRenderer>().material.color; Color newColor = Color.Lerp(color,Color.red,0.02f);

Unity API常用方法和类详细讲解4

被刻印的时光 ゝ 提交于 2020-02-29 15:35:28
Unity API常用方法和类详细讲解 036-二维向量Vector2中的静态方法 向量是结构体,是值类型,要整体赋值. transform.position=new Vector3(3,3,3); Vector3 pos=transform.position; pos.x=10; transform.position=pos; Vector2.LerpUnclamped 040-使用Random生成随机数 随机数Random.Range(0,10);不生成最大值 Random.Range(4,5f) 041-其他随机生成方法介绍 value 0-1之间的随机数; state 获取状态; rotation 四元素,控制朝向; insideUnitCircle 圆内随机生成; insideUnitSphere 球内随机生成; 042-Quaternion四元数介绍以及和欧拉角的区别 Quaternion 旋转; enlerAngles 欧拉角; rotation 四元数; 043-Quaternion中的LookRotation方法 Quaternion.LookRotation(position1-position2) Quaternion.Euler(new vector3)//将欧拉角转换为四元数 044-Quaternion中的Lerp和Slerp插值运算 旋转:Slerp

游戏开发社区

你。 提交于 2020-02-29 13:11:37
腾讯-游戏开发者社区 https://gameinstitute.qq.com/community/program?order_by=new 博客园-游戏开发 https://www.cnblogs.com/cate/gamedev/ 游资网-游戏开发论坛 https://bbs.gameres.com/ Unity渲染技巧 http://www.geekfaner.com/unity/index.html 来源: CSDN 作者: CXW30 链接: https://blog.csdn.net/qq_32605447/article/details/103968095

WPF PRISM开发入门二(Unity依赖注入容器使用)

邮差的信 提交于 2020-02-29 01:51:55
这篇博客将通过一个控制台程序简单了解下PRISM下Unity依赖注入容器的使用。我已经创建了一个例子,通过一个控制台程序进行加减乘除运算,项目当中将输入输出等都用接口封装后,结构如下: 当前代码可以点击 这里 下载。 运行效果如下: 下面将引入Unity类库,使用Unity来生成需要的对象实例。 先查看一下CalculateRelpLoop类, public class CalculateRelpLoop : ICalculateRelpLoop { ICalculateService _calculateService; IInputParserService _inputParserService; IInputService _inputService; IOutputService _outputService; public CalculateRelpLoop() { _calculateService = new CalculateService(); _inputParserService = new InputParserService(); _outputService = new ConsoleOutputService(); _inputService = new ConsoleInputService(); } public void Run() {

unity API常用方法1

冷暖自知 提交于 2020-02-28 21:48:31
一、 如何查看unity文档和API手册? 如果没有显示Manual手册和API文档,证明没有安装,点击About unity查看自己软件的版本,然后进行 安装补丁 安装方法: 打开unity网站——unity旧版本——选中自己相应的版本下载,安装——安装过程中勾选自己要安装的文档——在unity中即可打开 Manual手册:来介绍unity的各个功能 API:介绍每个类,每个方法的介绍 二、 Unity中的事件方法 先新建一个脚本来解释start和update方法 Start:开始的时候开始运行一次 Update:每帧运行一次 其他方法:打开Manual手册如下图所示,下图显示了各个事件方法以及事件方法的使用 在使用事件方法过程中,注意方法的大小写,事件方法首字母必须大写。 4.Reset:当被附加或reset的时候被调用 5.OnEnable:选择物体时执行 OnDisable:取消选择物体时执行 6.FixedUpdate:一秒调用60次 Update:每帧调用一次,先 LateUpate:同样每帧调用一次,但是是在Update之后调用 7.OnTrigger、OnCollision调用碰撞器 8.yield WaitForFixedUpdate是在FixedUpdate之后有一个等待 9.OnMouse:与鼠标有关的一种方法 10.OnDisable:物体的消失 三

Unity网格合并_材质合并

蓝咒 提交于 2020-02-28 13:35:13
写在前面: 从优化角度,Mesh需要合并。 从换装的角度(这里指的是换形状、换组成部件的换装,而不是挂点型的换装),都需要网格合并、材质合并。如果是人物的换装,那么需要合并SkinnedMeshRenderer,并重刷对应的骨骼列表。 示例: 1,新建两个Cube,和一个Cylinder。分别作为坦克的底盘(Cube_chassis)、炮塔(Cube_turret)、炮管(Cylinder_gun)。如下图所示。 2,为了测试换装,我们加入三个材质球,调整一下颜色,然后分别赋给底盘(Cube_chassis)、炮塔(Cube_turret)、炮管(Cylinder_gun)。 3,把炮塔(Cube_turret)和炮管(Cylinder_gun),变成底盘(Cube_chassis)的子物体。也就是说,新的模型,是以底盘为基础的。 4,用CombineMeshes方法,合并mesh。并且用代码把【材质】也一起“合并”了。把下面的Combine_Test.cs文件,拖拽到底盘(Cube_chassis)上,之后运行。 [csharp] view plain copy using UnityEngine; using System.Collections; public class Combine_Test : MonoBehaviour { // Use this for

adb操作集锦

坚强是说给别人听的谎言 提交于 2020-02-28 12:37:09
adb reboot adb重启设备 adb connect 127.0.0.1:5555 通过adb连接到ip地址为127.0.0.1对应的设备上 adb root adb获得root权限 adb remount 重新加载文件系统,获得可写权限 adb devices 查看已连接的设备 adb install -r C:\Desktop\test.apk 安装替换testapk文件 adb uninstall com.pro.test 卸载包名为com.pro.test的app adb kill-server 杀死服务器 adb start-server 启动服务器 adb shell pm list packages 查看设备上的所有应用包名 adb logcat -s Unity -d > c:\test.txt 保存unity相关日志到test.txt文档中 adb logcat : 打印Android所有Log adb logcat -s Unity : 过滤Unity的Logs 来源: CSDN 作者: 勤学者闯天涯 链接: https://blog.csdn.net/cgExplorer/article/details/104215818

Unity Shader - 函数整理

倖福魔咒の 提交于 2020-02-28 00:56:43
​​​​​ CG 标准函数 基本函数 功能描述 abs(x) 返回 x 绝对值 。 max(a, b) 返回 a 、 b 的较大值。 min(a,b) 返回 a 、 b 的较小值。 round(x) 返回 x 的四舍五入值。 ceil(x) 向上取整。例如:ceil(float(1.3)) = 2.0; floor(x) 向下取整。例如:floor(float(1.3)) = 1.0; clamp(x,min,max) 返回 x 限制在 [ min , max ] 范围内的值。 lerp(a, b, f) 返回在 [ a , b ] 范围内权值为 f 的插值。(权值为 0 - 1) smoothstep(a, b, x) 返回在 [ a , b ] 范围内插值为 x 的权值。(权值为 0 - 1) saturate(x) 返回 x 限制在 [ 0 , 1 ] 范围内的值。 sign(x) 返回输入值的正负。正值返回 1 ;负值返回 0 ; step(a, x) 如果 x < a ,返回 0 ,否则,返回 1 。 fmod(x, y) 返回 x / y 的浮点余数。( y != 0 ) frac(x) 返回 x 的浮点部分; isfinite(x) 判断 x 是否为有限值。是则返回 true;否则返回 false; isinf(x) 判断 x 是否为无限值。是则返回 true

Unity场景加载进度条

你。 提交于 2020-02-27 02:46:44
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class LoadingBarScript : MonoBehaviour { public Text loadingText; public Slider sliderBar; private AsyncOperation async; private int curProgressVaule = 0; void Start() { StartCoroutine(LoadScene()); } IEnumerator LoadScene() { async = SceneManager.LoadSceneAsync("SampleScene"); async.allowSceneActivation = false; yield return async; } void Update() { if (async == null) { return; } int progressVaule = 0; if (async.progress < 0.9f) { progressVaule = (int

Unity影响渲染顺序因素的总结

可紊 提交于 2020-02-26 18:49:02
https://blog.csdn.net/u011748727/article/details/68947207 如果不了解Shader中如何使用模板缓冲区,可能看不懂例子。 渲染顺序,我理解为进入显卡流水管线的顺序,会对Z、Stencil和Color Buffer带来影响。 当然,能否最终被绘制到屏幕上,还要看深度检测和模板检测的结果。 能够影响渲染顺序的因素有: 1、Camera Depth 相机组件上设置的相机深度,深度越大越靠后渲染。 2、Sorting Layer 在Tags & Layers设置中可见 3、Order In Layer 相对于Sorting Layer的子排序,用这个值做比较时只有都在同一层时才有效。 4、RenderQueue Shader中对Tags设置的“Queue”。 下面是结果: 1、Camera Depth 永远最高。Camera Depth小的一定先进渲染管线。 2、当Sorting Layer和Order In Layer相同时 RenderQueue小的先进渲染管线。 3、当Sorting Layer和Order In Layer不相同时! 3.1 当两个材质使用了不同的RenderQueue,且这两个RenderQueue都在[0~2500]或[2501~5000]时,SortingLayer和OrderInLayer的排序生效。