admin管理员组

文章数量:1589959

【StudyLog】Unity Shader学习 + 3D Interaction

Shader学习

shader下载

3DInteraction

一些笔记

关于鼠标状态

GetMouseButton:每一帧鼠标处于按下状态都会返回true。
Input.GetMouseButton(0):表示鼠标左键按下
Input.GetMouseButton(1):表示鼠标右键按下
Input.GetMouseButton(2):表示鼠标中键按下

GetMouseButtonDown:鼠标按下的那一帧返回true
Input.GetMouseButtonDown(0):表示鼠标左键按下
Input.GetMouseButtonDown(1):表示鼠标右键按下
Input.GetMouseButtonDown(2):表示鼠标中键按下

GetMouseButtonUp:鼠标抬起的那一帧返回true
Input.GetMouseButtonUp(0):表示鼠标左键按下
Input.GetMouseButtonUp(1):表示鼠标右键按下
Input.GetMouseButtonUp(2):表示鼠标中键按下

注意:鼠标按下和抬起的位置可以通过Input.mousePosition来获取,不过该参数返回的是屏幕坐标位置,即以左下角为原点的坐标系。

屏幕坐标与世界坐标的转换
 Vector3 screenPos = Camera.main.WorldToScreenPoint(pos); 
 //世界坐标转屏幕坐标:
 Vector3 worldPos = Camera.main.ScreenToWorldPoint(pos); 
 //屏幕坐标转世界坐标:
如何获取所有显示和隐藏的子对象
GetComponentsInChildren<Transform>(true);
//游戏对象下的子物体激活的没激活的都会被拿到,包括游戏对象本身
GetComponentsInChildren<Transform>(false);
//游戏对象下的子物体激活的会被拿到,包括游戏对象本身;没激活的不会被拿到

一些实现效果

鼠标操作3D空间物体
实现功能

鼠标悬停高亮、左键拖拽物体、右键旋转物体

效果

简单的UI元素
效果

本文标签: UnityShaderInteraction