在开发中时不时会用到这个需求,比如要放置一个宠物在身边,但是不能在自己身上。

一个简单的方法

Vector3 pos = Vector3.zero;  
int angle = Random.Range(0, 360);  
Vector3 range = Quaternion.AngleAxis(angle, Vector3.up) * Vector3.back * 1.5f;  
pos = pos + range;  

同理,如果想做一个跟随功能,就是离角色有一定距离,

Vector3 chasePosition = m_owner.GetPosition() - m_owner.GetRotation() * Vector3.forward * 2;