예제 #1
0
        void update_indicator(CreateDropPrimitiveButton button, FScene scene)
        {
            if (button == null || buttonTypes.ContainsKey(button) == false)
            {
                return;
            }
            SOType t = buttonTypes[button];

            if (t.hasTag(SOType.TagPrimitive) == false)
            {
                return;
            }

            scene.DefaultPrimitiveType = t;

            if (indicatorButton != null)
            {
                indicatorButton.RemoveGO(indicatorGO);
            }
            indicatorButton = button;

            indicatorGO.SetPosition(Vector3f.Zero);
            indicatorGO.SetRotation(Quaternionf.Identity);
            indicatorGO.SetLocalScale(fIndicatorSize * Vector3f.One);
            indicatorGO.SetLocalPosition(
                indicatorGO.GetLocalPosition() + fIndicatorShift * (Vector3f.AxisY - 1 * Vector3f.AxisZ + Vector3f.AxisX));

            indicatorButton.AppendNewGO(indicatorGO, indicatorButton.RootGameObject, false);
            indicatorGO.Show();
        }