首页 > 其他分享 >Unity中,区别LookAt与LookRotation 一直不太理解的问题.....

Unity中,区别LookAt与LookRotation 一直不太理解的问题.....

时间:2023-03-22 23:22:07浏览次数:35  
标签:LookRotation target transform Unity ..... LookAt position 敌人

详细的资料可以看这个大佬总结的:参考资料

我这里直接用图结合着说:

首先呢,我们的主角要看向敌人,下图是还没看向之前:

 

 


使用LookAt函数看向敌人后,Z轴看向敌人(也是正面看向敌人)

 

  


而如果LookRotation的参数直接填敌人的位置,就会出现下面这种情况:

 

 


我们可以发现,主角现在看向的根本不是敌人。
在图上很明显,主角看的方向,与原点到敌人的方向相同:

 


所以要想主角看向敌人,则应该取黑色箭头的方向,即参数应该填:(敌人的位置-主角的位置),这里是向量的减法运算,结果方向指向被减向量方向!

 

 

 下面是测试代码:

using UnityEngine;
 
/// <summary>
/// 
/// * Writer:June
/// *
/// * Data:2021.4.2
/// *
/// * Function:区别LookAt与LookRotation
/// *
/// * Remarks:
/// 
/// </summary>
 
public class LookTest : MonoBehaviour
{
    /// <summary>
    /// 敌人
    /// </summary>
    public Transform target;
 
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.LookAt(target);
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            transform.rotation = Quaternion.LookRotation(target.position);
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            transform.rotation = Quaternion.LookRotation(target.position - transform.position);
        }
        //画原点与敌人之间的线
        Debug.DrawLine(Vector3.zero, target.position, Color.yellow);
        //画主角与敌人之间的线
        Debug.DrawLine(transform.position, target.position, Color.black);
 
    }
}
 

  

标签:LookRotation,target,transform,Unity,.....,LookAt,position,敌人
From: https://www.cnblogs.com/porter/p/17245870.html

相关文章

  • 使用unity构建射击小游戏
    使用unity构建射击小游戏成果图参考例程www.manning.com/hocking问题汇总1、renderer.material方法过时换成使用this.GetComponent()参考网址:https......
  • unity3d Update()和FixedUpdate()的区别
    从字面上理解,它们都是在更新时会被调用,并且会循环的调用。但是Update会在每次渲染新的一帧时,被调用。而FixedUpdate会在每个固定的时间间隔被调用,那......
  • Unity绘制圆和缓动雷达图
    Unity绘制圆和缓动雷达图之前在做UI模块的时候遇到过需要做雷达图的效果,所以简单复习了一下关于网格绘制我们都知道Unity绘制图形是通过Mesh网格添加顶点进行绘制,那么知......
  • 【Unity3D】空间和变换
    1空间1.1左右手坐标系及其法则1.1.1左右手坐标系左手坐标系与右手坐标系​Unity局部空间、世界空间、裁剪空间、屏幕空间都采用左手坐标系,只有观察空间采用右......
  • 【Unity3D】激光灯、碰撞特效
    1需求描述​本文将模拟激光灯(或碰撞)特效,详细需求如下:从鼠标位置发射屏幕射线,检测是否与物体发生碰撞当与物体发生碰撞时,在物体表面覆盖一层激光灯(或碰撞)特效​......
  • HTTP协议分析与Unity用法
    一、http协议简介http协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议,使用TCP/IP通信协议传输数据,面向......
  • cocos creator教程:嵌入 unity
    使用配置unity2021.3.20f1c1cocoscreator3.6.1unity配置1.配置原生环境顶部菜单/文件/生成设置,以IOS为例2.配置APILevel和cocos打包配置一致接入步......
  • Revit 机电模型导入 Unity(一)
    Revit机电模型导入Unity(一)目前存在问题1.Revit机电模型导出带材质的模型到Unity2.Revit机电模型颜色是通过过滤器(仅改变视图并未改变实际材质颜色)实现分类,......
  • 【Unity3D】基于模板测试和顶点膨胀的描边方法
    1前言​选中物体描边特效中介绍了基于模板纹理模糊膨胀的描边方法,该方法实现了软描边,效果较好,但是为了得到模糊纹理,对屏幕像素进行了多次渲染,效率欠佳。本文将介绍......
  • 【Unity3D】基于AssetBundle实现资源热更新
    1前言​Unity3D本地资源一般放在Resources目录下,但是Resouces文件夹的大小不能超过2G,使用AssetBundle管理资源可以解决Resources文件夹受限问题。​......