Вот пытаюсь замутить аля портал2 прожекттексу на сканнер. Я то её сделал, но направления куда светить указать немогу. Показываю как сделал...
Сначало отключил показ spotlight_end добавил:
code:m_hSpotlightTarget->m_flLightScale = 0.0;
После
code:m_hSpotlightTarget->m_Radius = m_flSpotlightMaxLength;
Что б не удалять этот кусок кода.
Потом добавил вот это в тот же участок кода, что бы его и показывать:
code:m_hTargetEntity = (CEnvProjectedTexture*)CreateEntityByName( "env_projectedtexture" );
m_hTargetEntity->SetAttachment( this, LookupAttachment( SCANNER_ATTACHMENT_LIGHT ) );
m_hTargetEntity->m_flNearZ = 4.0f;
m_hTargetEntity->m_flFarZ = 2000.0f;
m_hTargetEntity->m_bLightWorld = true;
m_hTargetEntity->m_bLightOnlyTarget = false;
m_hTargetEntity->m_nShadowQuality = 1;
m_hTargetEntity->m_flLightFOV = 45.0f;
m_hTargetEntity->m_LightColor.Init( 255, 255, 255, 200 );
m_hTargetEntity->m_bEnableShadows = true;
m_hTargetEntity->m_flColorTransitionTime = 1.0f;
m_hTargetEntity->m_bCameraSpace = false;
m_hTargetEntity->m_bState = true;
m_hTargetEntity->m_flProjectionSize = 500.0f;
Как ясно из этого кода, я добавил в класс CEnvProjectedTexture вот это для аттачмента:
code:inline void SetAttachment( CBaseEntity *pEntity, int attachment )
{
if ( pEntity )
{
m_hAttachedToEntity = pEntity;
m_nAttachment = attachment;
FollowEntity( pEntity );
}
}
Ну и конечно сделал обозначение в классе сканнера и переменную m_hTargetEntity. Пока я её не вставлял во всякие функции аля Spawn, SpotlightDestroy и т.д. Саму Прожеттексу в игре видно, но светит она явно куда-то не туда.
Что б вы недумали, что я не вставлял всякие SetAbsAngles и другое, то нет, я их вставлял как только можно, но это не работало, так что пока снёс.
Аттачмент тоже указан верно, проверял.