unity

Unity 欧拉角万向节锁的原理

只谈情不闲聊 提交于 2020-01-26 04:29:42
网上文章很多,有些写的很详细,但是我个人理解起来有不是很顺畅,把几个重要的知识点整理一下 欧拉角 :欧拉角用于控制物体的旋转角度,在Unity中欧拉角的表示就是一个Vector3,例如 Vector3 v3 = new Vector3(30,30,30) Unity的欧拉角 旋转顺序 是 Z-X-Y,这个旋转顺序在不同的软件,行业有所不同,没有一个全球统一标准。 旋转顺序 :同样的输入值,不同的旋转顺序,得到的结果不同 静态欧拉角 :旋转的参考坐标系保持不变(Space.World),这种情况不产生万向节锁 动态欧拉角 :旋转的参考坐标系为物体自身的局部坐标系(Space.Self),特定情况下会产生万向节死锁 万向节死锁 : 中间旋转顺序轴(X) 旋转90°,使前顺序轴(Z)和 世界坐标系 的后顺序(Y)轴重叠,这样在世界坐标系的观察空间内,物体绕自己的Z轴旋转,就跟物体绕着世界坐标系的Y轴旋转一样,这样看物体坐标的Z轴自由度似乎消失了,这种情况就称为万向节死锁。 欧拉角存在多对一的关系,即物体的最终旋转情况,可以用多个欧拉角来表示,例如 Vector3(90,30,30) 等价于 Vector3(90,20,20) 且慢,我刚刚,看到一个跟规定不符合的情况,Uniyt的旋转顺序似乎是 Y-X-Z !!!!!!为什么大家都说是Z-X-Y啊?? 如果是Y-X-Z

【Unity|C#】C#基础总结

拈花ヽ惹草 提交于 2020-01-26 03:53:18
【学习资料】 > 在线文档 官方文档: https://docs.microsoft.com/zh-cn/dotnet/csharp/ 菜鸟教程: https://www.runoob.com/csharp/csharp-tutorial.html > 视频教程 腾讯学院、Siki学院 【笔记】 基础语法      根据学习资料,自学学习。 标识符命名 标识符必须以 字母 、 下划线(_) 或 @ 开头,后面可以跟一系列的 字母、数字(0-9)、下划线(_)、@。 不能使用C#保留的关键字 ,如 if ,但可以为 @if 值类型及取值范围 常量前缀指定基数 十进制:没有前缀 十六进制:0x 或 0X 。如:0x10 表示 十进制 16 八进制:0 。如:010 表示 十进制 8 二进制: 0b 。如:0b10 表示 十进制 2 常量 后缀指定精度(U 和 L 分别表示unsigned和long) u 或 U : 10U 表示 uint l 或 L : 10L 表示 long LU组合: 10LU 表示 ulong 特殊运算符 对象类型(object) 所有类型的最终基类(包括值类型、struct、class)都是object。 装箱: 将 值类型 转为 object 拆箱: 将 objec t转为 值类型 装 箱/拆箱会产生一定的消耗,尽量少用。 访问修饰符 public 所有对象

Unity学习笔记

南楼画角 提交于 2020-01-26 03:52:17
【C#】 【Unity基础】 【Unity进阶】 【UGUI】 【Unity ECS】 【Unity常用插件】 【AssetBundle】 【资源管理】 【热更新技术】     xLua、ILRuntime 【Unity Shader】 【Unity性能优化】 【PhotonServer】 来源: https://www.cnblogs.com/shahdza/p/12233693.html

Unity3D 将 Unity 嵌入WPF中的一些研究笔记

爱⌒轻易说出口 提交于 2020-01-26 02:53:19
一. 在 WPF 中使用 WebBrowser,直接打开 WebPlayer.html 以这种方式有一个问题是. 无法在 WebBrowser 的上面 放置其它的控件, 在运行时,都不会显示 . 以 HTML为中介, 可以方便的换场景. (真接设置 WebBrowser.Source=new Uri(@"x:\\WebPlayr.unity3d");) 即可. WPF->Unity 或 Unity->WPF 都要通过 HTML的Javascript脚本. 这种方式是目前最简单靠谱的方式 . ~ 二 .嵌入UntiyWebPlayer 的 ActiveX 控件                  -----此种方式有两个未解决的问题 1. 未能屏蔽右键菜单 2.不能动态的改变 UnityWebPlayer的 src 属性 一. 嵌入的流程 1.创建一个 WPF 工程 2.创建一个 WindowForm 自定义控件库 (UserControl) 1).引入 UntiyWebPlayer COM 组件   2).将 这个组件拖到 UserControl 里, 并将 Dock属性设置为 Fill 让它充满整个控件   3).在自定义的程序文件中,增加一个 UnityWebPlayer 的Public引用. 这样做的目的是,之后可以对其进行操作 4).生成 , 在 bin 中会有三个 DLL

unity 内置组件事件调动

