package Ġcom . jetbrains . r ider . plugins . unity . run . attach Ċ Ċ import Ġcom . intellij . execution . Program Runner Util Ċ import Ġcom . intellij . execution . exec utors . Default Debug Executor Ċ import Ġcom . intellij . execution . process . Process Info Ċ import Ġcom . intellij . execution . runners . Execution Environment Builder Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . jetbrains . r ider . plugins . unity . util . convert Pid To Debugger Port Ċ import Ġjava . nio . file . Paths Ċ Ċ object ĠUnity Run Util Ġ{ ĊĊĠĠĠ Ġfun Ġis Unity Editor Process ( process Info : ĠProcess Info ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġprocess Info . executable DisplayName ĊĠĠĠĠĠĠĠ Ġvar Ġexec Path Name Ġ= Ġ""; ĊĠĠĠĠĠĠĠ Ġif Ġ( process Info . executable C ann onical Path . isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Path Name Ġ= ĠPaths . get ( process Info . executable C ann onical Path . get ()). fileName . toString () Ġ// Ġfor Ġthe Ġcase Ġof Ġsymlink ĊĠĠĠĠĠĠĠ Ġreturn Ġ( name . startsWith (" Unity ", Ġtrue ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . contains (" Unity . app ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Path Name . equals (" Unity ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity Debug ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity Shader ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity Helper ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity ĠHelper ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity ĠHub ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity Crash Handler ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! name . contains (" Unity PackageManager ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġattach To Editor ( pid : ĠInt , Ġproject : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġconvert Pid To Debugger Port ( pid ) ĊĠĠĠĠĠĠĠ Ġattach To Unity Process (" localhost ", Ġport , Ġ" Unity ĠEditor ", Ġproject , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġattach To Unity Process ( host : ĠString , Ġport : ĠInt , Ġplayer Id : ĠString , Ġproject : ĠProject , Ġis Editor : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠUnity Attach Configuration ( host , Ġport , Ġplayer Id , Ġis Editor ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠUnity Attach Run Profile ( player Id , Ġconfiguration , Ġplayer Id , Ġis Editor ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠExecution Environment Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( project , ĠDefault Debug Executor . get Debug Executor Instance (), Ġprofile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ ĠProgram Runner Util . execute Configuration ( environment , Ġfalse , Ġtrue ) ĊĠĠĠ Ġ} Ċ }