
unity
一个不会码代码的小恐龙
学习是一个直面自己无知的有效途径。
展开
-
设计模式学习-责任链模式
使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止.主旨就是“你完不成就要找到你上司让他完成,你上次完不成就找上司的上司。原创 2024-09-02 17:20:12 · 593 阅读 · 0 评论 -
unity行为树的简单实现
unity 行为树原创 2023-02-25 20:45:59 · 1468 阅读 · 0 评论 -
使用ShaderGraph 实现水面效果
shader graph制作水面效果原创 2023-02-19 11:51:43 · 2049 阅读 · 2 评论 -
有限状态机(FSM)
ScriptObject实现fsm原创 2022-11-01 22:27:07 · 12096 阅读 · 0 评论 -
Unity——ScriptableObject
ScriptObject原创 2022-10-12 22:42:02 · 4011 阅读 · 0 评论 -
unity常见问题(二)
目录1.性能比较2.unscaledDeltaTime和 time.deltaTime的区别3.调用顺序1.性能比较下面两部分代码 根据GC来看第二个性能比较好public class TestGc : MonoBehaviour{ private List<float> random = new List<float>(); //private float[] random = new float[100000];...原创 2022-04-29 09:22:53 · 552 阅读 · 0 评论 -
unity常见的问题(一)
1.修改物体位置无法直接修改物体的position//transform.position.y = 10f; 错误的写法//修正Vector3 pos = transform.position;transform.position = new Vector3(pos.x,20f,pos.z);2.物体相互碰撞两方必须都要Ccollider 其中一方还要有 Rigidbody3.target.position - transform.position 得到的...原创 2022-04-22 16:22:28 · 2541 阅读 · 0 评论 -
如何实现点击一下物体播放一次动画
目录场景准备代码编写实际作用:依靠鼠标的点击物体,并播放对应的动画(按照一定的顺序)假设A->B->C 动画播放的顺序我们就要按照这个顺序播放场景准备①在场景中创建如下三个物体并给他们分别加上对应的Tag②由于我的目的是让每一个物体只播放一段动画,所以我选用的是animation注意 unity 中ctrl+6 create的动画默认的是animator的动画,我们可以提前在物体上添加animation组件,或者是将animator动画更改为animat原创 2022-04-20 21:46:23 · 7614 阅读 · 0 评论 -
unity持久化存储密码PlayerPerfs
代码using System.Collections;using System.Collections.Generic;using UnityEngine;using System;using System.Linq;using Newtonsoft.Json;using UnityEditor;public class DataBase : MonoBehaviour{ private static DataBase instance; public stati.原创 2022-04-02 20:27:14 · 4813 阅读 · 2 评论 -
unity 3D物体接受鼠标事件的两种实现方法
目录一、实现接口二、内部方法一、实现接口使用该方法需要先完成一些准备工作。① 在脚本中引用命名空间: using UnityEngine.EventSystems;②在Main Camera 上加上Physics Raycaster组件③添加EventSystem④被点击的物体必须腰带有collider⑤在脚本中实现接口IPointerExitHandler,IPointerClickHandler等using System.Collections;usi原创 2022-03-25 22:17:24 · 8389 阅读 · 0 评论 -
Unity虚拟摇杆(事件分发器实现)
目录搭建UI编写代码搭建UI①创建一个image 命名为ControlArea 作为按钮识别的检测范围 并将透明度设置为1(透明度为0不触发事件检测)②如下图的父子关系添加 image 并命名 找到合适的素材拖给相应的image 设置合适的大小(根据自己的喜好和素材的大小自行设置)③注意选中joystick 的 锚点(花)放到左下角 防止因为分辨率改变使得按钮位置改变 中心点(pivot)的位置设置为(0.5,0.5)如下图实现脚本...原创 2022-03-12 16:15:00 · 3956 阅读 · 0 评论 -
随即生成房间二
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class creatRoom : MonoBehaviour{ public enum Direction {up,down,left,right}; public Direction direction; [Header("房间...原创 2022-03-06 08:31:38 · 4133 阅读 · 0 评论 -
如何实现2D人物换枪
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Move: MonoBehaviour{ public GameObject [] gun;//储存所有枪 new private Rigidbody2D rigidbody; private Vector2 input;//人物移动 private Vector2 mousePso;...原创 2022-02-13 17:10:09 · 557 阅读 · 0 评论 -
UGUI(二)
目录ToggleInput FieldSliderToggleinteractable:是否可以让玩家进行选择Is On :单选框是否选中的状态Graphic:选中时显示的图标Group:多个单选框指定同一个Group,就改造成复选框了,一次只能选中一个On value changed:监听单选框是否按下,可以用面板监听,也可以用代码监听using System.Collections;using System.Collections.Generic;..原创 2022-01-30 14:43:06 · 402 阅读 · 0 评论 -
随机生成房间(一)
sing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class RoomGenerator : MonoBehaviour{ public enum Direction { up, down, left, right };//用于控制房间生成方向的枚举类型 public Direction direction;.原创 2022-01-23 15:37:42 · 599 阅读 · 0 评论 -
UGUI基础学习
目录TEXTIMAGETEXTfontsize:字体color:字体颜色;inespacing:字行间隔代码展示:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class TEXTtest : MonoBehaviour{ private Text text; vo...原创 2022-01-16 11:16:51 · 2194 阅读 · 1 评论 -
2D人物移动代码
private GameObject rigid;private Vector2 input;private Vector2 mousePos; //鼠标的位置public float Speed;//人物的移动速度一般设为 public 可以随时调节Private Animator Ani; //获取动画让人物的移动逼真void Start(){//在开始的时候获取这些组件animantor = GetComponent<Animator>();rigidbody = G.原创 2021-12-05 08:49:52 · 1279 阅读 · 0 评论 -
Shader基础学习(二)
6.方法介绍Properties:语法格式: [Attribute_Name] (“Display name ”Type) = default Vaule]Attribute 关键字:对当前的属性进行特殊处理_Name 变量名称 也叫属性名称 在Shader 的CG代码中通过这个名称来调用从属性内容的,在内部利用脚本调用时也是这个名称,所以一定要用英文而且一定要加下划线,不然报错。Display Name:显示在属性面板上的名称,主要起到说明解释的之作用。(要和属性的意原创 2021-11-01 17:51:01 · 633 阅读 · 0 评论 -
如何做一个过场动画(场景加载)
为什么要做过场动画 过场动画是在CG技术的支持下,制作 游戏 内的场景人物或剧情相关的 动画 或图片,一般在游戏宣传以及游戏过程中衔接剧情时使用,对于游戏的细致描述和剧情起到升华的作用unity中的场景加载就是用过场动画来实现的。当一个场景过于庞大的时候,加载场景可能需要很多时间,这时候我们就需要做一个过场动画增强游戏的衔接。第一步...原创 2021-11-26 15:45:06 · 3568 阅读 · 0 评论 -
Unity的 学习
Unity的 学习Unity的窗口Scene 场景编辑窗口Game 游戏运行窗口Hierarchy 场景物体列表窗口Project 项目资源列表窗口Inspector 属性编辑列表窗口Scene 场景编辑窗口功能1.可以任意选中场景的物体进行编辑2.可以随意的控制场景的视角Game 游戏运行窗口功能玩家可以看到的画面 在游戏运行的时候对游戏内的物体进行修改,则此次修改则不会保存。Free aspect 全屏显示 ...原创 2021-02-28 13:01:50 · 304 阅读 · 0 评论 -
Unity3D动态加载一(Resources)**
Unity3D动态加载一(Resources)在Unity3D中Project视窗中创建文件夹:Resources。将需要动态加载的文件放入其中,例如Texture,Sprite,prefab等等。在脚本中调用API接口Resources.Load()相关接口即可。例如:```using UnityEngine;using UnityEngine.UI;public class LoadTest1:MonoBehaviour{ private void Start() { Sprit原创 2021-10-03 18:28:22 · 409 阅读 · 0 评论 -
如何让相机丝滑跟随人物
运用插值运算 transform.position = Vector3.Lerp(transform.position, newPos, Time.deltaTime * moveSpeed); Quaternion oldRotation = transform.rotation; transform.LookAt(player_transform.position); transform.rotation = Quaternion.Lerp(oldRot原创 2021-09-19 08:34:33 · 320 阅读 · 0 评论 -
unity Soket
//服务器Console.WriteLine(“服务器开始运行了…\n”);Socket m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//tcp协议//bind绑定一个端口 any是接受任意段的ipIPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 2019);m_socket.Bind(ipEnd);//绑定端口//l原创 2021-08-29 09:27:26 · 105 阅读 · 0 评论 -
unity贴图
Texture(纹理)纹理:是Unity最基础的图片形式对Texture Type:图片类型。Default:纹理Normal map:法线贴图【关于法线贴图:就是看起来与3D效果无异的2D贴图】(游戏场景中譬如雕刻这种3D细节,如果做3D模型的话,就会浪费显 示芯片,使游戏性能下降,便会用法线贴图,既不影响玩家体验游戏又 不影响游戏性能)Editor GUI and Legacy GUI:编辑器GUI和传统GUI。Sprite(2D and UI):精灵,用于2D对象和UGUI原创 2021-08-22 09:31:17 · 3480 阅读 · 0 评论 -
unity寻路导航
导航系统:是用于实现动态物体自动寻路的一种技术,它将游戏场景中复杂的结构关系简化为带有一定信息的网格,并在这些网格的基础上通过一系列相应的计算来实现自动寻路在unity导航栏点击Window-->Navigation-->Bake-->Bake,烘焙导航场景。也就是说“标示出角色可以移动行走的范围”,烘焙完毕后,会出现一个和场景同名的文件夹,保存导航网格烘焙的数据。3.导航寻路组件我们的角色要在烘焙过的范围内实现导航,角色身上需要添加一个导航组件(NavMeshA...原创 2021-08-15 09:23:44 · 803 阅读 · 0 评论 -
特殊文件夹
文件后缀名场景(.unity)•预置体(.prefab)•模型(.fbx)•贴图(.jpeg/.png/.tga/…)•脚本(.cs/.js)•文本(.txt/.bytes/.json/…)1.Assets文件夹下的特殊文件夹Editor 1.不会被打包。2.放一些编辑器脚本,插件的安装包,以及不需要打进包的工具的资源。Resources (一般不使用)1.资源会被压缩,转化成二进制。会被加密。2.使用Resources.Load加载3.不应放太多...原创 2021-08-08 10:04:37 · 250 阅读 · 0 评论 -
unity中的音频源以及常用的函数
unity中的声音组件对于unity来说,如果游戏缺少某种音频,无论是背景音乐还是其他音效,那么游戏是不完整的Unity 还可以通过用户机器上任何可用麦克风来录制音频,以便在游戏过程中进行使用或存储和传输。音频源 (Audio Source)Audio Clip 音频片段Mute 是否静音(默认为关闭)Loop 是否循环播放Play On Awake 是否在游戏运行时开启Priority 声音的优先级(优先级越大的声音先播放,可以通过代码更改优先级来换音乐,...原创 2021-05-23 10:08:32 · 727 阅读 · 4 评论 -
动画状态机
动画状态机状态机的基本思想是使角色在某一给定时刻进行一个特定的动作上图表示了一个人物的动作状态机动画过渡当你选中每个状态之间的连线时会进入到如下图的页面has exit time如果我们勾选了该项,在动画转换时会等待当前动画播放完毕才会转换到下一个动画,如果当前动画是循环动画会等待本次播放完毕时转换,所以对于需要立即转换动画的情况时记得要取消勾选。还有一种情况时,当我当前的动画播放完毕后就自动转换到箭头所指的下一个状态(没有其他跳转条件),此时必须勾选该选项,否则动画播放完毕原创 2021-05-16 09:11:20 · 528 阅读 · 9 评论 -
函数MoveTowards 的使用方法
函数MoveTowards一般用于相机的移动diff=Vector3.MoveTowards(transform.position,transform.position+acc,3f* Time.fixedDeltaTime)public staticVector3MoveTowards(Vector3current,Vector3target, floatmaxDistanceDelta); current 移动的开始位置。 ...原创 2021-04-24 17:24:10 · 1470 阅读 · 0 评论 -
Unity修改UI的颜色
如何修改UI如何修改这个颜色GUIStyle col = newGUIStyle();//先new一个对象col.normal.textColor = Color.green;//更改颜色GUI.Label(newRect(Screen.width - 120, 40, 100, 40), "旋转",col);Label 中的参数一 是位置 参数二 名字 参数三 GUIStyle Rect 参数一 位置x 参数二 位置y 参数三 宽度 参数四高度也可以直接在场景中...原创 2021-04-17 10:34:49 · 1781 阅读 · 0 评论 -
unity的日常学习
unity的日常学习单例模式让一个类只能创建一次。解决对象的唯一性,保证了内存中一个对象是唯一的 。可以简化代码是游戏编码中一种常用的设计模式一般的形式public class danli : MonoBehaviour{ private static danli instance; public static danli Instance { get { if (instance == null) ...原创 2021-04-03 09:14:50 · 96 阅读 · 0 评论 -
unity的日常学习(三)
unity的日常学习Vector3基础vector3用来表示三维坐标的一个向量vector3 v= new vector3(0,0,1);//()中的三个数分别对应xyz三个坐标vector3 v1 =new vector(1,0)//可以只传两个坐标上的值不传的值默认为0注意:不能只传一个数常用的位置表示vector3.zero//代表 000vector3.left//-100vector3.right//100vector3.up//010vector3.f..原创 2021-03-26 21:55:37 · 800 阅读 · 0 评论 -
unity的学习
unity的学习1、基础知识:标题栏菜单栏工具栏:变换工具、gizmos切换、播放控件、层列表、布局列表功能窗口2、资源及资源类型:在project里面能够create的资源。project面板可以对资源进行组织管理,创建资源,搜索资源。3、模型和角色动画:角色动画创建过程时:创建角色模型、骨骼设置、蒙皮、烘焙动画。maya、3dmax创建的模型、动画,用插件输出或者软件自己的格式,unity自身转换。maya、3dmax创建的模型、动画,需要把IK/FK动画烘焙为关键帧动.原创 2021-01-31 12:59:30 · 151 阅读 · 0 评论 -
我的unity的日常学习
我的unity的日常学习脚本相关的知识点1.创建规则①不在VS中创建脚本②可以放在Assets下的任何位置(最好是放在同一个文件夹)③类名和文件名必须一致,不然不能挂载(以为反射机制创建对象,会通过文件名去找Type)④建议不要用中文名命名⑤没有特殊需要不用去管命名空间⑥创建脚本默认继承 MonoBehaviour挂载:就是将脚本拖入到物体中去不能挂载:就是不能将写好的脚本文件与场景中的物体进行关联MonoBehaviour基类①创建的脚本默认都继承了Mo.原创 2021-03-20 09:57:38 · 124 阅读 · 0 评论 -
控制物体移动
####如何让小车动起来Input.GetKey//长按某个键执行后逻辑Input.GetKeyDown//按下某个键后执行逻辑Input.GetKeyUp//按下之后抬起后执行逻辑这里在列举几个我们常用的几个按键Alpha0 表示的是键盘顶部的数字按键keypad0 表示的是右侧数字键盘上的数字其他数字均可仿照上发的样式写出if (Input.GetKey(KeyCode.W)) { this.transform.p...原创 2021-03-20 09:46:27 · 436 阅读 · 1 评论