Example #1
0
    public virtual void SpawnModel(Player player)
    {
        //登録されたモデルのスポーン
        var lineCount = Path.LineCount;
        var spawnPos  = (Vector3)Path.GetPoint(StartPoint / lineCount);

        spawnPos.z = MarkModelSpawnZ;

        if (MarkModelName != "")
        {
            var model = Resources.Load <GameObject>(MarkModelBase + MarkModelName);
            if (model)
            {
                MarkModel = Instantiate(model, spawnPos, Quaternion.identity);
                MarkModel.transform.localScale = Vector3.one * player.GetScaleFromRatio(1 - MarkModelSpawnZ / GimmickManager.MoveZ);
            }
        }

        //タイミングとるためのリングの生成
        _ringObj = Instantiate(Resources.Load <GameObject>("Prefab/Ring"), spawnPos, Quaternion.identity);
        _ringObj.transform.localScale = new Vector3();

        var rRender = _ringObj.GetComponent <Renderer>();

        rRender.material = new Material(rRender.material);
        rRender.material.EnableKeyword("_EMISSION");
        rRender.material.SetColor("_EmissionColor", GimmickColor);
    }
Example #2
0
    public Vector2 GetPoint(float t)
    {
        // make sure t is between 0, 1 in just in case
        t = Mathf.Clamp01(t);

        //return transform.TransformPoint(Bezier2D.GetPoint(p0, p1, p2, t));
        return(Bezier2D.GetPoint(p0, p1, p2, t));
    }
Example #3
0
    /// <summary>
    /// ギミックの開始点と終了点を描画する
    /// </summary>
    private void DrawPoint()
    {
        if (!_path)
        {
            return;
        }

        var lineCount = _path.LineCount;

        Handles.color = _gimmickBase.GimmickColor;

        var start     = _path.GetPoint(_startPoint.floatValue / lineCount);
        var startSize = HandleUtility.GetHandleSize(start) * HandleSize;

        Handles.SphereHandleCap(0, start, Quaternion.identity, startSize, EventType.Repaint);

        var end     = _path.GetPoint(_endPoint.floatValue / lineCount);
        var endSize = HandleUtility.GetHandleSize(end) * HandleSize;

        Handles.SphereHandleCap(0, end, Quaternion.identity, endSize, EventType.Repaint);
    }
    private static void DrawGizmos(Bezier2D bezier, GizmoType gizmoType)
    {
        //分割数
        const int partition = 32;

        var points = bezier.Points;

        Gizmos.color = BezierColor;

        for (var i = 4; i < points.Count; i += 3)
        {
            var prevPoint = Bezier2D.GetPoint(points[i - 3], points[i - 2], points[i - 1], points[i], 0);
            for (var j = 1; j <= partition; j++)
            {
                var point = Bezier2D.GetPoint(points[i - 3], points[i - 2], points[i - 1], points[i], j / (float)partition);
                Gizmos.DrawLine(prevPoint, point);
                prevPoint = point;
            }
        }
    }