首页 > 其他分享 >/// unity 用某个轴去朝向物体

/// unity 用某个轴去朝向物体

时间:2023-02-18 18:24:47浏览次数:33  
标签:朝向 轴去 self Vector3 tr unity var rotation

/// <summary>
/// 用某个轴去朝向物体
/// </summary>
/// <param name="tr_self">朝向的本体</param>
/// <param name="lookPos">朝向的目标</param>
/// <param name="directionAxis">方向轴,取决于你用那个方向去朝向</param>
void AxisLookAt(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
{
var rotation = tr_self.rotation;
var targetDir = lookPos - tr_self.position;
//指定哪根轴朝向目标,自行修改Vector3的方向
var fromDir = tr_self.rotation * directionAxis;
//计算垂直于当前方向和目标方向的轴
var axis = Vector3.Cross(fromDir, targetDir).normalized;
//计算当前方向和目标方向的夹角
var angle = Vector3.Angle(fromDir, targetDir);
//将当前朝向向目标方向旋转一定角度,这个角度值可以做插值
tr_self.rotation = Quaternion.AngleAxis(angle, axis) * rotation;
// tr_self.localEulerAngles = new Vector3(0, tr_self.localEulerAngles.y, 90);//后来调试增加的,因为我想让x,z轴向不会有任何变化
}

标签:朝向,轴去,self,Vector3,tr,unity,var,rotation
From: https://www.cnblogs.com/DND-/p/17133255.html

相关文章

  • Unity Android端操作-显示/影藏+旋转+放大缩小+截图的脚步代码
    显示/影藏//获取操作对象publicGameObjecttext;//初始旋转角度publicfloatxspeed=120;voidStart(){}//Update......
  • Unity 胶囊碰撞体(CapsuleCollider)
    胶囊碰撞体(CapsuleCollider) 由两个半球与一个圆柱体连接在一起组成。胶囊碰撞体与胶囊原始碰撞体的形状相同。         属性属性:        ......
  • 【Unity 3D游戏开发】在Unity使用NoSQL数据库方法介绍
    随着游戏体积和功能的不断叠加,游戏中的数据也变得越来越庞杂,这其中既包括玩家产生的游戏存档等数据,例如关卡数、金币等,也包括游戏配置数据,例如每一关的配置情况。尽管Unity......
  • Unity TextMesh 操作-----点击显示/影藏+长按方大+旋转
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassSetActiveLogic:MonoBehaviour{//获取操作对象publicGa......
  • unity创建物体的编辑器的回调
    注意:需要Unity2021以上版本 参考https://forum.unity.com/threads/editor-callbacks-for-gameobject-creation-deletion-duplication-by-user-or-user-script.788792/......
  • Unity在使用UI接口时,遇到拖拽位置错误的问题
     IDragHandler,IEndDragHandler,IBeginDragHandler在使用UI拖拽接口的时候,发现拖拽时会异常的偏移最后发现是因为是直接使用了transform.position导致的后来改成Re......
  • Unity IL2cpp内存管理
    分配关键类hblkstructhblk{charhb_body[HBLKSIZE];};BoehmGC是按照block来分配内存的,HBLKSIZE表示每个block大小默认值是4096,和页大小一致,猜测合理的值......
  • Unity资源路径
    1.Resource:在Unity编辑器的Project窗口里创建,Resources文件夹下的资源全部会打包进.apk或者.ipa,并且打包时会将里面的资源压缩处理。加载方法是Resources.Load(文件名),需要......
  • unity签名
      usingSystem;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;namespaceLastZero.Utility{publicclassPainting:MonoBehaviou......
  • Unity shader算法收集之缩放uv
    缩放uv算法代码如下:1half2ScaleUVsByCenter(half2uv,floatscale)2{3float2center=float2(0.5,0.5);4return(uv-center)/scale+center;5......