unity

Unity3D新老动画的倒序播放

半城伤御伤魂 提交于 2020-02-01 02:26:55
在使用高版本unity的时候,自己制作动画时,默认添加Animator(新动画)组件,若是一般的单个动画正常播放,新老动画差不离,就业没有在意。后期制作过程中出现倒序播放的要求,找了好久才找到,原来新老动画倒序播放还是有些区别的!(终究还是个Low瓢\(^o^)/~)一起来看看吧! 一、老动画Animation 设置指定动画的起始时间,播放速度,再执行播放方法即可 正序: void PlayAnimation() { Animation _animation = this.GetComponent<Animation>(); string animClip = "_main_window"; _animation[animClip].time = 0; _animation[animClip].speed = 1f; _animation.Play(animClip); } 倒序: void RevertAnimation() { Animation _animation = this.GetComponent<Animation>(); string animClip = "_main_window"; _animation[animClip].time = _animation[animClip].clip.length; _animation[animClip].speed

拓展编辑器 6 - GameView

人走茶凉 提交于 2020-02-01 01:43:32
Game 视图也可以扩展,主要是可以指定 [ExeuteInEditMode] 来指定在非运行时调用 这个比较简单,直接贴个代码吧 using UnityEngine ; [ ExecuteInEditMode ] // 之时编辑模式下也执行 public class GameViewExtend : MonoBehaviour { # if UNITY_EDITOR private void OnGUI ( ) { if ( GUILayout . Button ( "click" ) ) // 非运行时,不会马上响应,而是在unity失去焦点,再重新获得焦点后响应。 { Debug . Log ( "click:" + name ) ; } GUILayout . Label ( "XXXXXXXXXXXXXXX" ) ; } # endif } 来源: CSDN 作者: lrh3025 链接: https://blog.csdn.net/lrh3025/article/details/103747211

unity 利用扩展编辑器添加摆放好的游戏物体

孤街醉人 提交于 2020-02-01 01:16:36
添加扩展编辑器 将代码放在Editor文件夹下,这个文件夹下的所有脚本在场景运行前会先被预编译,而且不会被打包进去。 编辑器脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public class SpawnManager : EditorWindow { [MenuItem( "Tools/Click Me!" )] // 创建菜单 Tools/Click Me! static void PatternSystem() { GameObject spawnManager = GameObject.Find( "PatternManager" ); if (spawnManager != null ) { var patternManager = spawnManager.GetComponent<PatternManager>(); if (Selection.gameObjects.Length == 1) // 如果当前鼠标只点击了 1 个游戏物体 { var item = Selection.gameObjects[0].transform.Find( "Item" ); // 获取当前点击的游戏物体的 item 子节点

翻译5 Unity Advanced Lighting

自古美人都是妖i 提交于 2020-01-31 17:54:39
使用多个光源渲染 支持多光源类型 使用光照信息 计算顶点光照 了解球谐函数 上部分介绍了Unity的基本单个光源,现在学习多个光源参与渲染物体,使用Unity5.6.6f2 1 Include Files 为了给Shader增加支持多个光源,我们需要增加更多Pass通道。但是这些Pass最终包含了几乎完全相似的代码,为了避免代码的重复性,我们可以通过把着色器代码移动到一个CG文件,然后在Shader代码中引用该文件 在文件目录中手动创建一个 MyLighting.cginc 文件,再把FirstLighting.shader内从#pragma以下到ENDCG以上区间内代码拷贝进.cginc文件。这样我们不直接在shader中写这些重复的代码,通过include引用使用它。 注意, .cginc 文件也提供了类似的避免重复定义,#define XXX_INCLUDED,再把整个文件内容放置在预处理文件块中。 #if !defined(MY_LIGHTING_INCLUDED) #define MY_LIGHTING_INCLUDED //… #endif 2 第二光源-Drection 新建两个方向光对象,参数设置如下图: 2-1. 两个光源参数 现在场景中有两个光,但是每个物体看起来没有什么区别。现在我们一次只激活一个光源,看看有什么变化。 2-2. 左main光源

unity相关问题

让人想犯罪 __ 提交于 2020-01-31 17:48:24
unity相关问题,先查阅unity的API!!! unity相关问题,先查阅unity的API!!! unity相关问题,先查阅unity的API!!! 来源: CSDN 作者: 收破烂家电 链接: https://blog.csdn.net/qq_33174548/article/details/104122883

unity调试native c/c++ dll

不羁的心 提交于 2020-01-31 15:28:23
最近使用xlua,需要添加自定义的c lua库。研究了一下unity调试native c/c++ dll。方法如下: 通过Unity打开VS工程 VS菜单栏【工具】-> 【选项】 在选项对话框中设置【适用于Unity的工具】->【访问项目属性】为True 打开项目属性页面,选中【启用本地代码调试】 将C/C++的dll和pdb都复制到plugins相应的文件夹下 打开C/C++工程,附加到进程Unity.exe 至此即可调试C/C++工程。如果还是不行,要检查C/C++工程的调试功能是否开启: 【C/C++】->【常规】,将【调试信息格式】设置为:程序数据库(/zi) 【C/C++】->【优化】,将【优化】设置为:已禁用(/Od) 【链接器】->【调试】,将【生成调试信息】设置为:生成调试信息(/DEBUG) 来源: https://www.cnblogs.com/vkensou/p/12244986.html

unity之LOD以及渲染队列

℡╲_俬逩灬. 提交于 2020-01-31 00:46:55
LOD设置 LOD全称Level of Detail 作用:unity引擎会根据不同的LOD值在不同的平台上使用不同的SubShader 注意:在上几篇博客中已经说过在一个着色器中会有一到多个SubShader,但是系统每次只会执行一个子着色器,选择子着色器的标准就是根据子着色器所设置的LOD的值来进行选择,每一次使用着色器,都会选择第一个小于等于LOD值的子着色器。 如何设置Shader的LOD的值 :通过Shader maximumlOOD来设置最大的LOD值即Shader.globalMaximumLOD; unity内置着色器分LOD等级 注意在设置最大LOD值的时候不能小于 Ver texLit kind of shaders 的值(100),否则unity将不会显示使用此着色器的物体 Demo: 场景 shader代码 Shader "Custom/LODShader" { Properties { _Color ( "Color" , Color ) = ( 1 , 1 , 1 , 1 ) _MainTex ( "Albedo (RGB)" , 2 D ) = "white" { } _Glossiness ( "Smoothness" , Range ( 0 , 1 ) ) = 0.5 _Metallic ( "Metallic" , Range ( 0 , 1 )

[Unity]关于Unity创建项目没有sln文件的问题

青春壹個敷衍的年華 提交于 2020-01-30 15:45:57
这个问题主要是没有在 edit -> preferences -> External Tools -> external script editor中设置你需要的启动器所以根本没生成sln文件,只要把这个设置为你使用的VS版本就可以了 来源: CSDN 作者: 拉银 链接: https://blog.csdn.net/qq_22515353/article/details/104114084

Unity编辑器中调试ARCore

北慕城南 提交于 2020-01-30 10:31:22
Unity编辑器中调试ARCore的连接方式有两种;1.是通过USB连接调试 2.是通过Wi-Fi连接调试 一.USB连接调试 1.需要一台可以运行ARCore的安卓设备,并确保已经安装了ARCore 2.一根可以将您的手机连接至开发计算机的 USB 电缆 3. 确保您的手机上启用了 开发者选项和调试 4.在 Unity 编辑器中点击 Play, 5.将您的手机四处移动以检测平面、放置物体或使用其他您要在自己的应用中测试的 ARCore 功能。 6.有限的触摸支持, InstantPreviewInput 不支持: 二.通过Wi-Fi连接 1.确保您的手机和开发计算机连接到同一 Wi-Fi 网络。 2.确保端口没有被占用,和没有被防火墙拦截 您开发系统上的任何防火墙软件都必须配置为允许 Unity 接受 49838 端口上的 TCP 连接。 您的路由器和/或网络防火墙必须停用 客户端隔离 ,以便您的手机和开发计算机可通过您的网络相互直接通信。 您的路由器和/或网络防火墙必须允许端口 49838 上从您的开发计算机到多播地址 239.170.165.207 的广播流量。 3. 在 Unity 中,验证在 Edit > Project Settings > ARCore 中勾选了 Instant Preview Enabled 。 4.在 Unity 编辑器中点击 Play, 5

Unity Shader——Writing Surface Shaders(1)——Surface Shader Examples

我怕爱的太早我们不能终老 提交于 2020-01-30 04:09:00
  这里有 Surface Shader 的一些例子。下面的这些例子关注使用内建的光照模型;关于如何使用自定义光照模型的例子参见 Surface Shader Lighting Examples 。 简单   我们将会以一个非常简单的shader作为开始,并在此基础上逐渐完善。下面这个shader会把表面颜色置成“白色”。它使用内建的Lambert(漫反射)光照模型。 Shader "Example/Diffuse Simple" { SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM #pragma surface surf Lambert struct Input { float4 color : COLOR; }; void surf (Input IN, inout SurfaceOutput o) { o.Albedo = 1; } ENDCG } Fallback "Diffuse" }   以下是使用两个 lights 作用在某个模型上的样子: 纹理   一个全白的对象太无聊了,所以让我们添加一个纹理。我们将会在shader中添加一个 Properties block ,这样我门就能在材质中获得一个纹理选择器。以下粗体为其他改变: Shader "Example/Diffuse Texture" {