Unity3D实现物体排成弧行
本文实例为大家分享了Unity3D实现物体排成弧行的具体代码,供大家参考,具体内容如下
一般用在Pico、HTC、DP等VR设备中
效果:
完整代码:
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
publicclassCanvasPositionManager:MonoBehaviour
{
privatefloatradius=700f;//圆的半径
privateintnumberOfObjects;//每行排列多少个物体
privateinttheChildCount;//需要排列的物体的总个数
privatevoidAwake()
{
if(this.transform.name=="GGKFTherUIP")//这里可以忽略,是我自己的需求,根据不同场景中的物体名字决定一行排列多少个
{
numberOfObjects=5;
}
else
{
numberOfObjects=10;
}
theChildCount=this.transform.childCount;//物体总个数就是当前物体下的子物体的个数
GerCurP(this.transform);//排列
}
privatevoidStart()
{
}
///
///半圆排列
///
///
publicvoidGerCurP(Transformtrans)
{
if(theChildCount<=numberOfObjects)//如果总个数小于等于一行的个数,那只需要排列一行
{
print("个数不超过十个");
for(inti=0;i=(numberOfObjects*i)&&j=(numberOfObjects*i)&&j
调整所有对象的朝向(每个物体都挂载)
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
publicclasstestSortUI:MonoBehaviour{
privateTransformcentralPoint;//这个是圆的中心点
privatevoidStart()
{
centralPoint=GameObject.FindGameObjectWithTag("contralpoint").transform;
this.transform.forward=this.transform.position-centralPoint.up;//所有物体看向圆心
this.transform.localEulerAngles=newVector3(0,this.transform.localEulerAngles.y,this.transform.localEulerAngles.z);//微调,使得此物体看向正前方,将此行注释,可以看到明显区别
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。