
Unity随记
漩子
希望有一天自己的游戏可以被别人津津乐道。
展开
-
关于Quaternion
Quaternion.LookRotation 参见 http://blog.youkuaiyun.com/lijing_hi/article/details/7272089quaternion * vector3 参见 http://www.cnblogs.com/88999660/articles/2893126.html 或见下文在unity3d中,用四元数来表示旋转,四元数英文名叫qu转载 2016-03-30 18:15:31 · 509 阅读 · 0 评论 -
unity不同分辨率适配摄像机
竖屏游戏的时候,unity中摄像机是自动上下适配的,也就是说在不同分辨率下看到的上下看到的世界范围是一致的,比如在iphone6正常,那么在iphoneX上就有一种放大的效果。而正常的情况是在iphoneX上看到的宽度应该是一致的,也就是说上下应该看到的更宽。废话不多说,直接上代码。 /// <summary> /// 适配世界摄像机 竖屏宽度适配 /// &l...原创 2019-01-24 22:54:31 · 3056 阅读 · 1 评论 -
unity 延迟等待执行
关于unity延迟执行网上也有很多了,我这里只是封装下,让写代码变得更加优雅,使用更加方便。一个问题想要表述清楚,读者也能看明白,无非3个点:What(要说的是什么),How(怎么用你这个东西?什么情况下有用?),Why(为什么要这么做,这么做有啥好处?我不这么用可以不可以?等等)首先来看 what,直接上代码了using System;using System.Collections;...原创 2018-09-29 14:51:15 · 9801 阅读 · 4 评论 -
UGUI 抖动问题
最近项目中有一个窗口ScrollRect下的图片总是轻微的抖动,开始还以为是显示器在抖呢,移了移窗口发现并不是,这种抖动初看很让人摸不着头脑。没有相关经验还真很难找到原因。什么原因呢?抖动即位置发生轻微变化,在Unity中有很多抖动的情况发生,如模型的动画的抖动等,而这些抖动大多都是精度的丢失造成的,比如0.01的小位移,可是一旦涉及到坐标转换这些计算的时候,父物体的scale,rotatio...原创 2018-07-12 18:35:17 · 3296 阅读 · 2 评论 -
Unity通过字符串添加组件
之前旧版的Unity提供了AddComponent(string name)的方法来提供字符串添加组件,可是由于性能不高被官方废弃了,那么现在如何使用字符串来添加组件呢? 可是由于需求难免会有需要通过字符串来添加组件,以达到程序灵活性高的目的,当然Unity官方还是明白的,所以提供了public Component AddComponent(Type componentType)的方法来解决。...原创 2018-06-13 14:59:30 · 2429 阅读 · 0 评论 -
Unity 创建模型并让模型动态运动
最近项目要实现一个做正弦运动的线条,我想到的方案是改变模型的顶点,利用函数y=aSin(bx+C) 让模型顶点的Y坐标,根据X坐标运动,这样就实现如下图的运动:首先来看一张效果图 首先新建一个物体,为物体加上必要的逐渐 GameObject cube = this.gameObject;//or new GameObject(); MeshFilte...原创 2018-05-17 15:18:08 · 7297 阅读 · 3 评论 -
unity在打开项目时就完成相应平台的转换
使用unity的命令行,进行打开unity项目,实现unity在打开时即切换到相应的平台,避免打开时默认将目标平台转换为PC平台,而后又要转至其他平台,浪费时间。打开cmd控制台,并cd到unity安装目录的Editor目录: 如在:D:\unity\Editor 就输入D:回车,在输入cd \unity\Editor回车 输入以下命令行:原创 2017-12-30 17:51:41 · 5641 阅读 · 1 评论 -
Unity TextField实现粘贴复制
在unity中写一个文本处理工具的时候,发现unity的编辑器文本输入框GUILayout.TextField不能快捷键粘贴复制,这好蛋疼啊,经过查询发现网上已有解决方案,在此记录一下。 public static string HandleCopyPaste(int controlID) { if (controlID == GUIUtility.keyboardContr原创 2017-12-22 20:54:54 · 5033 阅读 · 1 评论 -
C#枚举多选的原理与实现
利用枚举来传递多个参数实现多选。 原理其实是用2进制数的每一位来进行表示一个枚举值,比如A=00000001,B=00000010,C=00000100三个枚举值,其实就是2的N次方,如果将A和C进行相加或者是按位与及得到表示两个枚举值的00000101,这个代表多个值的枚举值,我们将其简称为多重枚举(此名字为杜撰)。原理很简单,我们来看应用。实现,用一个unity中的编辑器扩展的例子来说明u原创 2017-12-20 20:25:22 · 3391 阅读 · 1 评论 -
Unity编辑器工具简体繁体一键转换
项目上线难免有很多的版本,比如要上港台新马版本时就会涉及到将项目的中的文字转换为繁体中文。制作一个一键转化工具,将文本预制体中的中文都转化为繁体中文岂美哉。说干就干。public class ChineseUtility: Editor{ [MenuItem("other/简繁装换")] public static void ChineseUtils() {原创 2017-12-21 20:46:29 · 3165 阅读 · 0 评论 -
UGUI源码查看编辑与调试
UGUI源码查看编辑与调试unity自4.6以后有了自己全新的UI系统UGUI。由于是自身系统在性能和效率等方面也逐步领先NGUI,各公司在新项目上也逐步的使用UGUI进行UI方面的开发。并且Unity官方也将其进行了开源,这使得开发者可以更加方便使用,并可一探内部原理学习其逻辑 。UGUI开源工程地址在GitHub上:https://bitbucket.org/Unity-Technologies原创 2017-11-13 21:58:12 · 1406 阅读 · 0 评论 -
使用TexturePackerGUI配合NGUI图集及UGUI的Spriteatlas探讨
如题:搜索TexturePackerGUI有点TexturePackerGUI更加节省内存。原创 2016-04-23 17:18:53 · 1257 阅读 · 0 评论 -
unity 鼠标控制摄像机围绕物体旋转
void LateUpdate() //对摄像机的操作写在LateUpdate里 { x += Input.GetAxis("Mouse X") * rotateSpeed * Time.deltaTime; y -= Input.GetAxis("Mouse Y") * rotateSpeed * Time.deltaTime;原创 2016-04-19 14:35:52 · 6093 阅读 · 1 评论 -
Unity3d 人物控制器CharacterController
isGrounded,人物是否在地上,该属性需要通关调用了Move(Vector3 v)方法才能刷新,且需要v的y有向下的值,即有重力。原创 2016-03-30 11:29:25 · 799 阅读 · 0 评论 -
关于角色攻击范围判定和攻击判定
mark一下:http://tieba.baidu.com/p/2885477160原创 2016-03-31 20:26:22 · 1241 阅读 · 0 评论 -
unity vs支持shader的插件
移步:http://blog.shuiguzi.com/2014/10/28/Release/原创 2016-03-31 19:44:19 · 2458 阅读 · 0 评论 -
Unity3d Physics 射线粗谈
Physics.SphereCastPhysics.SphereCast 球形射线。相比Physics.Raycast,就是把射线的宽度给增加了。这里有个误区就是使用它检测射线起点周围的物体,话说是球形的话,如果以人物的中心发射出射线,应该是可以检测到以人物为中心设定半径的球体内的物体的,但是测试是不能的。下面是参数,API的中文翻译很坑,为加强理解加了如下注释origi原创 2016-03-31 17:32:11 · 7281 阅读 · 0 评论 -
Unity3D内存管理——对象池(Object Pool)
转自:点击打开链接原文地址:C# Memory Management for Unity Developers (part 3 of 3),其实从原文标题可以看出,这是一系列文章中的第三篇,前两篇讲解了从C#语言本身优化内存和Unity3D Profiler的使用,都很精彩,有兴趣的童鞋可以参考一下。C# Memory Management for Unity De转载 2016-03-30 20:19:27 · 460 阅读 · 0 评论 -
C#超大数字运算
这里记两个计算大数字运算的类(其实是从别人那里扒的,是dll,不过之前用了.net4.0的一些特性,用.net3.5导入unity报错,就反编译改了下,贴在这里以后能用着也好找)。当我们要运算的数值超过了double,long的时候,我们就不得不用string来表示一个数了,例如:111111111111111111111111111111111111*1222221231231222222222...原创 2019-06-20 15:10:13 · 3990 阅读 · 1 评论