// ------------------------------------------------------------------------ // ロックオン処理. // ------------------------------------------------------------------------ public void Lockon(Collider collider) { // 敵機をロックオン. if (collider.gameObject.tag == "Enemy") { // インスタンスIDを取得する. int targetId = collider.gameObject.GetInstanceID(); // ロックオン数を加算. // (ロックオンが成功すれば true がかえってくる). bool isLockon = IncreaseLockonCount(targetId); if (isLockon) { // ------------------------------------------------------------ // ロックオン // ------------------------------------------------------------ // ロックオン番号を決定. int lockonNumber = getLockonNumber(); if (lockonNumber >= 0) { // ロックオンサイトの表示位置はロックオンした敵機の位置に表示. Vector3 targetPosition = collider.gameObject.transform.position; Quaternion tagetRotation = new Quaternion(0f, 180f, 0f, 0f); // ロックオンサイトのインスタンス生成. GameObject lockonSight; lockonSight = Instantiate(lockonSights[lockonNumber], targetPosition, tagetRotation) as GameObject; lockonSight.SendMessage("SetLockonEnemy", collider.gameObject); // ロックオンリストにロックオンした敵機を追加. lockedOnEnemyIds[lockonNumber] = targetId; // ロックオンしたオブジェクトを保持しておく. lockedOnEnemys[lockonNumber] = collider.gameObject; // ロックオンサイトを保持する. lockedOnSights[lockonNumber] = lockonSight; // メッセージ表示. printMessage.SetMessage("LOCKED ON SOME ENEMIES."); lockSlot.SetLockCount(lockonCount); } } } }
// ------------------------------------------------------------------------ // 锁定处理 // ------------------------------------------------------------------------ public void Lockon(Collider collider) { // 锁定敌机 if (collider.gameObject.tag == "Enemy") { // 如果未锁定则进行锁定 int targetId = collider.gameObject.GetInstanceID(); // 累加锁定数量 // (如果锁定成功将变为true) bool isLockon = IncreaseLockonCount(targetId); if (isLockon) { // ------------------------------------------------------------ // 锁定 // ------------------------------------------------------------ // 决定锁定编号 int lockonNumber = getLockonNumber(); if (lockonNumber >= 0) { // 锁定瞄准器的显示位置用于显示被锁定敌机的位置 Vector3 targetPosition = collider.gameObject.transform.position; Quaternion tagetRotation = new Quaternion(0f, 180f, 0f, 0f); // 生成锁定瞄准器的实例 GameObject lockonSight; lockonSight = Instantiate(lockonSights[lockonNumber], targetPosition, tagetRotation) as GameObject; lockonSight.SendMessage("SetLockonEnemy", collider.gameObject); // 将被锁定的敌机添加到锁定列表 lockedOnEnemyIds[lockonNumber] = targetId; // 存储被锁定的对象 lockedOnEnemys[lockonNumber] = collider.gameObject; // 存储锁定瞄准器 lockedOnSights[lockonNumber] = lockonSight; // 显示消息 printMessage.SetMessage("LOCKED ON SOME ENEMIES."); lockSlot.SetLockCount(lockonCount); } } } }