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); }
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)); }
/// <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; } } }