void GetOnPlayerSpline(int splineIndex) { _curPathType = PathType.PlayerPath; SC_bezier.travelMode = BezierSolution.TravelMode.Loop; curSpline = _attackSplineTab[splineIndex]; SC_bezier.SetNewSpline(curSpline); }
public void basicSpawn(GameObject EnemyPrefab) { GameObject newEnemy = Instantiate(EnemyPrefab, this.gameObject.transform.position, Quaternion.identity); BezierSolution.BezierSpline newEnemySpline = newEnemy.GetComponent <BezierSolution.EnemyWalker2D>().spline = SplineParent.GetComponent <BezierSolution.BezierSpline>(); newEnemy.GetComponent <GameUnitObject>().speed = 5; }
void GetOnAttackSpline(int splineIndex) { _curPathType = PathType.AttackPath; curSpline = _attackSplineTab[splineIndex]; SC_bezier.travelMode = BezierSolution.TravelMode.PingPong; SC_bezier.SetNewSpline(curSpline); }
void GetOnLineSpline(int splineIndex) { _curPathType = PathType.Line; curSpline = _lineSplineTab[splineIndex]; SC_bezier.travelMode = BezierSolution.TravelMode.PingPong; SC_bezier.SetNewSpline(curSpline); curLineIndex = splineIndex; }
///////////////////////////////////////////////////////////////////////// //---------------------------------------------------------------------// //--------------------------- CHANGE SPLINE ---------------------------// //---------------------------------------------------------------------// #region Change Spline /*Quand les conditions sont remplis, change la spline que suis le Main guide du Flock * - Nouveau Path type défini * - Enregistrement de la spline actuel * - Changement du Type de comportement sur la spline * - Transfert l'information de la nouvelle spline au BezierWalker (gère les déplacements sur la spline) * - Actualise l'index du type de spline actuel */ void GetOnCircleSpline(int splineIndex) { _curPathType = PathType.Circle; curSpline = _circleSplineTab[splineIndex]; SC_bezier.travelMode = BezierSolution.TravelMode.Loop; SC_bezier.SetNewSpline(curSpline); curCircleIndex = splineIndex; }
// Start is called before the first frame update public BezierSolution.BezierSpline[] GetBezierSplines() { BezierSolution.BezierSpline[] spawnSplines = new BezierSolution.BezierSpline[gameObject.transform.childCount]; for (int i = 0; i < gameObject.transform.childCount; i++) { spawnSplines[i] = gameObject.transform.GetChild(i).GetComponent <BezierSolution.BezierSpline>(); } return(spawnSplines); }
public void StartNewBehavior(int behaviorIndex) { transform.rotation = flockInitialRot; StopAllCoroutines(); curSettingsIndex = 0; _curSpline = _splineTab[behaviorIndex]; bezierWalkerSpeed.SetNewSpline(_curSpline); StartCoroutine(SwitchSettings(_BoidSettings[behaviorIndex])); }
/// <summary> /// Initialisation du Flock /// </summary> public void InitializeFlock(FlockSettings newFlockSettings, BezierSolution.BezierSpline spawnSpline, Vector3Int sensitivity) { flockSettings = newFlockSettings; flockInitialRot = transform.rotation; inAttack = false; isSpawning = true; _Player = GameObject.FindGameObjectWithTag("Player"); transform.position = spawnSpline.GetPoint(0); bezierWalkerTime.SetNewSpline(spawnSpline); bezierWalkerTime.NormalizedT = 0; bezierWalkerTime.travelTime = flockSettings.spawnTimer; _mainGuide = gameObject.transform; //Main guide prends la valeur de this (CF : Variable _mainGuide) _GuideList = new List <Transform>(); //Instanciation de la guide list _curCurveDistanceList = new List <Vector3>(); // Instanciation de la list de distance sur les courbes pour chaque guide _BoidSettings = new BoidSettings[6][]; spawnSettings = flockSettings.spawnSettings; roamSettings = flockSettings.roamSettings; attackSettings = flockSettings.attackSettings; destructionSettings = flockSettings.destructionSettings; getAwaySettings = flockSettings.getAwaySettings; hitReactionSettings = flockSettings.hitReactionSettings; _BoidSettings[0] = spawnSettings; _BoidSettings[1] = roamSettings; _BoidSettings[2] = attackSettings; _BoidSettings[3] = destructionSettings; _BoidSettings[4] = getAwaySettings; _BoidSettings[5] = hitReactionSettings; _KoaManager = Instantiate(_KoaPrefab, transform); //Instantiate Koa _SCKoaManager = _KoaManager.GetComponent <SC_KoaManager>(); //Récupère le Koa manager du koa instancié _SCKoaManager.Initialize(_mainGuide, flockSettings.boidSpawn, spawnSettings[0], newFlockSettings, sensitivity); //Initialise le Koa | paramètre : Guide a suivre <> Nombre de Boids a spawn <> Comportement des boids voulu flockWeaponManager.Initialize(flockSettings, KoaMainAnimator, KoaEmissiveAnimator); _splineTab = new BezierSolution.BezierSpline[flockSettings.splines.Length]; for (int i = 0; i < flockSettings.splines.Length; i++) { if (flockSettings.splines[i] != null) { _splineTab[i] = Instantiate(flockSettings.splines[i]); } } Invoke("ActivateFlock", flockSettings.spawnTimer); }
/// <summary> /// Initialisation du Flock /// </summary> public void InitializeFlock() { flockSettings = flockDisplay; flockInitialRot = transform.rotation; inAttack = false; _mainGuide = gameObject.transform; //Main guide prends la valeur de this (CF : Variable _mainGuide) _GuideList = new List <Transform>(); //Instanciation de la guide list _curCurveDistanceList = new List <Vector3>(); // Instanciation de la list de distance sur les courbes pour chaque guide _BoidSettings = new BoidSettings[5][]; spawnSettings = flockSettings.spawnSettings; roamSettings = flockSettings.roamSettings; attackSettings = flockSettings.attackSettings; destructionSettings = flockSettings.destructionSettings; reactionSettings = flockSettings.getAwaySettings; _BoidSettings[0] = spawnSettings; _BoidSettings[1] = roamSettings; _BoidSettings[2] = attackSettings; _BoidSettings[3] = destructionSettings; _BoidSettings[4] = reactionSettings; _KoaManager = Instantiate(_KoaPrefab, transform); //Instantiate Koa _SCKoaManager = _KoaManager.GetComponent <SC_KoaManagerDisplay>(); //Récupère le Koa manager du koa instancié _SCKoaManager.Initialize(_mainGuide, flockSettings.boidSpawn, spawnSettings[0], flockSettings); //Initialise le Koa | paramètre : Guide a suivre <> Nombre de Boids a spawn <> Comportement des boids voulu _splineTab = new BezierSolution.BezierSpline[_BoidSettings.Length]; for (int i = 0; i < flockSettings.splines.Length; i++) { if (flockSettings.splines[i] != null) { _splineTab[i] = Instantiate(flockSettings.splines[i]); } } _curSpline = splineLine; bezierWalkerSpeed.SetNewSpline(_curSpline); ActivateFlock(); isActive = true; }
public static void DrawSplineInspectorGUI(BezierSpline spline) { if (spline.Count < 2) { if (GUILayout.Button("Initialize Spline")) { spline.Reset(); } return; } Color c = GUI.color; EditorGUI.BeginChangeCheck(); bool loop = EditorGUILayout.Toggle("Loop", spline.loop); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Loop"); spline.loop = loop; SceneView.RepaintAll(); } EditorGUI.BeginChangeCheck(); bool drawGizmos = EditorGUILayout.Toggle("Draw Runtime Gizmos", spline.drawGizmos); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Draw Gizmos"); spline.drawGizmos = drawGizmos; SceneView.RepaintAll(); } EditorGUILayout.Space(); GUI.color = AUTO_CONSTRUCT_SPLINE_BUTTON_COLOR; if (GUILayout.Button("Construct Linear Path")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Construct Linear Path"); } spline.ConstructLinearPath(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline (method #2)")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline2(); SceneView.RepaintAll(); } if (GUILayout.Button("Create Spline")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.createSpline(); SceneView.RepaintAll(); } //TrackBuilder trackBuilderScript = (TrackBuilder)target; if (GUILayout.Button("Generate Track")) { //trackBuilderScript.BuildTrack(); } GUI.color = c; }
public void SetNewSpline(BezierSpline newSpline) { //Actualisation de la spline a suivre curSpline = newSpline; NormalizedT = 0; }
public float GetNormalizedT(float localT) { BezierSpline spline = point1.GetComponentInParent <BezierSpline>(); return((index1 + localT) / (spline.loop ? spline.Count : (spline.Count - 1))); }
static Vector3 GetInfluencePos(float t, Vector3 pos, BezierSpline spline, float dir) { var normal = spline.GetNormal(t) * dir; return(pos + normal.normalized * spline.influenceWidth.Evaluate(t) * spline.baseWidth); }
public static void DrawSplineInspectorGUI(BezierSpline spline) { EditorGUI.BeginChangeCheck(); var curve = EditorGUILayout.CurveField("Influence Width", spline.influenceWidth); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Edit Spline"); spline.influenceWidth = curve; } EditorGUI.BeginChangeCheck(); var width = EditorGUILayout.FloatField("Base Width", spline.baseWidth); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Edit Spline"); spline.baseWidth = width; } if (spline.Count < 2) { if (GUILayout.Button("Initialize Spline")) { spline.Reset(); } return; } Color c = GUI.color; EditorGUI.BeginChangeCheck(); bool loop = EditorGUILayout.Toggle("Loop", spline.loop); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Loop"); spline.loop = loop; SceneView.RepaintAll(); } EditorGUI.BeginChangeCheck(); bool drawGizmos = EditorGUILayout.Toggle("Draw Runtime Gizmos", spline.drawGizmos); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Draw Gizmos"); spline.drawGizmos = drawGizmos; SceneView.RepaintAll(); } EditorGUILayout.Space(); GUI.color = AUTO_CONSTRUCT_SPLINE_BUTTON_COLOR; if (GUILayout.Button("Construct Linear Path")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Construct Linear Path"); } spline.ConstructLinearPath(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline (method #2)")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline2(); SceneView.RepaintAll(); } GUI.color = c; }
public void OnStopPath() { curSpline = null; SC_bezier.SetNewSpline(null); }
public float GetNormalizedT(float localT) { BezierSpline spline = point1.spline; return((point1.index + localT) / (spline.m_loop ? spline.Count : (spline.Count - 1))); }
public EvenlySpacedPointsHolder(BezierSpline spline, float splineLength, float[] uniformNormalizedTs) { this.spline = spline; this.splineLength = splineLength; this.uniformNormalizedTs = uniformNormalizedTs; }
public static void DrawSplineInspectorGUI(BezierSpline spline) { spline.targetPlayerId = EditorGUILayout.IntField("Target Player ID", spline.targetPlayerId); if (spline.targetPlayerId < 0) { EditorGUILayout.HelpBox("Please set target player id", MessageType.Warning); } if (spline.Count < 2) { if (GUILayout.Button("Initialize Spline")) { spline.Reset(); } return; } Color c = GUI.color; EditorGUI.BeginChangeCheck(); bool loop = EditorGUILayout.Toggle("Loop", spline.loop); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Loop"); spline.loop = loop; SceneView.RepaintAll(); } EditorGUI.BeginChangeCheck(); bool drawGizmos = EditorGUILayout.Toggle("Draw Runtime Gizmos", spline.drawGizmos); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(spline, "Toggle Draw Gizmos"); spline.drawGizmos = drawGizmos; SceneView.RepaintAll(); } EditorGUILayout.Space(); GUI.color = AUTO_CONSTRUCT_SPLINE_BUTTON_COLOR; if (GUILayout.Button("Construct Linear Path")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Construct Linear Path"); } spline.ConstructLinearPath(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline(); SceneView.RepaintAll(); } if (GUILayout.Button("Auto Construct Spline (method #2)")) { for (int i = 0; i < spline.Count; i++) { Undo.RecordObject(spline[i], "Auto Construct Spline"); } spline.AutoConstructSpline2(); SceneView.RepaintAll(); } GUI.color = c; }