unityzgy/Assets/ThirdPackages/VRPackage/SteamVR/InteractionSystem/Longbow/Scripts/BalloonColliders.cs
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

88 lines
2.2 KiB
C#

//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Can be attached to the controller to collide with the balloons
//
//=============================================================================
using UnityEngine;
using System.Collections;
namespace Valve.VR.InteractionSystem
{
//-------------------------------------------------------------------------
public class BalloonColliders : MonoBehaviour
{
public GameObject[] colliders;
private Vector3[] colliderLocalPositions;
private Quaternion[] colliderLocalRotations;
private Rigidbody rb;
//-------------------------------------------------
void Awake()
{
rb = GetComponent<Rigidbody>();
colliderLocalPositions = new Vector3[colliders.Length];
colliderLocalRotations = new Quaternion[colliders.Length];
for ( int i = 0; i < colliders.Length; ++i )
{
colliderLocalPositions[i] = colliders[i].transform.localPosition;
colliderLocalRotations[i] = colliders[i].transform.localRotation;
colliders[i].name = gameObject.name + "." + colliders[i].name;
}
}
//-------------------------------------------------
void OnEnable()
{
for ( int i = 0; i < colliders.Length; ++i )
{
colliders[i].transform.SetParent( transform );
colliders[i].transform.localPosition = colliderLocalPositions[i];
colliders[i].transform.localRotation = colliderLocalRotations[i];
colliders[i].transform.SetParent( null );
FixedJoint fixedJoint = colliders[i].AddComponent<FixedJoint>();
fixedJoint.connectedBody = rb;
fixedJoint.breakForce = Mathf.Infinity;
fixedJoint.breakTorque = Mathf.Infinity;
fixedJoint.enableCollision = false;
fixedJoint.enablePreprocessing = true;
colliders[i].SetActive( true );
}
}
//-------------------------------------------------
void OnDisable()
{
for ( int i = 0; i < colliders.Length; ++i )
{
if ( colliders[i] != null )
{
Destroy( colliders[i].GetComponent<FixedJoint>() );
colliders[i].SetActive( false );
}
}
}
//-------------------------------------------------
void OnDestroy()
{
for ( int i = 0; i < colliders.Length; ++i )
{
Destroy( colliders[i] );
}
}
}
}