Пример #1
0
        /// <summary>
        /// 指定の角度にRoleを回転移動する
        /// </summary>
        /// <param name="targetAngle"></param>
        private void ApplyAngle(Angle targetAngle)
        {
            //Roleのpositionを回転させる
            role.transform.position = OnReelPosition(targetAngle);
            //透明度を更新する
            role.ChangeOpacity(getOpacity());
            //テーブルを更新
            nowAngle = targetAngle;

            float getOpacity()
            {
                //正面の角度からの差分の絶対値を算出
                var diffOfFront = (frontAngle - targetAngle.Normalize()).Absolute();

                //表示範囲より外側は不透明度0
                if (diffOfFront > RoleDisplayAngle)
                {
                    return(0);
                }
                //内側なら外に行くたびに透明になる
                else
                {
                    return(1 - diffOfFront.TotalDegree / RoleDisplayAngle.TotalDegree);
                }
            }
        }