public static fDiscGameObject CreateDiscGO(string sName, float fRadius, float fStartAngleDeg, float fEndAngleDeg, fMaterial material, bool bShareMaterial, bool bCollider) { GameObject go = new GameObject(sName); fMesh discMesh = PrimitiveCache.GetPrimitiveMesh(fPrimitiveType.Disc); initialize_meshgo(go, discMesh, bCollider, true); go.SetMaterial(material, bShareMaterial); fDiscGameObject discGO = new fDiscGameObject(go, new fMesh(go.GetSharedMesh()), fRadius); discGO.SetStartAngleDeg(fStartAngleDeg); discGO.SetEndAngleDeg(fEndAngleDeg); return(discGO); }
public override void Create() { base.Create(); backgroundGO = GameObjectFactory.CreateDiscGO(rootGO.GetName() + "_bg", radius, bgColor, true); MaterialUtil.DisableShadows(backgroundGO); backgroundGO.RotateD(Vector3f.AxisX, -90.0f); // make vertical AppendNewGO(backgroundGO, rootGO, false); progressGO = GameObjectFactory.CreateDiscGO(rootGO.GetName() + "_progress", radius, completedColor, true); progressGO.SetStartAngleDeg(89.0f); progressGO.SetEndAngleDeg(90.0f); MaterialUtil.DisableShadows(progressGO); progressGO.RotateD(Vector3f.AxisX, -90.0f); // make vertical progressGO.Translate(0.001f * Vector3f.AxisY, true); AppendNewGO(progressGO, rootGO, false); update_geometry(); }