public async Task Lock() { ++this.lockCount; if (this.status == LockStatus.Locked) { return; } if (this.status == LockStatus.LockRequesting) { await WaitLock(); return; } this.status = LockStatus.LockRequesting; // 真身直接本地请求锁,镜像需要调用Rpc获取锁 MasterComponent masterComponent = this.GetComponent <MasterComponent>(); if (masterComponent != null) { await masterComponent.Lock(this.address); } else { RequestLock(); await WaitLock(); } }