Unity
JustEasyCode
只写最简单的代码
展开
-
游戏开发工作中接sdk工作总结
接sdk,接了一段时间了,先开个坑,慢慢补。原创 2023-02-07 15:54:45 · 177 阅读 · 1 评论 -
游戏开发设计模式与接口运用
1. 策略模式 任何情况下都属于多种方式中只选一个方式的时候考虑策略模式 举例: 物品Tips 右边的按钮有时完全一个不显示,有时显示几种特殊的功能,有时是完全根据物品在表格里面的配置来显示,就可以有表格配置策略,HideAll策略,以及xx策略,外部系统调用显示tips的时候自己传个策略进去。2. 状态模式 动画的状态机,暂时先不说了。原创 2022-10-27 12:13:20 · 497 阅读 · 0 评论 -
游戏开发动画
1.动画更新:离camera远的动画,更新频率慢一点。原创 2022-10-16 03:24:00 · 622 阅读 · 0 评论 -
游戏开发 头顶信息的讨论
1.需要加载的东西做成一个一个预制体而不是放在一起,需要型加载,这样就可以最大减少UI的数量。人物头顶上文本或者图片,都是放在一个世界空间渲染的canvas下面的。原创 2022-09-05 17:03:21 · 873 阅读 · 0 评论 -
游戏中的角色移动
移动前使用二分查找法判断移动后的位置是否会发生碰撞,知道找到一个最近的无碰撞的点。根据移动速度,按渲染经历过的时间*速度,来计算。移动后检测如果发生碰撞,可能考虑动量关系弹回?继续移动不发生碰撞的方向。原创 2022-09-04 15:29:23 · 640 阅读 · 0 评论 -
unity Editor 工作中总结整理
首先上一张我在工作中喜欢使用的模式框架模板。原创 2022-08-11 12:19:18 · 971 阅读 · 1 评论 -
记录十条工作中便利的API小技巧
这里只写了一下保持y始终在屏幕范围内,x就不写了,canvas.scaleFactor是为了在获取高度的时候同样要算上canvas的缩放。3.os.time()lua直接获取时间戳函数,os.date(‘%t’)获取当前时间,返回一个表格,可以从里面获取各种参数。2.UIStayInScreen脚本,保持UI始终在屏幕范围内。4.设置UI之前的屏幕偏移可以直接转化到世界坐标来相加减。1.匹配过滤出除了富颜色文本以外的正则表达式。...原创 2022-07-31 22:32:21 · 118 阅读 · 0 评论 -
Unity UGUI不同的UI面板或者UI之间如何进行坐标匹配和变换
并不是直接操控AnchorPosition,只需要都换算到世界坐标下即可,比如让一个UI的坐标等于另外一个UI,就可以获得这个UI的世界坐标赋值给另外一个UI的世界坐标,如果要右移一点就+0.1原创 2022-07-04 17:44:42 · 1444 阅读 · 0 评论 -
《Unity》 判断点击是否在UI的recttransform范围内
unity提供了很多API给我们使用,但是经常会由于锚点或者不好的原因计算错误的结果,这里有一个100%正确的做法。 private Rect GetWorldRect(RectTransform rectTransform) { Vector3[] corners = new Vector3[4]; rectTransform.GetWorldCorners(corners); float width = Math原创 2022-04-01 00:39:00 · 4165 阅读 · 0 评论 -
《Unity》FixedUpdate
https://blog.csdn.net/qq_41472101/article/details/108785579看这篇文章打印输出,并不是真实的时间间隔,至少是在某一帧内,根据某次帧渲染的时间来进行fixupdate函数的多次调用,至少调用一次。原创 2022-03-29 16:48:08 · 4060 阅读 · 0 评论 -
《Lua》 使用小技巧
根据字符串调用全局函数。原创 2022-03-25 08:18:09 · 416 阅读 · 0 评论 -
《Unity》发射一颗子弹
记录一下monbeahvior的自己类提供静态方法,自己设置数据,创建的代码结构,一个类搞定,另外刚体的速度会受到阻尼减少。原创 2022-03-24 23:42:39 · 1753 阅读 · 0 评论 -
人物血条这种UI在游戏开发中的问题
要考虑的问题:1.多血条同场景下如何优化2.血条间遮挡问题如何实现SpriteRender 有order3.大量血条优化问题。原创 2022-03-24 23:41:02 · 1267 阅读 · 0 评论 -
《Unity 编辑器》editor背景面板如何实现中键拖拽的功能。
例如这种背景,拖拽可以让背景平移。canvasScrollPosition = GUI.BeginScrollView(new Rect(0, 0,position.width,position.height), canvasScrollPosition, new Rect(0, 0, /*canvasScrollView.x*/position.width+canvasScrollPosition.x, /*canvasScrollView.y*/position.height+canvasScrol.原创 2022-03-22 00:54:00 · 1138 阅读 · 0 评论 -
《Unity》如何在任意一条线段中心上绘制一个三角形。
例如,绘制一个这种三角形,我这里不特定指出Unity Editor ,他是一种数学知识。例如,如图,先求出线段中心点c,然后指定一个边长 = m, 沿线段方向增加m距离,得到第一个点v0,同理,反向减少m距离得到x,然后让x沿垂直线段两边走m,得到其他两个点,三角形就绘制出来了。...原创 2022-03-21 22:18:14 · 1124 阅读 · 0 评论 -
《Unity》 判断是否点击在UI上
点击很简单,就是调个函数判断,有两个新东西。用Event发射线检测出所有碰撞UI第二个忽略列表的设计不是顶一个Rect的List函数,而是给每个理应被忽略的物体上面加一个接口类,从面向数据设计到面向对象,而且不用线框判断范围。...原创 2022-03-14 01:22:28 · 2138 阅读 · 0 评论 -
Unity 实现图标的拖拽功能
OnPointUp 不仅鼠标松开会调用,鼠标移动也会调用。时间紧迫,只贴核心代码using UnityEditor;using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;using UnityEngine.Events;using System;namespace Scripts.LuaApi{ public class DragItemArea : MonoBehaviour,IBeginDra原创 2022-03-09 18:51:50 · 1975 阅读 · 0 评论 -
Unity 编辑器 Undo/Redo
Undo/Redohttps://blog.csdn.net/rickshaozhiheng/article/details/52769156?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.pc_relevant_aa&spm=1001.2101.3001.4242.1&utm_relevant_index=3原创 2022-03-06 18:40:31 · 1194 阅读 · 0 评论 -
《Unity EditorGUI》细节总结
布局Box皮肤“OL Box”原创 2022-03-03 22:14:06 · 995 阅读 · 0 评论 -
《Unity》头顶信息怎么让UI始终面向屏幕
这种UIBillBoard 广告牌的效果如果是渲染个草什么的,可能会提到shader哪里去,但是UI完全没必要。首先头顶信息的UI肯定都是挂在一个支持世界相机空间的canvas父物体下的,所以理论上只需要让这个canvas的旋转和相机的旋转保持一致就行了,在相机更新的时候,思路很简单。让UI的z朝向和相机一样...原创 2022-03-02 16:01:23 · 1340 阅读 · 0 评论 -
《UI优化》列表外元素ListItem可以不渲染,减少drawcall
题目就是要讲的东西,例如,这里每一个列表元素都是同样的贴图,按理是可以合批的可以看到,当listitem都在mask里面的时候批次会减少两个,这里刚刚删除了ScrollRect多余的Image和canvasrender组件以及mask换成rectmask2d了,rectmask2d默认就是无图不渲染的。暂时批次是6,同理,多出mask的区域会增加2个批次。https://www.cnblogs.com/moran-amos/p/13878493.html在这里找到了答案,反正就是2个通道分原创 2022-02-23 02:11:42 · 188 阅读 · 0 评论 -
《UI优化》无图点击按钮,dc优化
普通按钮带一个image,image simple是4个顶点会渲染,增加dc,但实际上按钮只需要一个graphic,这个涵盖了碰撞范围,可以自己写个脚本继承graphic给他,graphic是没有顶点不需要渲染的。测试打开窗口看就行了。...原创 2022-02-21 17:19:13 · 148 阅读 · 0 评论 -
《编辑器工具》按数字向下复制一个
using System;using System.Text;using System.Text.RegularExpressions;using UnityEditor;using UnityEngine;public class HierarchyEditor { [MenuItem("GameObject/向下复制一个",priority =0)] public static void CopyNext() { GameObject proto =原创 2022-02-19 19:25:59 · 151 阅读 · 0 评论 -
《系统设计》相机功能设计
一个最基本的相机系统应该满足以上功能。原创 2022-02-11 18:20:23 · 206 阅读 · 0 评论 -
《Unity》 实现UI的拖动
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI; public class SyncUIDrag : MonoBehaviour { private bool isDraging = false; private RectTransform rect;原创 2022-02-11 11:23:13 · 2819 阅读 · 0 评论 -
《矩阵》Unity 自己实现RectTransformUtility 的 ScreenPointToLocalPointInRectangle函数
private bool RectangleContainsScreenPoint(RectTransform rRect,Vector2 rPosition,Camera rCamera) { Vector3 lPosition = UICamera.ScreenToWorldPoint(rPosition); lPosition = rRect.worldToLocalMatrix * lPosition; D...原创 2022-02-09 15:11:12 · 2274 阅读 · 0 评论 -
《Unity 向量叉乘》x,y,z三个方向指导其中任意两个向量如何求另一个向量
左手坐标系 叉乘 xyz1.知道x,y => 左手定则,x到y 大拇指 就是z2.x,z => y 从z左手绕向x3.y,z=>x 从y绕向z 求出x原创 2022-01-29 18:05:25 · 1081 阅读 · 0 评论 -
《Unity 射线检测》球形方向投射
球形方向投射有两种。1.Physics.SphereCast粗略的返回碰撞信息以及碰撞到的第一个碰撞详细信息,如果不需要获得全部的碰撞信息的话,可以用这个。2.Physics.SphereCastNonAlloc指定results数组会返回全部的碰撞信息,像如果有使用到忽略列表这种的就需要采用这个了,这个性能损耗更大。双方都可以指定QueryTriggerInteraction来判断是否需要记录trigger的碰撞信息。...原创 2022-01-28 16:24:20 · 3229 阅读 · 0 评论 -
《Unity UGUI》如何求出一个自适应布局的不同高度元素的垂直列表
要完成的效果是这个样子的,怎么做呢, 我说下思路。最外层肯定是一个自适应高度的垂直布局最内层,除了普通列表元素以外,在使用一个自适应高度的grid布局组件。之后在游戏里面根据逻辑修改grid在最外层列表里面层级就好了。...原创 2022-01-26 18:59:19 · 776 阅读 · 0 评论 -
《Unity》 插值问题
线性插值公式:value = min+(max-min)*rate(0,1)这个肯定是最简单的,比较好用于需要表现过程的插值动画过程中阻尼系插值什么叫阻尼:所以比较适应于相机在旋转这种旋转到某个角度但是收到一点阻尼没到 最理想的 情况的最终点的情况。关于阻尼插值比较好的文章:https://blog.csdn.net/hakukou/article/details/106329120 Mathf.Lerp(rSource, rTarget, 1 - Mathf.Pow(rSmoothing,原创 2022-01-24 13:10:44 · 815 阅读 · 0 评论 -
《Unity 旋转》规范化旋转角度一定在-180-180之间
/// <summary> /// Normalize the angle values /// </summary> /// <param name="rEuler"></param> public void NormalizeEuler(ref Vector3 rEuler) { if (rEuler.x < -180f) { rEuler.x..原创 2022-01-23 16:53:12 · 2380 阅读 · 0 评论 -
《Quaternion》自己实现Quaternion里面的FromToRotation功能
先看代码。 /// <summary> /// Handles smaller values better than Unity's version. /// </summary> /// <param name="u"></param> /// <param name="v"></param> /// <returns></retu原创 2022-01-22 20:54:36 · 965 阅读 · 0 评论 -
《Unity》 向量四元数以及常用数学公式
这个东西不理解也就算了,每次还都不会使用,烦死了,这次记录一下。Quaternion.AngleAxis(角度,沿axis轴)方法返回一个旋转,意义是绕axis轴旋转angleQuaterion*Quaternion在lq的旋转状态下进行rq的旋转意义Unity当中的旋转方向(世界坐标系是左手坐标系)y: 正是往右边旋转x: 正是下面旋转z: 正是往左边旋转速度*时间=某时移动矢量为了确保同时按下w和d移动速度不变(因为两个方向的速度矢量肯定最后向量长度会变成根号2),可以把移动向量No原创 2022-01-22 11:59:43 · 801 阅读 · 0 评论 -
《Unity》模型预览给角色播放动画的比较好的实现方式
可以用这个接口,好处就是不用修改animator,animator在游戏中被其他功能需要使用。原创 2022-01-20 15:58:37 · 800 阅读 · 0 评论 -
《Unity》建立遮罩和让某个按钮高亮的方法
遮罩:整个mask 黑色一点的图片在UI上面,不需要特别指定这个遮罩image的位置,通过设定orderLayer的方法让这个image的层级最高即可高亮:找到那个按钮,给那个按钮添加Canvas,GraphicRaycaster,设置OverrideSorting,然后设置个比mask 更大的layer就行了。...原创 2022-01-08 21:03:40 · 1821 阅读 · 1 评论 -
各种坐标长什么样子
editor GUI 坐标sprite下坐标原创 2021-12-15 21:15:11 · 270 阅读 · 0 评论 -
unity根据屏幕上鼠标的位置创建3d物体
其实很简单,不需要什么乱七八糟的坐标变换, 直接用当前渲染相机当前鼠标屏幕点击位置发射一条射线,撞击到地板上的位置就是3d物体的位置。#if UNITY_EDITOR var screenPos = Input.mousePosition;#else var screenPos = Input.GetTouch(0).position;#endif var ray = m_camera.ScreenPointToRay(screenPos);原创 2021-10-09 17:07:36 · 904 阅读 · 0 评论 -
一般面试会问到的问题
UI的射线检测:只针对继承了Graphics类的ui组件检测。原创 2021-06-30 22:37:41 · 101 阅读 · 0 评论 -
unity 最简单的按下鼠标旋转物体
一个很简单的功能,网上给的都非常复杂,实际上几行代码就搞定了 if(Input.GetMouseButton(0)) { mouse_x += Input.GetAxis("Mouse X") * rotSpeed * Time.deltaTime; mouse_y += Input.GetAxis("Mouse Y") * rotSpeed * Time.deltaTime; q = Quaternio原创 2020-12-21 23:04:25 · 824 阅读 · 0 评论 -
毕业了,换装系统,工作日记,游戏开发,技能系统
从刚开始前两个礼拜培训的时候开始算,就是挑战,培训期间开除了人,然后开始实习,实习第一个项目都是用来决定你是不是能留下来的,应该会与UI相关,我做的是个换装系统,算是渡过了实习期间的考核,这也就意味我可以平稳的渡过实习期,然后试用,要开除我,是等到试用之后了。另外,在这段实习时间,也开除了一个新人和劝退了一个新人。说起实习期用来考核评判你是否留下来的项目,我可以告诉你组成部分大概是60%的UI,40%的逻辑难度那种的,也就是60%的Lua,40%的C#,不得不说,Lua的确比c#简单太多,特殊体现就可.原创 2020-07-11 15:36:02 · 254 阅读 · 0 评论