using UnityEngine;
using System.Collections;
public class _Audio : MonoBehaviour
{
public AudioClip m_AudioClip; // Инициализация звука
AudioClip m_AudioClip_2 = null; // Инициализация звука
GameObject m_GameObject_2 = null;
float m_Time = 1;
//камера
float rotationY = 0F;
float sensitivityX = 15F;
float sensitivityY = 15F;
float minimumY = -60F;
float maximumY = 60F;
//
//------------------------------------------------
// Use this for initialization
void Start()
{
//gunshot/tank
//1
/*gameObject.AddComponent<AudioSource>();
m_AudioClip = (AudioClip)Resources.Load("_Sound/tank");
audio.clip = m_AudioClip;*/
//2
//m_AudioClip_2 = new AudioClip();
m_AudioClip_2 = (AudioClip)Resources.Load("_Sound/gunshot");
m_GameObject_2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
m_GameObject_2.transform.position = new Vector3(1, 2, 1);
m_GameObject_2.renderer.material.color = Color.yellow;
m_GameObject_2.AddComponent<AudioSource>();
m_GameObject_2.audio.volume = 0;
m_GameObject_2.audio.clip = m_AudioClip_2;
m_GameObject_2.audio.volume = 1;
m_GameObject_2.AddComponent<Rigidbody>();
//камера
if (Camera.mainCamera != null)
{
Camera.mainCamera.transform.position = new Vector3(1, 2, -2);
Camera.mainCamera.transform.rotation = Quaternion.identity;
}
}
// Update is called once per frame
void Update()
{
//управление объектом
//_Management(m_GameObject_2);
m_GameObject_2.transform.position = new Vector3(1, 2, 1);
//if (Time.time - m_Time > 1)
{
m_Time = Time.time;
/*if (!audio.isPlaying)
{
audio.Play();
//Debug.Log("+++ audio.Play");
}*/
//2
if (m_GameObject_2.audio != null)
{
if (!m_GameObject_2.audio.isPlaying)
{
m_GameObject_2.audio.Play();
//AudioSource pAS = m_GameObject_2.GetComponent<AudioSource>();
//AudioSource.PlayClipAtPoint(m_GameObject_2.audio.clip, new Vector3(0, 0, 0));
}
}
}
}
//
void LateUpdate()
{
//управление камерой
_Management_Cam();
}
//------------------------------------------------
//управление объектом
private void _Management(GameObject fGO)
{
if (fGO == null) return;
GameObject pGO = fGO;
if (pGO == null) return;
Transform pTransform = pGO.collider.transform;
float pd = Time.deltaTime;
float pTr_X = 0;
float pTr_Y = 0;
float pTr_Z = 0;
float pTrSpeed = 10;
bool pbTr = false;
float pRot_X = 0;
float pRot_Y = 0;
float pRot_Z = 0;
float pRotSpeed = 35;
bool pbRot = false;
//поворот лево-право
if (Input.GetKey(KeyCode.Q))
{
pRot_Y += (-pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.E))
{
pRot_Y += (pRotSpeed * pd);
pbRot = true;
}
}
//поворот вниз-вверх
if (Input.GetKey(KeyCode.R))
{
pRot_X += (pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.T))
{
pRot_X += (-pRotSpeed * pd);
pbRot = true;
}
}
//поворот вбок лево-право
if (Input.GetKey(KeyCode.F))
{
pRot_Z += (pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.G))
{
pRot_Z += (-pRotSpeed * pd);
pbRot = true;
}
}
if (pbRot)
{
pTransform.Rotate(pRot_X, pRot_Y, pRot_Z);
}
//вперёд-назад
if (Input.GetKey(KeyCode.W))
{
//Set_DrawTextInfo ("Camera_Keypad8", 0);
//pTransform.Translate(0,0,1 * pd);
pTr_Z += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.S))
{
pTr_Z += (-pTrSpeed * pd);
pbTr = true;
}
}
//боком лево-право
if (Input.GetKey(KeyCode.D))
{
pTr_X += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.A))
{
pTr_X += (-pTrSpeed * pd);
pbTr = true;
}
}
//вверх-вниз
if (Input.GetKey(KeyCode.Z))
{
pTr_Y += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.X))
{
pTr_Y += (-pTrSpeed * pd);
pbTr = true;
}
}
if (pbTr)
{
pTransform.Translate(pTr_X, pTr_Y, pTr_Z);
}
//передаём изменения
if (pbRot || pbTr)
{
/*cBase pbase = Get_ObjectBase(m_ManagementGameObject);
if (pbase != null)
{
pbase.Set_Change();
}*/
}
}//------------------------------------------------
//управление камерой
void _Management_Cam()
{
if (Camera.mainCamera == null)
return;
Transform pTransform = Camera.mainCamera.transform;
float pTrSpeed = 10;
float pRotSpeed = 35;
bool pbMouse = false;
float pd = Time.deltaTime;
float pTr_X = 0;
float pTr_Y = 0;
float pTr_Z = 0;
bool pbTr = false;
float pRot_X = 0;
float pRot_Y = 0;
float pRot_Z = 0;
bool pbRot = false;
if (Input.GetMouseButton(1))
{
pbMouse = true;
float rotationX = pTransform.localEulerAngles.y
+ Input.GetAxis("Mouse X") * sensitivityX;
rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);
pTransform.localEulerAngles =
new Vector3(-rotationY, rotationX, 0);
}
//перемещение без изменения высоты
if (Input.GetMouseButton(2))
{
//Set_DrawTextInfo("Camera_Management_Mouse_2", 0);
pTr_Z += (pTrSpeed * pd);
pTr_X += (pTrSpeed * pd);
Vector3 pvF = pTransform.forward;
Vector3 pvPos = pTransform.position;
pTrSpeed *= 2;
pvPos.x += pvF.x * (pTrSpeed * pd);
pvPos.z += pvF.z * (pTrSpeed * pd);
pTransform.position = pvPos;
//pTransform.Translate(pTr_X, pTr_Y, pTr_Z);
return;
}
float pm = Input.GetAxis("Mouse ScrollWheel");
if (pm != 0)
{
pTransform.Translate(0, 0, pm * pTrSpeed);
pbMouse = true;
}
if (pbMouse)
{
//Set_DrawTextInfo("Camera_Management_Mouse", 0);
return;
}
//Set_DrawTextInfo("Camera_Management", 0);
//поворот лево-право
if (Input.GetKey(KeyCode.Keypad7))
{
pRot_Y += (-pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.Keypad9))
{
pRot_Y += (pRotSpeed * pd);
pbRot = true;
}
}
//поворот вниз-вверх
if (Input.GetKey(KeyCode.Keypad1))
{
pRot_X += (pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.Keypad2))
{
pRot_X += (-pRotSpeed * pd);
pbRot = true;
}
}
//поворот вбок лево-право
if (Input.GetKey(KeyCode.Keypad0))
{
pRot_Z += (pRotSpeed * pd);
pbRot = true;
}
else
{
if (Input.GetKey(KeyCode.Keypad3))
{
pRot_Z += (-pRotSpeed * pd);
pbRot = true;
}
}
if (pbRot)
{
pTransform.Rotate(pRot_X, pRot_Y, pRot_Z);
}
//вперёд-назад
if (Input.GetKey(KeyCode.Keypad8))
{
//Set_DrawTextInfo ("Camera_Keypad8", 0);
//pTransform.Translate(0,0,1 * pd);
pTr_Z += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.Keypad5))
{
pTr_Z += (-pTrSpeed * pd);
pbTr = true;
}
}
//боком лево-право
if (Input.GetKey(KeyCode.Keypad6))
{
pTr_X += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.Keypad4))
{
pTr_X += (-pTrSpeed * pd);
pbTr = true;
}
}
//вверх-вниз
if (Input.GetKey(KeyCode.KeypadPlus))
{
pTr_Y += (pTrSpeed * pd);
pbTr = true;
}
else
{
if (Input.GetKey(KeyCode.KeypadMinus))
{
pTr_Y += (-pTrSpeed * pd);
pbTr = true;
}
}
if (pbTr)
{
pTransform.Translate(pTr_X, pTr_Y, pTr_Z);
}
} //------------------------------------------------
}//------------------------------------------------