Skip to content

Instantly share code, notes, and snippets.

View Tunied's full-sized avatar
🎖️
Working on my new game

Eran Tunied

🎖️
Working on my new game
View GitHub Profile
@Tunied
Tunied / TightImage.cs
Created October 20, 2018 07:02
unity : use tight sprite atlas in canvas as image
using UnityEngine;
using UnityEngine.UI;
public class TightImage : Image
{
private RectTransform mRect;
private RectTransform RectTransform
{
get
@Tunied
Tunied / Mono_CreateQuadAssets.cs
Created April 13, 2022 04:21
生成一个QuadMesh并保存
using Sirenix.OdinInspector;
using UnityEditor;
using UnityEngine;
namespace Code.EditorTools.CreateMesh
{
public class Mono_CreateQuadAssets : MonoBehaviour
{
public Transform left_bottom; //0
public Transform left_top; //1
@Tunied
Tunied / Mirror Sync Protobuf.cs
Created May 1, 2022 05:56
在 Mirror 中 Sync Protobuf
private static void Write_Common(NetworkWriter writer, IMessage _target)
{
byte[] bytes = null;
if (_target != null)
{
bytes = _target.ToByteArray();
}
if (bytes is {Length: > 0})
{
@Tunied
Tunied / Tilemap_WorldLocal_Convert.cs
Created May 1, 2022 11:02
Tilemap World和Local的空间转换
/// <summary>
/// World -> World
/// 比如房间的墙体放在Map里面去Gen,在Logic层存储的都是WorldTileIndex,这样和Modify的Tile去混合时候都可以使用一套相同的坐标系
/// </summary>
public static Vector2Int WorldPos_To_WorldTileIndex(Vector3 _worldPos) { return new(Mathf.FloorToInt(_worldPos.x), Mathf.FloorToInt(_worldPos.y)); }
/// <summary>
/// 把Tilemap的局部Index转到世界做标下
/// </summary>
@Tunied
Tunied / Mono_UDP_Send.cs
Created May 1, 2022 04:47
向某个端口发送UDP消息
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Code.Dev.Network
{
public class Test_UDP_Send : MonoBehaviour
@Tunied
Tunied / Mono_UDP_Receive.cs
Created May 1, 2022 04:45
监听某个端口的UDP消息
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;
namespace Code.Dev.Network
{
public class Test_UDP_Receive : MonoBehaviour
@Tunied
Tunied / GenOptimizerMesh.cs
Created April 19, 2022 08:59
生成优化过的Mesh
/// <summary>
/// 生成用于扫描的纹理
/// </summary>
private static Mesh GenNavMesh()
{
var walkAreaList = CEVoxelMeshGreedyOptimizer.Optimize(Game.Common.Map.MapSizeX, Game.Common.Map.MapSizeY, IsSameTile, IsHaveTile);
var vertices = new List<Vector3>();
var triangles = new List<int>();
var normals = new List<Vector3>();
@Tunied
Tunied / Tilemap_LoopEachTile.cs
Created April 12, 2022 02:55
遍历给定Tilemap下的所有非空Tile,根据Tile的Name做相应的操作
var tileMap = _t;
var bounds = tileMap.cellBounds;
var allTiles = tileMap.GetTilesBlock(bounds);
for (var x = 0; x < bounds.size.x; x++)
{
for (var y = 0; y < bounds.size.y; y++)
{
var tile = allTiles[x + y * bounds.size.x];
if (tile == null) continue;
@Tunied
Tunied / GreedyMeshGenerator.cs
Created August 27, 2022 08:46
在XZ平面上根据给定Tile信息生成Greedy优化后的Mesh
using System.Collections.Generic;
using Code.CopyEngine.Core.Utils;
using UnityEngine;
namespace Code.Utils.Tilemap2Mesh
{
public class Tilemap2Mesh_LayerMeshGenerator
{
public Dictionary<Vector2Int, bool> mMarkDic = new();
@Tunied
Tunied / Mono_CompoundTrigger.cs
Last active August 29, 2022 10:45
CompoundTrigger for demonstration
using System.Collections.Generic;
using UnityEngine;
public class Mono_CompoundTrigger : MonoBehaviour
{
public class ColliderInfo
{
public Collider target;
public int count;
}