搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小丑西瓜9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
大数据分析教程_编程入门自学教程_菜鸟教程-免费教程分享_大数据菜鸟教程
2
使用Makefile笔记总结_makefile print
3
VMware Tools 支持 Windows 2000、Windows XP 和 Windows Server 2003 (81466)_vmware tools 10.0.12下载
4
2024年网络安全最新【家庭安全防护】配置安全 DNS_2024 公共dns
5
单机:Oracle单机数据库一键安装(11GR2/12C/18C/19C/21C)_lucifer三思而后行oracleshellinstall.sh下载
6
Statistical Language Model笔记+几个简单平滑算法_加一平滑算法中v是n-gram大小还是词典大小
7
nvidia旧版驱动_如何下载旧版本的Nvidia Driver
8
unity|从数据库中读取信息 鼠标悬停显示文字/图片 (GUI)_unity鼠标检测ui显示图片
9
SaaS 出海,如何搭建国际化服务体系?(二)
10
git pull request_git request pull
当前位置:
article
> 正文
unity3d 鼠标点击或触摸 控制角色对象行走_unity如何把人物变为可点击对象
作者:小丑西瓜9 | 2024-06-02 23:06:59
赞
踩
unity如何把人物变为可点击对象
实现思路:鼠标点击,产生目标点,计算角色和目标点的夹角,旋转角色朝向目标点,然后移动角色。
void Update ()
{
if(Input.GetMouseButtonDown(0))
{
RayControl();
}
if(flagMove)
{
if(Vector3.Distance(transform.position,mousePos)>1)
{
transform.Translate(transform.worldToLocalMatrix* transform.forward * Time.deltaTime*5);
//transform.forward是世界坐标,通过transform.worldToLocalMatrix转换矩阵转到本地坐标 然后在本地坐标运动,没有必要必须在本地坐标系运动 但是必须注意要统一起来。
}
else
{
flagMove=false;
}
}
}
void RayControl()
{
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
//向屏幕发射一条射线
if(Physics.Raycast(ray,out hit,200))射线长度为200 和地面的碰撞盒做检测
{
GameObject targetPos=GameObject.CreatePrimitive(PrimitiveType.Sphere);//实例化一个Sphere
targetPos.transform.localScale=new Vector3(0.5f,0.5f,0.5f);
mousePos=hit.point;//获取碰撞点坐标
mousePos.y=transform.position.y;
targetPos.transform.position=mousePos;//Sphere放到鼠标点击的地方
targetDir=mousePos-transform.position;//计算出朝向
Vector3 tempDir=Vector3.Cross(transform.forward,targetDir.normalized);//用叉乘判断两个向量 是否同方向
float dotValue=Vector3.Dot(transform.forward,targetDir.normalized);//点乘 计算两个向量的夹角,及角色和目标点的夹角
float angle=Mathf.Acos(dotValue)*Mathf.Rad2Deg;
if(tempDir.y<0)//这块 说明两个向量方向相反,这个判断用来确定 假如两个之间夹角30度 到底是顺时 还是逆时针旋转。
{
angle=angle*(-1);
}
print(tempDir.y);
print("2:"+angle);
transform.RotateAround(transform.position,Vector3.up,angle);
flagMove=true;
}
}
注意事项:写完了才发现 原来没必要这么麻烦,这样transform.forward=(mousePos-transform.position).normalized 就可以直接让角色朝向目标点 RayControl函数 好多都可以省了
http://cl314413.blog.163.com/blog/static/19050797620127602812199/
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
Unity
性能
优化
之
GPU
Instancing
(五)_
unity
gpcinstance
...
GPU
Instancing
也是一种Draw call的
优化
方案,使用一个Draw call就能渲染具有多个相同材质的网...
赞
踩
article
Unity
-
Timeline
之
Nesting
Timeline
instances
(
嵌套
的T...
目录:
Unity
-
Timeline
知识汇总原味:https://docs.unity3d.com/Packages...
赞
踩
article
Unity
性能
优化之
LOD
技术
(十)_
unity
如何
设置
lod
...
有三种模式可以选择,None 、Cross Fade 和 Speed TreeNone就是一个默认模式,不作处理。Cro...
赞
踩
article
Unity3D
法线转换&
切线
空间
_
unity
切线
空间
...
Unity3D
法线转换&
切线
空间
_
unity
切线
空间
unity
切线
空间
目录 编辑 前...
赞
踩
article
unity
shader
自己构造
切线
空间
到
世界
空间
矩阵
为何右乘?_
unity
切线
空间
转
世界
空间
...
自定义的half3x3 是行优先的,也就是第一行是
切线
,第二行是副
切线
,第三行是法线,但我们需要列
矩阵
。就是需要
转
置
矩阵
...
赞
踩
article
Unity
|
Shader
基础知识
(第十一集:什么是
Normal
Map
法线
贴图
)_
法线
贴图
格式...
本小节会给大家解释,什么是
法线
贴图
?为什么
法线
贴图
会产生深度?我们怎么自己写一个shader,用上
法线
贴图
。_
法线
贴图
格...
赞
踩
article
Unity-Shader
切线
空间
_
tangent
unity
...
在使用凹凸纹理时我们经常会用到一个叫
切线
空间
的东西。而这个
切线
空间
里有三个参数,顶点法线(Normal)、顶点次法线(b...
赞
踩
article
Unity
Shader
:
向量
在
世界
空间
与
切线
空间
中变换的相关数学原理与应用_从
世界
坐标
转换到
切线
坐...
1,将
向量
由
世界
空间
变换至
切线
空间
2,将
向量
由
切线
空间
变换至
世界
空间
1,将
向量
由
世界
空间
变换至
切线
空间
假设在
世界
空间
中...
赞
踩
article
Unity
法线
贴图
原理理解(
为
什么
存在切线
空间
?存的值是
什么
?)_
tangent
如何转到
世界
空间
...
Unity
法线
贴图
原理理解(
为
什么
存在切线
空间
?存的值是
什么
?_
tangent
如何转到
世界
空间
unity
tangen...
赞
踩
article
【
Unity
Shader
】
纹理
实践3.0:
切线
空间下使用法线
纹理
_
unity
shader
tbn...
记录了法线
纹理
的使用过程,同时对在
切线
空间下进行光照计算的
Shader
代码编写过程做了一个相对详细的记录。_
unity
...
赞
踩
article
unity
-
shader
-
切线
空间
_
unity
shader
获取
切线
...
法线贴图 与
切线
空间
切线
空间
使用 法线贴图 是因为在 低模 下想获得 高模 凹凸表面光照效果。(也就是面数不够,法线...
赞
踩
article
unity
适配_
Unity
常用
矩阵
运算
的
推导补遗——
切线
空间
...
在上一篇文章中,我写了一些关于
Unity
中各个坐标
空间
及其转换
矩阵
是如何得到
的
,说实在
的
,我是那种“记忆需要依靠外部装置...
赞
踩
article
Unity3d
Shader
篇(八)—
切线
空间
法线
纹理
映射_cpu传递过来的
切线
空间
和
法线
纹理
的切...
法线
纹理
映射(Normal Mapping)是一种在计算机图形学中常用的技术,它可以在不增加几何体细节的情况下,为物体表...
赞
踩
article
【
Unity
Shader
】
顶点
输入输出
结构体
语义
_
texcoord1
...
Unity
版本:2020.3.23此教程会长期更新,欢迎大家关注!!!博主微信号:ITComputerGraph_te...
赞
踩
article
【
Unity
】
Unity
常用类:
向量
Vector3
、四元数
Quaternion
_
quaternion
...
但如果有任意三个
向量
为标准化
向量
(大小为1),且彼此正交(互相垂直),他们就可以被认定为轴。
Vector3
提供了一些静态...
赞
踩
article
Unity
Shader
基础纹理_
unity
tangent
...
纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术,我们可以把一张图片黏在模型表面,逐纹素地控制模型的颜色...
赞
踩
article
Unity
Shader
切
空间
旋转
矩阵
的笔记_
shader
rotation
矩阵
...
在学习
Unity
的
Shader
时,发现 unity
Shader
内置了一个宏定义// Declares 3x3 mat...
赞
踩
article
Unity
Shader
知识点
(五)
法线
贴图
生成
凹凸
效果
Shader
_
法线
凹凸
...
此文及专栏系以乐乐女神《入门精要》书籍为基础整理的
Unity
Shader
学习笔记,尽量以初学者视角还原(其实半年前我就...
赞
踩
article
Unity
中的
坐标系
_
unity
tangent
...
参考一、基础1、什么是
坐标系
坐标系
的定义是:对于一个n维系统,能够使每一个点和一组(n个)标量构成一一对应的系统。在这篇...
赞
踩
article
Unity
Shader
学习笔记(4)切线 &
世界
空间下
法线
的
使用
_
ue
世界
法线
...
shader主要实现效果:(1)
法线
贴图
使用
;(2)利用
法线
贴图影响表面发射计算Specular;主要代码://切线空间...
赞
踩
相关标签
unity
性能优化
Timeline
游戏引擎
矩阵
线性代数
贴图
Shader
向量
法线贴图
凹凸贴图
图形学
游戏
技术美术
shader
切线空间