生命周期Unity 中常见组件的生命周期函数如下:
OnLoad:对象加载时调用
Start:在第一次帧更新之前调用
Update:每帧调用一次,用于处理逻辑更新
LateUpdate:所有 Update 执行完后调用
OnDisable:当对象被禁用时调用
OnEnable:当对象被启用时调用
OnDestroy:对象销毁时调用
this.node 表示当前节点自身(常用于 Cocos Creator 等框架)
输入事件鼠标事件类型:1234Input.EventType.MOUSE_DOWN // 鼠标按下Input.EventType.MOUSE_MOVE // 鼠标移动Input.EventType.MOUSE_UP // 鼠标抬起Input.EventType.MOUSE_WHEEL // 鼠标滚轮滚动
触摸事件类型:1234Input.EventType.TOUCH_START // 触摸开始Input.EventType.TOUCH_MOVE // 触摸移动Input.EventType.TOUCH_END // 触摸结束I ...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384## 基础汇总:- Set自动升序排列、自动去重 - pair ```cpp#include <iostream>#include <vector>#include <algorithm> // 用于 remove 和 find 函数using namespace std;// vector的声明vector<int> v1;// 声明一个二维vectorvector<vector<int>> v2;// vector的快速设置容器大小vector<vector<int>> v1(10); // 设置容器大小为10// 设置vector的容器大小v1.resize(10);/ ...
速通1234567891011121314151617181920212223242526272829303132333435363738<!-- wp:paragraph --><p>-- 单段注释</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>--[[多段注释]]--</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>一个汉字占3个字符:a = 'abc字符串' #a = 12</p><!-- /wp:paragraph -->### lua中的数据类型<!-- wp:paragraph --><p>数字number 、 字符串string 、布尔boollean 、 空nil</p><!-- /wp:paragraph --><!-- wp:paragraph --& ...
Unity 基础MathfMathf.PI圆周率
Mathf.Abs()绝对值
Mathf.CeilToInt()向上取整(不是4舍5入)
Mathf.FloorToInt()向下取整(不是4舍5入)
Mathf.Clamp(10,11,20)钳形函数(第一个数和后面两个数进行比较,小于后面最小的数取最小数,大于同理,在他们之间则取本身)
Mathf.Max(1,23,4)最大值
Mathf.Min()最小值
Mathf.Pow(2,3);谁的几次方
Mathf.RoundToint()四舍五入
Mathf.Sqrt()平方根
Mathf.IsPowerOfTwo()判断一个数是不是2的n次幂
Mathf.Sign()判断一个数是不是正数(正数返回1负数返回-1)
Mathf.Lerp(start,10,Time.deltaTime)插值运算Lerp
Mathf之三角函数角度和弧度的转换关系1rad = 57.3° 1° = 0.01745rad
Mathf.Rad2Deg弧度转角度
Mathf.Deg2Rad角度转弧度
三角函数Mathf.Sin()传入的是弧度角 ...
GameObject成员变量:
gameObject.name 名字
gameObject.activeSelf 激活状态
gameObject.isStatic 静态状态
gameObject.layer 层级
gameObject.tag 标签
gameObject.transform.position 位置
静态方法
GameObject.CreatePrimitive(PrimitiveType.Cube); // 创建一个Cube类型的物体,返回一个GameObject。
查找单个对象无法找到失活的对象,多个满足条件的对象时返回不确定的对象,所以应确保唯一性。
GameObject.Find(""); // 根据名字查找(效率低)
GameObject.FindWithTag(""); // 根据tag查找
查找多个对象
GameObject[] objs = GameObject.FindGameObjectsWithTag("Player");
...
Unity
未读123456789### LitJosn`using LitJson` 引入命名空间#### 序列化```csharpstring Json = JsonMapper.ToJson(lineList);File.WriteAllText(Application.persistentDataPath + "/save.json", Json);
lineList 是要序列化的对象
反序列化12string data = File.ReadAllText(Application.persistentDataPath + "/save.json");List<List<int>> Data = JsonMapper.ToObject<List<List<int>>>(data);
lineList 是什么类型就用什么类型接收,例如这里用 List<List<int>> 接收
JsonUnity12345678910111213// File.WriteAllText ...
以下是你提供的 HTML 片段内容转换成 Markdown 格式后的版本:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106### C# 参数传递:ref 和 out在 C# 中,普通参数传递是按值传递的,这意味着在函数内部对参数的修改不会影响到函数外部的变量。为了在函数内部修改外部变量的值,我们可以使用 `ref` 和 `out` 关键字。以下是它们的用法和区别:#### 按值传递示例```csharpstatic void Main(string[] args){ int b = 5; ChangeValue(b); Console.WriteLine(b);}static vo ...
Unity
未读指定资源加载1public AssetReferenceT gameObject;
异步加载资源12345678910111213141516171819//异步加载资源gameObject.LoadAssetAsync<GameObject>().Completed += (op) =>{ if (op.Status == AsyncOperationStatus.Succeeded) { //成功加载资源 Debug.Log("gameObject loaded successfully"); GameObject obj = Instantiate(op.Result); material.LoadAssetAsync<Material>().Completed += (op1) => { obj.GetComponent<MeshRenderer>().material = o ...
Unity
未读ScriptableObject 概述是什么:Unity 提供的一个数据存储基类。
作用:
数据复用(所用属性都会分配一次内存)
编辑模式下的持久化,发布运行时不具备持久化特性
配置文件:用于配置游戏中的数据。过去使用 JSON 配置文件,现在通过 ScriptableObject 在 Unity 内部进行配置,在 Inspector 窗口中进行数据设置
好处:
减少代码拷贝时造成的内存占用
更好地处理数据带来的多态性
使用方式
继承 ScriptableObject
添加特性:
1[CreateAssetMenu(fileName = "MyDataText", menuName = "数据/MyDataText", order = 1)]
效果说明:
CreateAssetMenu:在 Project 窗口右键 Create 显示的菜单
fileName:创建的文件名
menuName:菜单路径
order:排序值(数组式排序)
EditorWindow 概述使用步骤:
继承 EditorWindow
类中添加特性:
...
IPAddress 类示例:1IPAddress ip = IPAddress.Parse("118.102.111.11");
说明:
127.0.0.1 表示本机地址(本地回环地址)
IPEndPoint 类示例:1IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("118.102.111.11"), 1900);
说明:
封装 IP 地址和端口号,用于网络通信的目标地址
域名解析 (DNS)获取主机名:1Dns.GetHostName(); // 得到本地主机名
获取域名对应的 IP 列表:1IPHostEntry ipEntry = Dns.GetHostEntry("www.360.com");
成员说明:
成员
描述
ipEntry.AddressList
IP 地址数组
ipEntry.Aliases
主机的别名列表(CNAME 记录)
ipEntry.HostName
DNS 主机名
异步获取 IP 地址示例代码:1 ...