Изометрична камера като в стратегиите

използване на UnityEngine; използване на System.Collections ;

публичен клас ICam: MonoBehavior

обществена плаваща камераSpeed ​​​​; //скорост на движение на камерата в равнината public float zoomSpeed ​​​​; //скорост на мащабиране на колелото на мишката public float mouseSensitivity ; //чувствителност на мишката при завъртане на камерата

частна трансформация _myTransform; //тук кеширам свойството transform на камерата

// Използвайте това за инициализация void Start ( ) < _myTransform = трансформиране; camSpeed ​​​​= 150.0f ; скорост на мащабиране = 5000.0f; чувствителност на мишката = 150.0f; >

// Актуализацията се извиква веднъж на кадър void Update ( ) < //преобразуване на скоростта на рамката във времева скорост float speedMod = camSpeed ​​​​* Време. deltaTime ; float zoomMod = zoomSpeed ​​​​* Време. deltaTime ; float sensMod = mouseSensitivity * Време. deltaTime ;

//движение на камерата наляво-надясно //когато се контролира от клавишите със стрелки _myTransform. Translate ( Vector3. right * Input. GetAxis ( "Horizontal" ) * speedMod, Space. Self ) ; //при контролиране на мишката (достигане до ръба на екрана) if ( Input. mousePosition . x 0 ) _myTransform. Превод ( Vector3. дясно * - 1 * speedMod, Space. Self ) ; if ( Input. mousePosition . x >= Screen. width ) _myTransform. Превод ( Vector3. right * 1 * speedMod, Space. Self ) ;

//преместване напред и назад _myTransform. Превод ( Vector3. Scale ( _myTransform. TransformDirection ( Vector3. forward ) , new Vector3 ( 1 , 0 , 1 ) ) . normalized * Input. GetAxis ( "Vertical" ) * speedMod, Space. World ) ; if ( Input. mousePosition . y 0 ) _myTransform. Превод ( Vector3. Scale ( _myTransform. TransformDirection ( Vector3. forward ), new Vector3 ( 1, 0, 1 ) ) . normalized * - 1 * speedMod, Space. World ) ; ако (Вход.mousePosition. y >=Екран. височина ) _myTransform. Превод ( Vector3. Scale ( _myTransform. TransformDirection ( Vector3. forward ), new Vector3 ( 1, 0, 1 )) . normalized * 1 * speedMod, Space. World );

//подход-изтриване _myTransform. Translate ( Vector3. forward * Input. GetAxis ( "Mouse ScrollWheel" ) * zoomMod, Space. Self ) ;

//завъртане на камерата if ( Input. GetMouseButton ( 1 ) ) < _myTransform. Rotate ( - Input. GetAxis ( "Mouse Y") * sensMod, 0, 0, Space. Self ) ; _myTransform. Rotate ( 0 , Input. GetAxis ( "Mouse X" ) * sensMod, 0, Space. World ) ; > > >