Unity 位置计算

Unity 位置计算

问题:获取某个位置的坐标在前方(或后方)一定距离的方法

public Vector3 GetPosition(Quaternion rotation, Vector3 position, float distance) 
{ 
    Vector3 direction = rotation * Vector3.forward; 
    return position + (direction * distance); 
} 

Unity3D是如何计算 forward的

public Vector3 forward 
{ 
    get 
    { 
     return this.rotation * Vector3.forward; 
    } 
    set 
    { 
     this.rotation = Quaternion.LookRotation(value); 
    } 
} 

Ray结构及其GetPoint函数用于通过提供起始点,方向和距离来计算未知距离找到

Vector3 startingPostion = new Vector3(4, 6, 2); 
Quaternion theDirection = Quaternion.identity; 

Ray ray = new Ray(); 
//Set the starting point 
ray.origin = startingPostion; 
//Set the direction 
ray.direction = Vector3.forward + theDirection.eulerAngles; 

//Get the distance 
ray.GetPoint(100); 

或者

Ray ray = new Ray(startingPostion, worldRotation * Vector3.forward); 
//Get the distance 
ray.GetPoint(100); 

参考链接:https://www.pianshen.com/article/3402173540/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中的Text组件在计算文本大小方面有几种方法。根据引用\[1\],第一种方法是通过赋值文本后立即获取Text组件的preferredWidth属性来获取文本的宽度。然而,由于preferredWidth的计算可能在下一帧才进行,所以在同一帧内获取到的大小可能不准确。 另一种方法是使用Text组件的preferredHeight属性来获取文本的高度,如引用\[2\]所述。这个属性可以告诉开发者渲染文本所需的高度。 还有一种方法是手动计算文本的大小并改变相应的UI元素,如引用\[3\]所述。这种方法需要根据文本的内容和样式来计算大小,并手动调整UI元素的sizeDelta属性。 总的来说,Unity计算Text组件的大小可以使用preferredWidth和preferredHeight属性,或者手动计算并调整UI元素的大小。具体使用哪种方法取决于具体的需求和场景。 #### 引用[.reference_title] - *1* *3* [Unity Text长度计算的延迟性问题](https://blog.csdn.net/l1606468155/article/details/103994985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Unity3D计算Text组件渲染全部文字所需要的宽高](https://blog.csdn.net/Nice_66/article/details/112967304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值