首页 > 解决方案 > 如何使用平面法线将矢量从 xyz 转换为 xy?(使用 hlsl)

问题描述

float3 plane_normal = mul(mesh_Object2World, v.normal);
o.normal = o.worldPos - _Mouse.xyz;

//接下来,我不知道如何使用“plane_normal”将“o.normal”转换为 2d

标签: c#unity3dmathvectorhlsl

解决方案


不确定您到底要做什么。但是在 Unity 中,2D 项目和 3D 项目是一样的。唯一不同的是默认背景,相机透视和 3D 使用 z 平面,即深度。

这意味着Vector3(x, y, 0) == Vector2 (x, y)您需要做的就是设置Vector3.z = 0. 所以正常的 forVector3(x, y, 0)Vector2 (x, y)是一样的。


推荐阅读