Skip to content

Instantly share code, notes, and snippets.

@Aaron8052
Aaron8052 / Intro.md
Last active March 31, 2024 15:17
C#非托管数组

C#非托管数组

注意

  • 只能用于非托管对象
  • 该数组不会检查越界,使用时需要记录数组的大小
  • 数组不使用之后需要调用Delete方法释放内存
@Aaron8052
Aaron8052 / 1减少不必要的Update调用.md
Last active January 5, 2024 02:30
Unity游戏优化(四)减少不必要的Update调用

Unity游戏优化(四)减少不必要的Update调用

很多 Update() 内的代码实际上并不需要每帧调用(自行判断),可以考虑改用 FixedUpdate()Coroutine InvokeRepeating()限制代码的调用频率

详见下方代码示例

@Aaron8052
Aaron8052 / 1对象缓存.md
Last active January 5, 2024 02:24
Unity游戏优化(三)对象缓存

Unity游戏优化(三)对象缓存

对于需要多次引用的对象,例如Transform,或其他对象,建议将其缓存到一个变量中以供后续使用,以减少不必要的开销。

@Aaron8052
Aaron8052 / 移除空回调定义.md
Last active January 5, 2024 02:24
Unity游戏优化(二)移除空回调定义

Unity游戏优化(二)移除空回调定义

Unity创建脚本时会自动包含Start()Update() 这两个方法。如果你用不到它们,请记得移除,因为这些方法不论是否为空,Unity都始终会调用它们

@Aaron8052
Aaron8052 / GetComponent变体.md
Last active January 5, 2024 21:25
Unity游戏优化(一)GetComponent变体

Unity游戏优化(一)GetComponent变体

GetComponent主要有三种变体:

  1. GetComponent("string")
  2. GetComponent<Type>()以及
  3. GetComponent(typeof(Type))

经过1000000次的循环测试后,第二种执行最快,仅89ms; 其次是第三种,95ms,仅相差6ms;

@Aaron8052
Aaron8052 / GiveawayWinnersGenerator.cpp
Last active December 12, 2023 02:29
【DL 7周年抽奖活动】GiveawayWinnersGenerator
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <ctime>
#include <cstdlib>
using namespace std;
@Aaron8052
Aaron8052 / [Xcode] MapFileParser.sh Permission Denied.md
Last active March 7, 2023 23:14
关于Xcode打包出现 “MapFileParser.sh: Permission denied” 报错的解决方法

有时候通过从Windows电脑打包的Xcode工程构建iOS包的时候,会提示 MapFileParser.sh: Permission denied 之类的报错,导致打包失败。

解决方法

  • 在 BuildTarget - BuildPhrases - Run Script 的 Shell 中第一行添加:chmod +x "$PROJECT_DIR/MapFileParser.sh"
  • 修改过后的Shell样本在 example.sh

原因

  • Mac默认会禁止非本机创建的shell文件的运行权限,因此xcode在试图调用这个shell时会被拒绝,添加这行代码会给予 MapFileParser.sh 文件可执行权限

  • MapFileParser.sh 文件在后续的Unity版本中移除
@Aaron8052
Aaron8052 / MonoBehaviourSingleton.cs
Last active February 22, 2023 04:13
MonoBehaviour Singleton (单例)
using UnityEngine;
/// <summary>
/// 单例
/// </summary>
/// <typeparam name="T">类型</typeparam>
public class MonoBehaviourSingleton<T> : MonoBehaviour where T : MonoBehaviour
{
protected static T instance;
public static T Instance => instance;
@Aaron8052
Aaron8052 / Button3D.cs
Last active December 12, 2023 02:06
Unity Button 3D
using System.Collections;
using System.Collections.Generic;
using DancingLine.GameCamera;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
[RequireComponent(typeof(Collider))]
public class Button3D : MonoBehaviour
{
@Aaron8052
Aaron8052 / [Unity调用iOS分享界面].md
Last active February 22, 2023 04:31
【Objective-C】Unity调用iOS分享界面
  • filePath:分享图片的本地路径

  • URL:用户点击分享内容时跳转的页面

  • 需要为iPad单独设置分享界面的弹窗位置以及大小,否则出错