(Created page with "The following custom Action allows you to have a character move randomly within a circle, given the circle's centre position and minimum/maximum radius to move within. To us...") |
(Bugfix) Tag: Visual edit |
||
Line 2: | Line 2: | ||
ActionCharMoveRandom.cs: |
ActionCharMoveRandom.cs: |
||
+ | using UnityEngine;<br> |
||
− | <span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> UnityEngine</span><span style="color:#d3d7ce;">;</span> |
||
+ | using System.Collections;<br> |
||
− | <span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> System</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Collections</span><span style="color:#d3d7ce;">;</span> |
||
+ | using System.Collections.Generic;<br> |
||
− | <span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> System</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Collections</span><span style="color:#d3d7ce;">.</span><span style="color:#d3d7ce;">Generic</span><span style="color:#d3d7ce;">;</span> |
||
+ | <br> |
||
+ | #if UNITY_EDITOR<br> |
||
+ | using UnityEditor;<br> |
||
+ | #endif<br> |
||
+ | <br> |
||
+ | namespace AC<br> |
||
+ | {<br> |
||
+ | <br> |
||
+ | [System.Serializable]<br> |
||
+ | public class ActionCharMoveRandom : Action<br> |
||
+ | {<br> |
||
+ | <br> |
||
+ | public Marker centerMarker;<br> |
||
+ | public int centerMarkerConstantID = 0;<br> |
||
+ | public int centerMarkerParameterID = -1;<br> |
||
+ | <br> |
||
+ | public float minRadius = 0f;<br> |
||
+ | public int minRadiusParameterID = -1;<br> |
||
+ | <br> |
||
+ | public float maxRadius = 10f;<br> |
||
+ | public int maxRadiusParameterID = -1;<br> |
||
+ | <br> |
||
+ | public Char charToMove;<br> |
||
+ | public int charToMoveID = 0;<br> |
||
+ | public int charToMoveParameterID = -1;<br> |
||
+ | <br> |
||
+ | public bool isPlayer;<br> |
||
+ | public PathSpeed speed;<br> |
||
+ | public bool pathFind = true;<br> |
||
+ | public bool doFloat = false;<br> |
||
+ | <br> |
||
+ | <br> |
||
+ | public ActionCharMoveRandom ()<br> |
||
+ | {<br> |
||
+ | this.isDisplayed = true;<br> |
||
+ | category = ActionCategory.Character;<br> |
||
+ | title = "Move randomly";<br> |
||
+ | description = "Moves a random point within a circle, given a centre-point and a maximum radius.";<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | <br> |
||
+ | public override void AssignValues (List<ActionParameter> parameters)<br> |
||
+ | {<br> |
||
+ | centerMarker = AssignFile <Marker> (parameters, centerMarkerParameterID, centerMarkerConstantID, centerMarker);<br> |
||
+ | minRadius = AssignFloat (parameters, minRadiusParameterID, minRadius);<br> |
||
+ | maxRadius = AssignFloat (parameters, maxRadiusParameterID, maxRadius);<br> |
||
+ | minRadius = Mathf.Clamp (minRadius, 0f, maxRadius);<br> |
||
+ | <br> |
||
+ | charToMove = AssignFile <Char> (parameters, charToMoveParameterID, charToMoveID, charToMove);<br> |
||
+ | if (isPlayer)<br> |
||
+ | {<br> |
||
+ | charToMove = KickStarter.player;<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | |||
+ | <br> |
||
+ | |||
+ | <br> |
||
+ | override public float Run ()<br> |
||
+ | {<br> |
||
+ | if (!isRunning)<br> |
||
+ | {<br> |
||
+ | if (charToMove)<br> |
||
+ | {<br> |
||
+ | Paths path = charToMove.GetComponent <Paths>();<br> |
||
+ | if (path == null)<br> |
||
+ | {<br> |
||
+ | ACDebug.LogWarning ("Cannot move a character with no Paths component");<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | if (charToMove is NPC)<br> |
||
+ | {<br> |
||
+ | NPC npcToMove = (NPC) charToMove;<br> |
||
+ | npcToMove.StopFollowing ();<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | path.pathType = AC_PathType.ForwardOnly;<br> |
||
+ | path.pathSpeed = speed;<br> |
||
+ | path.affectY = true;<br> |
||
+ | <br> |
||
+ | Vector3[] pointArray;<br> |
||
+ | Vector3 targetPosition = GetRandomPoint ();<br> |
||
+ | <br> |
||
+ | if (SceneSettings.ActInScreenSpace ())<br> |
||
+ | {<br> |
||
+ | targetPosition = AdvGame.GetScreenNavMesh (targetPosition);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | float distance = Vector3.Distance (targetPosition, charToMove.transform.position);<br> |
||
+ | if (distance <= KickStarter.settingsManager.destinationAccuracy)<br> |
||
+ | {<br> |
||
+ | isRunning = false;<br> |
||
+ | return 0f;<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | if (pathFind && KickStarter.navigationManager)<br> |
||
+ | {<br> |
||
+ | pointArray = KickStarter.navigationManager.navigationEngine.GetPointsArray (charToMove.transform.position, targetPosition, charToMove);<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | List<Vector3> pointList = new List<Vector3>();<br> |
||
+ | pointList.Add (targetPosition);<br> |
||
+ | pointArray = pointList.ToArray ();<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | if (speed == PathSpeed.Walk)<br> |
||
+ | {<br> |
||
+ | charToMove.MoveAlongPoints (pointArray, false, pathFind);<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | charToMove.MoveAlongPoints (pointArray, true, pathFind);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | if (charToMove.GetPath ())<br> |
||
+ | {<br> |
||
+ | if (!pathFind && doFloat)<br> |
||
+ | {<br> |
||
+ | charToMove.GetPath ().affectY = true;<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | charToMove.GetPath ().affectY = false;<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | if (willWait)<br> |
||
+ | {<br> |
||
+ | isRunning = true;<br> |
||
+ | return defaultPauseTime;<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | return 0f;<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | if (charToMove.GetPath () == null)<br> |
||
+ | {<br> |
||
+ | isRunning = false;<br> |
||
+ | return 0f;<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | return defaultPauseTime;<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | <br> |
||
+ | override public void Skip ()<br> |
||
+ | {<br> |
||
+ | if (charToMove)<br> |
||
+ | {<br> |
||
+ | charToMove.EndPath ();<br> |
||
+ | <br> |
||
+ | if (charToMove is NPC)<br> |
||
+ | {<br> |
||
+ | NPC npcToMove = (NPC) charToMove;<br> |
||
+ | npcToMove.StopFollowing ();<br> |
||
+ | }<br> |
||
+ | |||
+ | <br> |
||
+ | Vector3[] pointArray;<br> |
||
+ | Vector3 targetPosition = GetRandomPoint ();<br> |
||
+ | |||
+ | <br> |
||
+ | if (SceneSettings.ActInScreenSpace ())<br> |
||
+ | {<br> |
||
+ | targetPosition = AdvGame.GetScreenNavMesh (targetPosition);<br> |
||
+ | }<br> |
||
+ | |||
+ | <br> |
||
+ | if (pathFind && KickStarter.navigationManager)<br> |
||
+ | {<br> |
||
+ | pointArray = KickStarter.navigationManager.navigationEngine.GetPointsArray (charToMove.transform.position, targetPosition);<br> |
||
+ | KickStarter.navigationManager.navigationEngine.ResetHoles (KickStarter.sceneSettings.navMesh);<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | List<Vector3> pointList = new List<Vector3>();<br> |
||
+ | pointList.Add (targetPosition);<br> |
||
+ | pointArray = pointList.ToArray ();<br> |
||
+ | }<br> |
||
+ | |||
+ | <br> |
||
+ | int i = pointArray.Length-1;<br> |
||
+ | <br> |
||
+ | if (i>0)<br> |
||
+ | {<br> |
||
+ | charToMove.SetLookDirection (pointArray[i] - pointArray[i-1], true);<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | charToMove.SetLookDirection (pointArray[i] - charToMove.transform.position, true);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | charToMove.Teleport (pointArray [i]);<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | <br> |
||
+ | public Vector3 GetRandomPoint ()<br> |
||
+ | {<br> |
||
+ | float radius = Random.Range (minRadius, maxRadius);<br> |
||
+ | Vector2 randomInCircle2D = (Vector3) Random.insideUnitCircle * radius;<br> |
||
+ | <br> |
||
+ | if (SceneSettings.IsUnity2D ())<br> |
||
+ | {<br> |
||
+ | return centerMarker.transform.position + new Vector3 (randomInCircle2D.x, randomInCircle2D.y, 0f);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | return centerMarker.transform.position + new Vector3 (randomInCircle2D.x, 0f, randomInCircle2D.y);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | |||
+ | <br> |
||
+ | #if UNITY_EDITOR<br> |
||
+ | <br> |
||
+ | override public void ShowGUI (List<ActionParameter> parameters)<br> |
||
+ | {<br> |
||
+ | isPlayer = EditorGUILayout.Toggle ("Is Player?", isPlayer);<br> |
||
+ | <br> |
||
+ | if (!isPlayer)<br> |
||
+ | {<br> |
||
+ | charToMoveParameterID = Action.ChooseParameterGUI ("Character to move:", parameters, charToMoveParameterID, ParameterType.GameObject);<br> |
||
+ | if (charToMoveParameterID >= 0)<br> |
||
+ | {<br> |
||
+ | charToMoveID = 0;<br> |
||
+ | charToMove = null;<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | charToMove = (Char) EditorGUILayout.ObjectField ("Character to move:", charToMove, typeof (Char), true);<br> |
||
+ | |||
+ | <br> |
||
+ | charToMoveID = FieldToID <Char> (charToMove, charToMoveID);<br> |
||
+ | charToMove = IDToField <Char> (charToMove, charToMoveID, false);<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | centerMarkerParameterID = Action.ChooseParameterGUI ("Marker to reach:", parameters, centerMarkerParameterID, ParameterType.GameObject);<br> |
||
+ | if (centerMarkerParameterID >= 0)<br> |
||
+ | {<br> |
||
+ | centerMarkerConstantID = 0;<br> |
||
+ | centerMarker = null;<br> |
||
+ | }<br> |
||
+ | else<br> |
||
+ | {<br> |
||
+ | centerMarker = (Marker) EditorGUILayout.ObjectField ("Centre-point:", centerMarker, typeof (Marker), true);<br> |
||
+ | |||
+ | <br> |
||
+ | centerMarkerConstantID = FieldToID <Marker> (centerMarker, centerMarkerConstantID);<br> |
||
+ | centerMarker = IDToField <Marker> (centerMarker, centerMarkerConstantID, false);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | minRadiusParameterID = Action.ChooseParameterGUI ("Minimum radius:", parameters, minRadiusParameterID, ParameterType.Float);<br> |
||
+ | if (minRadiusParameterID < 0)<br> |
||
+ | {<br> |
||
+ | minRadius = EditorGUILayout.FloatField ("Minimum radius:", minRadius);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | maxRadiusParameterID = Action.ChooseParameterGUI ("Maximum radius:", parameters, maxRadiusParameterID, ParameterType.Float);<br> |
||
+ | if (maxRadiusParameterID < 0)<br> |
||
+ | {<br> |
||
+ | maxRadius = EditorGUILayout.FloatField ("Maximum radius:", maxRadius);<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | speed = (PathSpeed) EditorGUILayout.EnumPopup ("Move speed:" , speed);<br> |
||
+ | pathFind = EditorGUILayout.Toggle ("Pathfind?", pathFind);<br> |
||
+ | if (!pathFind)<br> |
||
+ | {<br> |
||
+ | doFloat = EditorGUILayout.Toggle ("Ignore gravity?", doFloat);<br> |
||
+ | }<br> |
||
+ | willWait = EditorGUILayout.Toggle ("Wait until finish?", willWait);<br> |
||
+ | <br> |
||
+ | AfterRunningOption ();<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | <br> |
||
+ | override public void AssignConstantIDs (bool saveScriptsToo)<br> |
||
+ | {<br> |
||
+ | if (saveScriptsToo)<br> |
||
+ | {<br> |
||
+ | if (!isPlayer && charToMove != null && charToMove.GetComponent <NPC>())<br> |
||
+ | {<br> |
||
+ | AddSaveScript <RememberNPC> (charToMove);<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | if (!isPlayer)<br> |
||
+ | {<br> |
||
+ | AssignConstantID <Char> (charToMove, charToMoveID, charToMoveParameterID);<br> |
||
+ | }<br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | #endif<br> |
||
+ | |||
+ | <br> |
||
+ | }<br> |
||
+ | <br> |
||
+ | } |
||
+ | |||
− | <span style="font-style:italic;color:#719ecf;">#if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">UNITY_EDITOR</span> |
||
− | <span style="font-weight:700;color:#ad7fa7;">using</span><span style="color:#d3d7ce;"> UnityEditor</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="font-style:italic;color:#719ecf;">#endif</span> |
||
− | |||
− | <span style="font-weight:700;color:#ad7fa7;">namespace</span><span style="color:#d3d7ce;"> AC</span> |
||
− | <span style="color:#d3d7ce;">{</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">System</span><span style="color:#d3d7ce;">.</span><span style="color:#8ae233;">Serializable</span><span style="color:#d3d7ce;">]</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">class</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ActionCharMoveRandom</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">:</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Action</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">10f</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">PathSpeed</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">speed</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">doFloat</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ActionCharMoveRandom</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">this</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">isDisplayed</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">category</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ActionCategory</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Character</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">title</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">"</span><span style="color:#edd400;">Move</span><span style="color:#edd400;"> </span><span style="color:#edd400;">randomly</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">description</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">"</span><span style="color:#edd400;">Moves</span><span style="color:#edd400;"> </span><span style="color:#edd400;">a</span><span style="color:#edd400;"> </span><span style="color:#edd400;">random</span><span style="color:#edd400;"> </span><span style="color:#edd400;">point</span><span style="color:#edd400;"> </span><span style="color:#edd400;">within</span><span style="color:#edd400;"> </span><span style="color:#edd400;">a</span><span style="color:#edd400;"> </span><span style="color:#edd400;">circle</span><span style="color:#edd400;">,</span><span style="color:#edd400;"> </span><span style="color:#edd400;">given</span><span style="color:#edd400;"> </span><span style="color:#edd400;">a</span><span style="color:#edd400;"> </span><span style="color:#edd400;">centre</span><span style="color:#edd400;">-</span><span style="color:#edd400;">point</span><span style="color:#edd400;"> </span><span style="color:#edd400;">and</span><span style="color:#edd400;"> </span><span style="color:#edd400;">a</span><span style="color:#edd400;"> </span><span style="color:#edd400;">maximum</span><span style="color:#edd400;"> </span><span style="color:#edd400;">radius</span><span style="color:#edd400;">.</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">override</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignValues</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">ActionParameter</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignFile</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignFloat</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadiusParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignFloat</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadiusParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Mathf</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Clamp</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignFile</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">player</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">override</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">Run</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">isRunning</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isRunning</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Paths</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">path</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetComponent</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Paths</span><span style="color:#d3d7ce;">>()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">path</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">null</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ACDebug</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">LogWarning</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Cannot</span><span style="color:#edd400;"> </span><span style="color:#edd400;">move</span><span style="color:#edd400;"> </span><span style="color:#edd400;">a</span><span style="color:#edd400;"> </span><span style="color:#edd400;">character</span><span style="color:#edd400;"> </span><span style="color:#edd400;">with</span><span style="color:#edd400;"> </span><span style="color:#edd400;">no</span><span style="color:#edd400;"> </span><span style="color:#edd400;">Paths</span><span style="color:#edd400;"> </span><span style="color:#edd400;">component</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">is</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">npcToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">npcToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">StopFollowing</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">path</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">pathType</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">AC_PathType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ForwardOnly</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">path</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">pathSpeed</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">speed</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">path</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">affectY</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">[]</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">GetRandomPoint</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">SceneSettings</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ActInScreenSpace</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">())</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">AdvGame</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetScreenNavMesh</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">distance</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Distance</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">distance</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">settingsManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">destinationAccuracy</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isRunning</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationManager</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationEngine</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPointsArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">new</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">>()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Add</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ToArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">speed</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">PathSpeed</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Walk</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">MoveAlongPoints</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">MoveAlongPoints</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPath</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">())</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">doFloat</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPath</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">affectY</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPath</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">affectY</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">willWait</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">defaultPauseTime</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPath</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">==</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">null</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isRunning</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">defaultPauseTime</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">override</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">Skip</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">EndPath</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">is</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">npcToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">npcToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">StopFollowing</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">[]</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">GetRandomPoint</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">SceneSettings</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ActInScreenSpace</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">())</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">AdvGame</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetScreenNavMesh</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationManager</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationEngine</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetPointsArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationManager</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navigationEngine</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ResetHoles</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">KickStarter</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">sceneSettings</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">navMesh</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">new</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">>()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Add</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">targetPosition</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointList</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ToArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">int</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Length</span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;">></span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">SetLookDirection</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;">-</span><span style="color:#edd400;">1</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">SetLookDirection</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;">]</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">-</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Teleport</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">pointArray</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">[</span><span style="color:#d3d7ce;">i</span><span style="color:#d3d7ce;">])</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">GetRandomPoint</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">float</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">radius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Random</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Range</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector2</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">randomInCircle2D</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Random</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">insideUnitCircle</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">*</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">radius</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">SceneSettings</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">IsUnity2D</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">())</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">+</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">new</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">randomInCircle2D</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">x</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">randomInCircle2D</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">y</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">return</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">transform</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">position</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">+</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">new</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Vector3</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">randomInCircle2D</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">x</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0f</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">randomInCircle2D</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">y</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#719ecf;">#if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">UNITY_EDITOR</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">override</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">ShowGUI</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">List</span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">ActionParameter</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Toggle</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Is</span><span style="color:#edd400;"> </span><span style="color:#edd400;">Player</span><span style="color:#edd400;">?</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Action</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ChooseParameterGUI</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Character</span><span style="color:#edd400;"> </span><span style="color:#edd400;">to</span><span style="color:#edd400;"> </span><span style="color:#edd400;">move</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ParameterType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GameObject</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">null</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ObjectField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Character</span><span style="color:#edd400;"> </span><span style="color:#edd400;">to</span><span style="color:#edd400;"> </span><span style="color:#edd400;">move</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">typeof</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">FieldToID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">IDToField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Action</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ChooseParameterGUI</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Marker</span><span style="color:#edd400;"> </span><span style="color:#edd400;">to</span><span style="color:#edd400;"> </span><span style="color:#edd400;">reach</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ParameterType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GameObject</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">centerMarkerParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">null</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">else</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ObjectField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Centre</span><span style="color:#edd400;">-</span><span style="color:#edd400;">point</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">typeof</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">true</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">FieldToID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">IDToField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Marker</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">centerMarker</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">centerMarkerConstantID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">false</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Action</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ChooseParameterGUI</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Minimum</span><span style="color:#edd400;"> </span><span style="color:#edd400;">radius</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadiusParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ParameterType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">minRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Minimum</span><span style="color:#edd400;"> </span><span style="color:#edd400;">radius</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">minRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">Action</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">ChooseParameterGUI</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Maximum</span><span style="color:#edd400;"> </span><span style="color:#edd400;">radius</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">parameters</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadiusParameterID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">ParameterType</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Float</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">maxRadiusParameterID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#d3d7ce;"> </span><span style="color:#edd400;">0</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">FloatField</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Maximum</span><span style="color:#edd400;"> </span><span style="color:#edd400;">radius</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">maxRadius</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">speed</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#8ae233;">PathSpeed</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">EnumPopup</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Move</span><span style="color:#edd400;"> </span><span style="color:#edd400;">speed</span><span style="color:#edd400;">:</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">speed</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Toggle</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Pathfind</span><span style="color:#edd400;">?</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">pathFind</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">doFloat</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Toggle</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Ignore</span><span style="color:#edd400;"> </span><span style="color:#edd400;">gravity</span><span style="color:#edd400;">?</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">doFloat</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">willWait</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="color:#8ae233;">EditorGUILayout</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">Toggle</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#edd400;">"</span><span style="color:#edd400;">Wait</span><span style="color:#edd400;"> </span><span style="color:#edd400;">until</span><span style="color:#edd400;"> </span><span style="color:#edd400;">finish</span><span style="color:#edd400;">?</span><span style="color:#edd400;">"</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">willWait</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AfterRunningOption</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">()</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">override</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">public</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ad7fa7;">void</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignConstantIDs</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-weight:700;color:#ad7fa7;">bool</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">saveScriptsToo</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">saveScriptsToo</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;"> !</span><span style="color:#d3d7ce;">=</span><span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ce5c00;">null</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">&&</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">.</span><span style="font-style:italic;color:#d3d7ce;">GetComponent</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">NPC</span><span style="color:#d3d7ce;">>())</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AddSaveScript</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">RememberNPC</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-weight:700;color:#ffffff;">if</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="color:#d3d7ce;">!</span><span style="font-style:italic;color:#d3d7ce;">isPlayer</span><span style="color:#d3d7ce;">)</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">{</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">AssignConstantID</span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;"><</span><span style="color:#8ae233;">Char</span><span style="color:#d3d7ce;">></span><span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">(</span><span style="font-style:italic;color:#d3d7ce;">charToMove</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveID</span><span style="color:#d3d7ce;">,</span><span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#d3d7ce;">charToMoveParameterID</span><span style="color:#d3d7ce;">)</span><span style="color:#d3d7ce;">;</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;"> </span><span style="font-style:italic;color:#719ecf;">#endif</span> |
||
− | <span style="color:#d3d7ce;"> </span> |
||
− | <span style="color:#d3d7ce;"> </span><span style="color:#d3d7ce;">}</span> |
||
− | |||
− | <span style="color:#d3d7ce;">}</span> |
||
[[Category:General]] |
[[Category:General]] |
Revision as of 01:41, 18 April 2018
The following custom Action allows you to have a character move randomly within a circle, given the circle's centre position and minimum/maximum radius to move within. To use it, create a new C# file named ActionCharMoveRandom.cs and follow the instructions in the "Custom Actions" chapter of the Manual.
ActionCharMoveRandom.cs:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace AC
{
[System.Serializable]
public class ActionCharMoveRandom : Action
{
public Marker centerMarker;
public int centerMarkerConstantID = 0;
public int centerMarkerParameterID = -1;
public float minRadius = 0f;
public int minRadiusParameterID = -1;
public float maxRadius = 10f;
public int maxRadiusParameterID = -1;
public Char charToMove;
public int charToMoveID = 0;
public int charToMoveParameterID = -1;
public bool isPlayer;
public PathSpeed speed;
public bool pathFind = true;
public bool doFloat = false;
public ActionCharMoveRandom ()
{
this.isDisplayed = true;
category = ActionCategory.Character;
title = "Move randomly";
description = "Moves a random point within a circle, given a centre-point and a maximum radius.";
}
public override void AssignValues (List<ActionParameter> parameters)
{
centerMarker = AssignFile <Marker> (parameters, centerMarkerParameterID, centerMarkerConstantID, centerMarker);
minRadius = AssignFloat (parameters, minRadiusParameterID, minRadius);
maxRadius = AssignFloat (parameters, maxRadiusParameterID, maxRadius);
minRadius = Mathf.Clamp (minRadius, 0f, maxRadius);
charToMove = AssignFile <Char> (parameters, charToMoveParameterID, charToMoveID, charToMove);
if (isPlayer)
{
charToMove = KickStarter.player;
}
}
override public float Run ()
{
if (!isRunning)
{
if (charToMove)
{
Paths path = charToMove.GetComponent <Paths>();
if (path == null)
{
ACDebug.LogWarning ("Cannot move a character with no Paths component");
}
else
{
if (charToMove is NPC)
{
NPC npcToMove = (NPC) charToMove;
npcToMove.StopFollowing ();
}
path.pathType = AC_PathType.ForwardOnly;
path.pathSpeed = speed;
path.affectY = true;
Vector3[] pointArray;
Vector3 targetPosition = GetRandomPoint ();
if (SceneSettings.ActInScreenSpace ())
{
targetPosition = AdvGame.GetScreenNavMesh (targetPosition);
}
float distance = Vector3.Distance (targetPosition, charToMove.transform.position);
if (distance <= KickStarter.settingsManager.destinationAccuracy)
{
isRunning = false;
return 0f;
}
if (pathFind && KickStarter.navigationManager)
{
pointArray = KickStarter.navigationManager.navigationEngine.GetPointsArray (charToMove.transform.position, targetPosition, charToMove);
}
else
{
List<Vector3> pointList = new List<Vector3>();
pointList.Add (targetPosition);
pointArray = pointList.ToArray ();
}
if (speed == PathSpeed.Walk)
{
charToMove.MoveAlongPoints (pointArray, false, pathFind);
}
else
{
charToMove.MoveAlongPoints (pointArray, true, pathFind);
}
if (charToMove.GetPath ())
{
if (!pathFind && doFloat)
{
charToMove.GetPath ().affectY = true;
}
else
{
charToMove.GetPath ().affectY = false;
}
}
if (willWait)
{
isRunning = true;
return defaultPauseTime;
}
}
}
return 0f;
}
else
{
if (charToMove.GetPath () == null)
{
isRunning = false;
return 0f;
}
else
{
return defaultPauseTime;
}
}
}
override public void Skip ()
{
if (charToMove)
{
charToMove.EndPath ();
if (charToMove is NPC)
{
NPC npcToMove = (NPC) charToMove;
npcToMove.StopFollowing ();
}
Vector3[] pointArray;
Vector3 targetPosition = GetRandomPoint ();
if (SceneSettings.ActInScreenSpace ())
{
targetPosition = AdvGame.GetScreenNavMesh (targetPosition);
}
if (pathFind && KickStarter.navigationManager)
{
pointArray = KickStarter.navigationManager.navigationEngine.GetPointsArray (charToMove.transform.position, targetPosition);
KickStarter.navigationManager.navigationEngine.ResetHoles (KickStarter.sceneSettings.navMesh);
}
else
{
List<Vector3> pointList = new List<Vector3>();
pointList.Add (targetPosition);
pointArray = pointList.ToArray ();
}
int i = pointArray.Length-1;
if (i>0)
{
charToMove.SetLookDirection (pointArray[i] - pointArray[i-1], true);
}
else
{
charToMove.SetLookDirection (pointArray[i] - charToMove.transform.position, true);
}
charToMove.Teleport (pointArray [i]);
}
}
public Vector3 GetRandomPoint ()
{
float radius = Random.Range (minRadius, maxRadius);
Vector2 randomInCircle2D = (Vector3) Random.insideUnitCircle * radius;
if (SceneSettings.IsUnity2D ())
{
return centerMarker.transform.position + new Vector3 (randomInCircle2D.x, randomInCircle2D.y, 0f);
}
return centerMarker.transform.position + new Vector3 (randomInCircle2D.x, 0f, randomInCircle2D.y);
}
#if UNITY_EDITOR
override public void ShowGUI (List<ActionParameter> parameters)
{
isPlayer = EditorGUILayout.Toggle ("Is Player?", isPlayer);
if (!isPlayer)
{
charToMoveParameterID = Action.ChooseParameterGUI ("Character to move:", parameters, charToMoveParameterID, ParameterType.GameObject);
if (charToMoveParameterID >= 0)
{
charToMoveID = 0;
charToMove = null;
}
else
{
charToMove = (Char) EditorGUILayout.ObjectField ("Character to move:", charToMove, typeof (Char), true);
charToMoveID = FieldToID <Char> (charToMove, charToMoveID);
charToMove = IDToField <Char> (charToMove, charToMoveID, false);
}
}
centerMarkerParameterID = Action.ChooseParameterGUI ("Marker to reach:", parameters, centerMarkerParameterID, ParameterType.GameObject);
if (centerMarkerParameterID >= 0)
{
centerMarkerConstantID = 0;
centerMarker = null;
}
else
{
centerMarker = (Marker) EditorGUILayout.ObjectField ("Centre-point:", centerMarker, typeof (Marker), true);
centerMarkerConstantID = FieldToID <Marker> (centerMarker, centerMarkerConstantID);
centerMarker = IDToField <Marker> (centerMarker, centerMarkerConstantID, false);
}
minRadiusParameterID = Action.ChooseParameterGUI ("Minimum radius:", parameters, minRadiusParameterID, ParameterType.Float);
if (minRadiusParameterID < 0)
{
minRadius = EditorGUILayout.FloatField ("Minimum radius:", minRadius);
}
maxRadiusParameterID = Action.ChooseParameterGUI ("Maximum radius:", parameters, maxRadiusParameterID, ParameterType.Float);
if (maxRadiusParameterID < 0)
{
maxRadius = EditorGUILayout.FloatField ("Maximum radius:", maxRadius);
}
speed = (PathSpeed) EditorGUILayout.EnumPopup ("Move speed:" , speed);
pathFind = EditorGUILayout.Toggle ("Pathfind?", pathFind);
if (!pathFind)
{
doFloat = EditorGUILayout.Toggle ("Ignore gravity?", doFloat);
}
willWait = EditorGUILayout.Toggle ("Wait until finish?", willWait);
AfterRunningOption ();
}
override public void AssignConstantIDs (bool saveScriptsToo)
{
if (saveScriptsToo)
{
if (!isPlayer && charToMove != null && charToMove.GetComponent <NPC>())
{
AddSaveScript <RememberNPC> (charToMove);
}
}
if (!isPlayer)
{
AssignConstantID <Char> (charToMove, charToMoveID, charToMoveParameterID);
}
}
#endif
}
}