
unity
qq_41056203
这个作者很懒,什么都没留下…
展开
-
Unity检查是否点击到UI
除了使用射线检测我们还可以使用ugui内置的方法检测ui UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject ();这个方法返回一个布尔值,如果点击到ui就会返回true,没有返回false,这个方法主要通过ui身上的image组件下面的Raycast Target选项判断,勾选就会被这个方法检测到,...原创 2018-05-30 16:42:58 · 2199 阅读 · 0 评论 -
c#使用TCP协议构建一个能够广播的聊天室
首先这里我们是使用了线程来开辟多个连接通道,将这些连接存到一个List里面,然后对这个容器里面所有的客户端发送消息达到广播的目的首先我们创建一个Client类,主要用来处理我们的消息接收和发送 class Client { private Socket clientSocket; private Thread t; privat...原创 2018-07-11 14:40:34 · 1440 阅读 · 0 评论 -
Unity-- AssetBundle打包
using UnityEngine;using System.IO;public class CreatAssetBundles : MonoBehaviour { [MenuItem("Tools/Build AssetBundles")] static void BuildAllAssetBundles() { string dir = "Ass...原创 2018-07-05 13:26:22 · 139 阅读 · 0 评论 -
Unity--AssetBundle包的下载与实例化
最简单的加载,注意这里面的ab2是cube的材质,需要进行实例化的时候要先将这个物体的所包含的所有关联信息一块加载 string ss = "AssetBundles"; // Use this for initialization void Start () { StartCoroutine(New("/3d/cube")); } IEn...原创 2018-07-05 14:42:40 · 889 阅读 · 0 评论 -
Unity--读写文件操作
简单的读写文件,文件内容比较少可以使用下面这种方法,但是注意,这种方法只能创建文件,不能创建文件夹,所以需要创建好目录,这种WriteAllText写入方式每次都会覆盖掉先前的内容,追加字符串就可以使用AppendAllText方法 Environment.NewLine这个方法是个换行符 void Start () { string path = @"D:\Unity...原创 2018-07-05 15:54:12 · 10252 阅读 · 0 评论 -
Unity__对XML文件的操作(生成,读取,修改,追加)
/// <summary> /// 生成XML文件 /// </summary> void CreateXML() { string path = Application.dataPath + "/data2.xml"; if (!File.Exists(path)) { ...翻译 2018-07-05 18:17:41 · 1928 阅读 · 0 评论 -
Unity 物体移动之虚拟轴移动
物体移动有很多方式,比如刚体的速度或者直接添加力,3d物体还能够使用角色控制器来进行移动,但是2D物体的移动很多就是采用插值的方式移动,因为2D物体需要精准的控制坐标获取虚拟轴是我们最常用的获取移动的方式,方向以及大小都可以通过这个控制 这个方法是通过获取键盘的虚拟轴通过GetAxisRaw这个方法,将键盘的输入转化为移动的距离 public Vector2 targetPos =...原创 2018-07-18 10:48:24 · 3157 阅读 · 0 评论 -
Unity自带的一些特性的使用方法
转载:Unity常用特性转载 2018-07-12 15:15:53 · 624 阅读 · 0 评论 -
Unity InputFiled文字框如何获取焦点
第一种方式 public InputField mainInputField; // Activate the main input field when the scene starts. void Start () { mainInputField.ActivateInputField(); }第二种方式 public...转载 2018-07-12 16:01:44 · 5511 阅读 · 0 评论 -
3D数学--Unity坐标的转换
常用的转换坐标方法//将一个点的世界坐标转换局部坐标transform.InverseTransformPoint(Vector direction);//将一个点的局部坐标转换世界坐标transform.TransformPinot(Vector direction);//将一个向量的局部坐标转换世界坐标transform.TransformVector(Vector dire...原创 2018-07-31 10:25:20 · 560 阅读 · 0 评论 -
3D数学--向量的运算汇总
向量的长度向量的长度就是向量的大小或者向量的模 向量长度的大小就是向量个分量平方和的平方根,就是根据三角形法则计算对角线,通过勾股定理获得长度 Unity中使用Vector3.magnitude来获取一个向量的长度 例如向量a(3,4,0),a向量的模就是3^2+4^2+0^2然后在开根号,值为5,所以a的长度就是5.向量与标量的乘除运算在unity中向量使用和/进行乘除运算,向...原创 2018-07-31 18:12:39 · 1749 阅读 · 0 评论 -
3D数学--矩阵汇总
在unity中矩阵的定义和使用在Unity中我们都是使用4*4的矩阵 ,通过 Matrix4x4.SetRow 和Matrix4x4.SetCoiumn来设置4*4矩阵的某行和某列,通过 Matrix4x4.GetRow 和Matrix4x4.GetCoiumn 获取4*4矩阵的某行和某列,返回一个Vector4类型矩阵的加减进行加减的矩阵必须维度相同才可以加减 进行运算的时候,矩阵...原创 2018-08-02 10:15:00 · 1275 阅读 · 0 评论 -
3D数学--变换坐标
齐次坐标(用来判断点和向量)通过在坐标值后面添加0或者1判断是否是点或者向量,1代表是一个点比如[1,2,3,1],0代表是向量例如[1,2,3,0] 向量和点相加得到的还是一个点,代表了这个点经过这个向量位移后产生新的点 向量就是是由最终点减去起始点得到的,方向由起始点指向最终点 Unity中采用四阶矩阵就是在三阶矩阵上面加上了齐次坐标的运算,所以我们通常也可以使用三维坐标表示位...原创 2018-08-02 17:21:58 · 909 阅读 · 0 评论 -
3D数学--变换坐标
齐次坐标(用来判断点和向量)通过在坐标值后面添加0或者1判断是否是点或者向量,1代表是一个点比如[1,2,3,1],0代表是向量例如[1,2,3,0] 向量和点相加得到的还是一个点,代表了这个点经过这个向量位移后产生新的点 向量就是是由最终点减去起始点得到的,方向由起始点指向最终点 Unity中采用四阶矩阵就是在三阶矩阵上面加上了齐次坐标的运算,所以我们通常也可以使用三维坐标表示位...原创 2018-08-07 10:53:49 · 296 阅读 · 0 评论 -
Unity画线工具--LineRander
新版的画线系统将颜色和材质渐变进行了整合,根据官方的文档,我们可以发现将这些整合到了Gradient这个类里面,这是一个专门用来处理渐变的类 private LineRenderer lr; void Start() { lr = GetComponent<LineRenderer>(); lr.material = ne...原创 2018-08-07 11:30:40 · 3032 阅读 · 0 评论 -
游戏开发中的设计模式一(状态模式)
在游戏开发中,我们常常会用到一些物体的状态切换,比如场景和动画剧情等等,对于常规的不需要变通的我们可以使用switch case语句实现,但是一旦使用你的逻辑就是固定的,不能添加和修改,所以对于不确定会不会增加需求的,采用状态模式会更好状态模式的核心思想就是通过GameManager来管理状态接口,通过状态接口来对每一个实现接口的状态类进行切换,怎么进行切换不需要我们的GameManage...原创 2018-07-16 10:59:39 · 804 阅读 · 0 评论 -
DoTween使用(完整版添加)
下载DoTween在Asset Store直接下载,分为付费和免费版本 这里讲解是付费完整版对变量进行动画(正则表达式) public float myValue2 = 0; // Use this for initialization void Start () { //对变量做一个动画 (通过插值的方式去修改一个值的变化) ...原创 2018-08-07 09:58:52 · 28427 阅读 · 1 评论 -
UnityAPI--事件函数(生命周期函数)
从上到下依次先后顺序执行, 注意:Reset()方法是在挂载脚本的时候调用,FixedUpdate()只和次数有关和帧数和时间无关。 void Reset() { Debug.Log("Reset"); } void Awake() { Debug.Log("Awake"); } void OnEnable...原创 2018-05-31 17:04:25 · 376 阅读 · 0 评论 -
UnityAPI--Time类的静态变量
captureFramerate Slows game playback time to allow screenshots to be saved between frames. 减慢游戏播放时间以允许在帧之间保存屏幕图像。 deltaTime The time in s...原创 2018-05-31 17:16:10 · 249 阅读 · 0 评论 -
UnityAPI--创建游戏物体的三种方法
第一种,直接使用默认方法 一般用于创建空物体GameObject go = new GameObject("Cube");第二种,使用预制体或者模板public GameObject go;void Start(){GameObject.Instantiate(go);}第三种,创建3dGameObject,创建原始图形GameObject.CreatePrim...原创 2018-05-31 17:30:48 · 1169 阅读 · 0 评论 -
UnityAPI--对游戏物体的组建进行操作
添加组件//创建一个名为Cube的物体GameObject go = new GameObject("Cube");//给go添加一个刚体组件go.AddComponent<Rigidbody>();查找组件mMesh = go.GetComponent<MeshRenderer> ();激活关闭组件 public MeshRender...原创 2018-05-31 17:44:19 · 252 阅读 · 0 评论 -
UnityAPI--UnityEngine下面的Object的静态方法
Destroy Removes a gameobject, component or asset. 删除一个游戏对象、组件或资源 DestroyImmediate Destroys the object obj immediately. You ar...原创 2018-05-31 18:02:24 · 385 阅读 · 0 评论 -
UnityAPI--UnityEngine下面的GameObject独有的静态方法
CreatePrimitive Creates a game object with a primitive mesh renderer and appropriate collider. 创建一个带有原型网格渲染器和适当的碰撞器的游戏对象。(典型工厂模式,主要用于创建cube等uni...原创 2018-05-31 18:09:38 · 774 阅读 · 0 评论 -
Unity优化技术--UI优化之Mipmap
出处:https://www.jianshu.com/p/84cd407cb442Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的纹理贴图资源使用Mipmap后,贴图会根据摄像机距离的远近,选择使用不同精度的贴图。缺点:会占用内存,因为mipmap会根据摄像机远近不同而生成对应的八个贴图,所以必然占内存!优点:会优化显存带宽,用来减少...转载 2018-06-01 10:31:21 · 2237 阅读 · 0 评论 -
Unity使用Time类手写一个时钟计时器
private float timer = 0f; private int h = 0; private int m = 0; private int s = 0; private string timeStr = string.Empty; void Update () { timer += Time.deltaTime; ...原创 2018-06-01 11:06:12 · 1290 阅读 · 0 评论 -
Unity数学Mathf类使用
静态变量 Deg2Rad: Degrees-to-radians conversion constant (Read Only). 度到弧度的转化常量。(只读) Epsilon: A tiny floating point value (Read Only). ...原创 2018-06-01 11:20:40 · 1097 阅读 · 0 评论 -
Unity递归--经典斐波那契数列
private void Start () { //输出第十位的数字 print( Foo (10)); } int Foo ( int a ) { if(a<=0) { return 0; } else if(a>0 &&am...原创 2018-06-01 13:39:43 · 1396 阅读 · 0 评论 -
c#委托和事件--观察者模式
出处:http://www.cnblogs.com/wudiwushen/archive/2010/04/21/1717378.html //---本例场景为当用户从银行账号里取出钱后,马上通知电子邮件和发手机短信--- //本例中的订阅者,也就是观察者是电子邮件与手机 //发布者,也就是被监视对象是银行账号 //Obverser电子邮件,手机关心的对象e...转载 2018-06-01 14:58:28 · 275 阅读 · 0 评论 -
Unity读取json的工具类JsonUtility
首先我们需要定义我们的json文件,我们可以在Resources文件夹下面创建一个.json的文件,写上如下内容{&quot;infoList&quot;:[{&quot;panelTypeString&quot;:&quot;ItemMessage&quot;,&quot;path&quot;:&quot;UIPanel/ItemMessagePa原创 2018-06-18 05:47:22 · 4218 阅读 · 0 评论 -
Unity移动端输入控制,双击,长按等
点击触摸直接使用GetMouseButton(0)即可,下面我们通过这个思路实现双击和长按 其中下面的newTouch和touchTime是用来控制长按的是否以及时间,保证一个位置的长按只能触发一次长按的方法 if (Input.GetMouseButton(0)) { Ray ray = Camera.main.ScreenPointToRay(In...原创 2018-07-02 08:20:20 · 6193 阅读 · 0 评论 -
Unity如何在手机端截图
public Camera arCamera; public void OnScreenShotClick() { System.DateTime now = System.DateTime.Now; string times = now.ToString(); times = times.Trim(); ...原创 2018-07-02 08:36:24 · 1600 阅读 · 4 评论 -
关于按钮点击事件的PointerEventData属性详解
PointerEventData .button触发此事件的按钮PointerEventData.clickCount计算按钮连击次数,间隔时间很短public class ExampleClass : MonoBehaviour, IPointerDownHandler{ public void OnPointerDown(PointerEventData eventData)...原创 2018-12-07 15:23:41 · 37427 阅读 · 5 评论