RenameGameObjectCommand.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using JetBrains.Annotations;
  2. using LLM.Editor.Helper;
  3. using UnityEditor;
  4. using UnityEngine;
  5. namespace LLM.Editor.Commands
  6. {
  7. [System.Serializable]
  8. public class RenameGameObjectParams
  9. {
  10. public int targetIdentifier;
  11. public string newName;
  12. }
  13. [UsedImplicitly]
  14. public class RenameGameObjectCommand : ICommand
  15. {
  16. private readonly RenameGameObjectParams _params;
  17. public RenameGameObjectCommand(string jsonParams)
  18. {
  19. _params = jsonParams?.FromJson<RenameGameObjectParams>();
  20. }
  21. public CommandOutcome Execute(Data.CommandContext context)
  22. {
  23. if (_params == null || string.IsNullOrEmpty(_params.newName) || _params.targetIdentifier == 0)
  24. {
  25. context.ErrorMessage = "Invalid parameters: targetIdentifier and newName are required.";
  26. Debug.LogError($"[RenameGameObjectCommand] {context.ErrorMessage}");
  27. return CommandOutcome.Error;
  28. }
  29. var targetObject = EditorUtility.InstanceIDToObject(_params.targetIdentifier);
  30. if (!targetObject)
  31. {
  32. context.ErrorMessage = $"Could not find GameObject with ID: {_params.targetIdentifier}";
  33. Debug.LogError($"[RenameGameObjectCommand] {context.ErrorMessage}");
  34. return CommandOutcome.Error;
  35. }
  36. targetObject.name = _params.newName;
  37. Debug.Log($"[RenameGameObjectCommand] Renamed object to: {_params.newName}");
  38. return CommandOutcome.Success;
  39. }
  40. }
  41. }