寵の児 提交于 2020-01-25 17:55:36
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { [Header("InputField")] public InputField input; [Header("Slider")] public Slider slider; [Header("Button")] public Button button; [Header("Toggle")] public Toggle toogle; [Header("Dropdown")] public Dropdown drop_down; [Header("ScrollRect")] public ScrollRect scrollrect; [Header("Scrollbar")] public Scrollbar scrollbar; // Start is called before the first frame update void Start() { //InputField 当输入值变化时调用 input.onValueChanged.AddListener(Input_onValueChanged)

unity使用 Resources.Load 动态加载使用资源

情到浓时终转凉″ 提交于 2020-01-25 16:22:25
首先需要在Asset目录下创建一个名为Resources的文件夹,这个命名是U3D规定的方式,然后把资源文件放进去,当然也可以在Resources中再创建子文件夹,(也可以在不同目录下创建多个Resources文件夹,unity 会自动检索合并成一个Resources文件夹)。 使用下面代码: using UnityEngine; using System.Collections; public class LoadResDemo : MonoBehaviour { private string prebPath = "Prebs/MyPreb"; void Start () { //把资源加载到内存中 Object objPreb = Resources.Load(prebPath, typeof(GameObject)); //用加载得到的资源对象,实例化游戏对象,实现游戏物体的动态加载 GameObject cube = Instantiate(objPreb) as GameObject; } } 将上面的脚本附加到某个游戏对象上,运行游戏即可看到场景中动态创建了上面的游戏对象了 来源: CSDN 作者: 乌班图ysm 链接: https://blog.csdn.net/u012278016/article/details/103833580

Unity博主营地|你不可不知的Unity C#代码小技巧

心不动则不痛 提交于 2020-01-25 10:39:34
开门见山的说,这篇文章干到挤不出一点水分。文章主要针对Unity初学者,相信读了本文之后,大家在使用 Unity 和编写代码时会更加得心应手!废话不多说,直接教程奉上。 今天的教程来自Unity 爱好者Michael Wang。 关注Michael Wang: https://connect.unity.com/u/michael-wang-2 [SerializeField] [SerializeField] 通常我们会在代码里用 Public 生成可见的变量;用 Private 生成不可见的变量。如果我想在测试阶段就能够观察到 Private 的变量是否得到了我想要的值怎么办呢?可以参考下面的图片,在 Private 前面或者上面添加一个代码:[SerializeField]。 Private 的 Rb 可见 Anim 不可见 [Space] [Space] 好像上面的代码部分的图片那样,无论我们写代码时怎样用空行来分割整理代码,在 Unity 的编辑窗口里他们都是挨在一起… 所以怎样让 Inspector 窗口像我们 VS 写的代码那样规整呢?就是在你需要“隔行”的的地方写上一个代码:[Space]。 [Space] 分割 Discoll 和 Ground 两个参数 注:需要空出更多空间则需要添加更多的 [Space] 在你的代码里。 [Header] [Header]

unity中简单处理XML文件

时光总嘲笑我的痴心妄想 提交于 2020-01-25 09:46:13
C#提供了所有的文件读取和创建的方法,在unity中运用这些方法可以很容易存储数据: 1.序列化XML: 2.读取XML 将XML存储在了StreamAssets下了,如果有对路径有要求,这个路径的判断可以摘出来写,判断目录和存储的平台为PC还是Android,路径是否存在等。 来源: CSDN 作者: w_BlackPanda 链接: https://blog.csdn.net/w_BlackPanda/article/details/103992936

Unity☞一键换字体

喜夏-厌秋 提交于 2020-01-25 03:01:59
Unity☞一键换字体 使用 脚本(源码,使用时直接创建如下脚本,放入项目中即可) 注意 使用 一键换字体是一个外部脚本,导入项目后也不要挂载,选中场景中全部物体,按照下图所示替换字体即可. 脚本(源码,使用时直接创建如下脚本,放入项目中即可) // ======================================================== // 脚 本 功 能: // 作 者:CYC // 创建时间:2019/12/31 09:11:18 // 版 本:v 1.0 // ======================================================== using UnityEngine ; using System . Collections ; using UnityEditor ; using UnityEngine . UI ; public class ChangeFontWindow : EditorWindow { [ MenuItem ( "Tools/换字体" ) ] public static void Open ( ) { /*第一个参数窗口类型,决定窗口操作逻辑 * 第二个参数确定是否为浮动窗口,选择false可有停靠效果 * 第三个参数 显示窗口的标题 * 第四个 目前不知道什么意思 */

最新关于 Unity-ProjectSettings-Player/Android-Settings消失问题及解决办法

好久不见. 提交于 2020-01-25 00:33:40
最新关于 Unity-ProjectSettings-Player/Android-Settings消失问题及解决办法 如图: 经过测试,原因是Java环境变量没有安装好或者没有安装Java。 如图: 因此,只需要正确的安装Java,就可以配置Android的编译设置! 如图所示,Java环境已经配置好了。 但是经过后期测试发现仍然存在问题。 然后依次排除问题,最后发现,是Unity的Android SDK没有配置好, 如下图,将选项勾选: 然后等待Unity安装。 Unity安装完成之后,将平台置为Android 打开项目以后发现界面回复了。 来源: CSDN 作者: aﻬ半世癫 链接: https://blog.csdn.net/sp2673071736/article/details/103826257