Unity3D圣典3.3版本-中文版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
RaycastHit.textureCoord 纹理坐标
# [RaycastHit](RaycastHit.html).textureCoord 纹理坐标 var *textureCoord* : [Vector2](../Vector2/Vector2.html) *Description* 描述 The uv texture coordinate at the impact point. 在碰撞点的 UV 纹理坐标。 This can be used for 3D texture painting or drawing bullet marks. If the collider is no mesh collider, zero [Vector2](../Vector2/Vector2.html) will be returned. 这个可用于 3D 纹理绘制或绘制弹痕。如果碰撞器不是网格碰撞器,将被返回零 Vector2。 ``` // Attach this script to a camera and it will paint black pixels in 3D // on whatever the user clicks. Make sure the mesh you want to paint // on has a mesh collider attached. //附加这个脚本到相机,当用户点击时 //它将在3D中绘制黑色的像素,确保绘制的网格附加有一个网格碰撞器. function Update () { // Only when we press the mouse //只有在按下鼠标时 if (!Input.GetMouseButton (0)) return; // Only if we hit something, do we continue //只有碰到某些东西,继续 var hit : RaycastHit; if (!Physics.Raycast (camera.ScreenPointToRay(Input.mousePosition), hit)) return; // Just in case, also make sure the collider also has a renderer // material and texture. Also we should ignore primitive colliders. //以防万一,还要确保碰撞器也有一个渲染器、材质和纹理.我们也应该忽略几何体碰撞器. var renderer : Renderer = hit.collider.renderer; var meshCollider = hit.collider as MeshCollider; if (renderer == null || renderer.sharedMaterial == null || renderer.sharedMaterial.mainTexture == null || meshCollider == null) return; // Now draw a pixel where we hit the object //现在在所碰到的物体上绘制一个像素 var tex : Texture2D = renderer.material.mainTexture; var pixelUV = hit.textureCoord; pixelUV.x *= tex.width; pixelUV.y *= tex.height; tex.SetPixel(pixelUV.x, pixelUV.y, Color.black); tex.Apply(); } ``` 参见:Physics.Raycast, Physics.Linecast, Physics.RaycastAll.
da
2022年5月23日 14:28
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码