Monday, 24 December 2018
Thursday, 20 December 2018
Unity 2D Enemy AI Platformer Tutorial (Hindi/Urdu) [07]
Tutorials will be in both English and Hindi Audio.
Check my channel for my videos.
#2D #Platformer
A complete video tutorial series on Unity Game development
for beginners.Suitable for beginners and intermediate programmers.
Kitty Vs Max is a 2d platformer game build with unity for android and ios mobile phones.
Hindi Version Playlist
https://www.youtube.com/playlist?list=PLgAF6rpCsTCgsuXBNPZOsNcnhLzStYfx-
English Version Playlist
https://www.youtube.com/playlist?list=PLgAF6rpCsTCj9c3__jGQCYgtfQFj1TCoB
============ Please Like the video =========
Download The Assets:
https://goo.gl/uvaYo4
Watch Other Amazing Videos
https://goo.gl/8vQJ39
Join WhatsApp Group
https://chat.whatsapp.com/invite/9qAQ373cPryFwgtvtl8b8q
Join FaceBook Group
https://www.facebook.com/groups/1768194436812852
Sunday, 16 December 2018
Unity 2D Platformer - Enemy AI - [kitty vs max] 05
Tutorials will be in both English and Hindi Audio. Check my channel for my videos. #2D #Platformer A complete video tutorial series on Unity Game development for beginners.Suitable for beginners and intermediate programmers. Kitty Vs Max is a 2d platformer game build with unity for android and ios mobile phones. Hindi Version Playlist https://www.youtube.com/playlist?list=PLgAF6rpCsTCgsuXBNPZOsNcnhLzStYfx- English Version Playlist https://www.youtube.com/playlist?list=PLgAF6rpCsTCj9c3__jGQCYgtfQFj1TCoB ============ Please Like the video ========= Download The Assets: https://goo.gl/uvaYo4 Watch Other Amazing Videos https://goo.gl/8vQJ39 Join WhatsApp Group https://chat.whatsapp.com/invite/9qAQ373cPryFwgtvtl8b8q Join FaceBook Group https://www.facebook.com/groups/1768194436812852
Tuesday, 11 December 2018
Unity 2D Platformer Game Tutorial in Hindi - [smooth gameplay 04 ]
Tutorials will be in both English and Hindi Audio.
Check my channel for my videos.
#2D #Platformer
A complete video tutorial series on Unity Game development
for beginners.Suitable for beginners and intermediate programmers.
Kitty Vs Max is a 2d platformer game build with unity for android and ios mobile phones.
Hindi Version Playlist
https://www.youtube.com/playlist?list=PLgAF6rpCsTCgsuXBNPZOsNcnhLzStYfx-
English Version Playlist
https://www.youtube.com/playlist?list=PLgAF6rpCsTCj9c3__jGQCYgtfQFj1TCoB
Thursday, 6 December 2018
Wednesday, 5 December 2018
Saturday, 1 December 2018
Friday, 23 November 2018
Thursday, 22 November 2018
Friday, 9 November 2018
Tuesday, 6 November 2018
Monday, 22 October 2018
Saturday, 20 October 2018
Tuesday, 16 October 2018
Sunday, 30 September 2018
Tuesday, 11 September 2018
Monday, 3 September 2018
Saturday, 21 July 2018
Unity Count Down Timer with circular progressbar
Watch Video Tutorial On My Channel
Assets:
White Dotted image is here |
Script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Loading : MonoBehaviour {
public Image loading;
public Text timeText;
public int minutes;
public int sec;
int totalSeconds = 0;
int TOTAL_SECONDS = 0;
float fillamount;
void Start ()
{
timeText.text = minutes + " : " + sec;
if (minutes > 0)
totalSeconds += minutes * 60;
if (sec > 0)
totalSeconds += sec;
TOTAL_SECONDS = totalSeconds;
StartCoroutine (second ());
}
void Update ()
{
if (sec == 0 && minutes == 0) {
timeText.text = "Time's Up!";
StopCoroutine (second ());
}
}
IEnumerator second()
{
yield return new WaitForSeconds (1f);
if(sec > 0)
sec--;
if (sec == 0 && minutes != 0) {
sec = 60;
minutes--;
}
timeText.text = minutes + " : " + sec;
fillLoading ();
StartCoroutine (second ());
}
void fillLoading()
{
totalSeconds--;
float fill = (float)totalSeconds/TOTAL_SECONDS;
loading.fillAmount = fill;
}
}
Sunday, 15 July 2018
How to Make a Wheel of Fortune in Unity 2018 [ free code + assets ]
Watch Video Tutorial On Youtube
Spinner Script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class spinner : MonoBehaviour {
public float reducer;
public float multiplier = 1;
bool round1 = false;
public bool isStoped = false;
void Start ()
{
reducer = Random.Range (0.01f, 0.5f);
}
// Update is called once per frameQ
void FixedUpdate () {
if (Input.GetKey (KeyCode.Space))
{
Reset ();
}
if (multiplier > 0)
{
transform.Rotate (Vector3.forward, 1 * multiplier);
} else
{
isStoped = true;
}
if (multiplier < 20 && !round1)
{
multiplier += 0.1f;
} else
{
round1 = true;
}
if (round1 && multiplier > 0)
{
multiplier -= reducer;
}
}
void Reset()
{
multiplier = 1;
reducer = Random.Range (0.01f, 0.5f);
round1 = false;
isStoped = false;
}
}
Needle Script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class needle : MonoBehaviour {
public spinner _spinner;
public Text scoretext;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnTriggerStay2D(Collider2D col){
if (!_spinner.isStoped)
return;
scoretext.text = col.gameObject.name;
}
}
Saturday, 14 July 2018
Saturday, 7 July 2018
Unity 3d Play sound on trigger and particle effect [HINDI/URDU]
unity 3d play sound on Trigger c# and particle system tutorial.
in this video i will show you how to play win sound when player reaches a finish point or stage is cleared in hindi urdu.
Wednesday, 6 June 2018
Thursday, 17 May 2018
how to use slider in unity
first goto -> create -> UI -> slider and create a slider this will create a canvas if not already created.
create a script and attach it to any gameobject (payer or camera) or just put the code in any script
assing the public slider variable in inspector by draging the slider component from hierarchy to inspector as shown below.
now run the code after running you will notice the slider value will change to 10 as written in code.
Tuesday, 8 May 2018
Sunday, 29 April 2018
Wednesday, 18 April 2018
Tuesday, 17 April 2018
Monday, 19 March 2018
unity 2d shooter game tutorial (Shooting A bullete) 04
unity 2d shooter game tutorial.
how to create a 2d shooting game in unity for android. best 2d game tutorial for android. how to make games like zombie shooting 2. best YouTube channel to learn unity in Hindi Urdu.
Saturday, 17 March 2018
Wednesday, 14 March 2018
Friday, 9 March 2018
Thursday, 8 March 2018
Wednesday, 7 March 2018
Sunday, 4 March 2018
FPS SHOOTER (FirstPersonController)
using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;
namespace UnityStandardAssets.Characters.FirstPerson
{
[RequireComponent(typeof (CharacterController))]
[RequireComponent(typeof (AudioSource))]
public class FirstPersonController : MonoBehaviour
{
[SerializeField] private bool m_IsWalking;
[SerializeField] private float m_WalkSpeed;
[SerializeField] private float m_RunSpeed;
[SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
[SerializeField] private float m_JumpSpeed;
[SerializeField] private float m_StickToGroundForce;
[SerializeField] private float m_GravityMultiplier;
[SerializeField] private MouseLook m_MouseLook;
[SerializeField] private bool m_UseFovKick;
[SerializeField] private FOVKick m_FovKick = new FOVKick();
[SerializeField] private bool m_UseHeadBob;
[SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
[SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
[SerializeField] private float m_StepInterval;
[SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from.
[SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground.
[SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground.
float horizontal;
float vertical;
bool walkforward;
private Camera m_Camera;
private bool m_Jump;
private float m_YRotation;
private Vector2 m_Input;
private Vector3 m_MoveDir = Vector3.zero;
private CharacterController m_CharacterController;
private CollisionFlags m_CollisionFlags;
private bool m_PreviouslyGrounded;
private Vector3 m_OriginalCameraPosition;
private float m_StepCycle;
private float m_NextStep;
private bool m_Jumping;
private AudioSource m_AudioSource;
// Use this for initialization
private void Start()
{
m_CharacterController = GetComponent<CharacterController>();
m_Camera = Camera.main;
m_OriginalCameraPosition = m_Camera.transform.localPosition;
m_FovKick.Setup(m_Camera);
m_HeadBob.Setup(m_Camera, m_StepInterval);
m_StepCycle = 0f;
m_NextStep = m_StepCycle/2f;
m_Jumping = false;
m_AudioSource = GetComponent<AudioSource>();
m_MouseLook.Init(transform , m_Camera.transform);
}
// Update is called once per frame
private void Update()
{
RotateView();
// the jump state needs to read here to make sure it is not missed
if (!m_Jump)
{
m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
}
if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
{
StartCoroutine(m_JumpBob.DoBobCycle());
PlayLandingSound();
m_MoveDir.y = 0f;
m_Jumping = false;
}
if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
{
m_MoveDir.y = 0f;
}
m_PreviouslyGrounded = m_CharacterController.isGrounded;
}
private void PlayLandingSound()
{
m_AudioSource.clip = m_LandSound;
m_AudioSource.Play();
m_NextStep = m_StepCycle + .5f;
}
private void FixedUpdate()
{
float speed;
GetInput(out speed);
// always move along the camera forward as it is the direction that it being aimed at
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;
// get a normal for the surface that is being touched to move along it
RaycastHit hitInfo;
Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
m_CharacterController.height/2f, Physics.AllLayers, QueryTriggerInteraction.Ignore);
desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;
m_MoveDir.x = desiredMove.x*speed;
Camera.main.transform.Rotate(new Vector3(0.0f, m_MoveDir.x, 0.0f));
// transform.Rotate(new Vector3(0.0f, m_MoveDir.x,0.0f));
m_MoveDir.z = desiredMove.z*speed;
if (m_CharacterController.isGrounded)
{
m_MoveDir.y = -m_StickToGroundForce;
if (m_Jump)
{
m_MoveDir.y = m_JumpSpeed;
PlayJumpSound();
m_Jump = false;
m_Jumping = true;
}
}
else
{
m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
}
m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);
ProgressStepCycle(speed);
UpdateCameraPosition(speed);
m_MouseLook.UpdateCursorLock();
}
private void PlayJumpSound()
{
m_AudioSource.clip = m_JumpSound;
m_AudioSource.Play();
}
private void ProgressStepCycle(float speed)
{
if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
{
m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
Time.fixedDeltaTime;
}
if (!(m_StepCycle > m_NextStep))
{
return;
}
m_NextStep = m_StepCycle + m_StepInterval;
PlayFootStepAudio();
}
private void PlayFootStepAudio()
{
if (!m_CharacterController.isGrounded)
{
return;
}
// pick & play a random footstep sound from the array,
// excluding sound at index 0
int n = Random.Range(1, m_FootstepSounds.Length);
m_AudioSource.clip = m_FootstepSounds[n];
m_AudioSource.PlayOneShot(m_AudioSource.clip);
// move picked sound to index 0 so it's not picked next time
m_FootstepSounds[n] = m_FootstepSounds[0];
m_FootstepSounds[0] = m_AudioSource.clip;
}
private void UpdateCameraPosition(float speed)
{
Vector3 newCameraPosition;
if (!m_UseHeadBob)
{
return;
}
if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
{
m_Camera.transform.localPosition =
m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
(speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
}
else
{
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
}
m_Camera.transform.localPosition = newCameraPosition;
}
private void GetInput(out float speed)
{
horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
vertical = CrossPlatformInputManager.GetAxis("Vertical");
bool waswalking = m_IsWalking;
#if !MOBILE_INPUT
// On standalone builds, walk/run speed is modified by a key press.
// keep track of whether or not the character is walking or running
m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
// set the desired speed to be walking or running
speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
m_Input = new Vector2(horizontal, vertical);
// normalize input if it exceeds 1 in combined length:
if (m_Input.sqrMagnitude > 1)
{
m_Input.Normalize();
}
// handle speed change to give an fov kick
// only if the player is going to a run, is running and the fovkick is to be used
if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
{
StopAllCoroutines();
StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
}
}
private void RotateView()
{
m_MouseLook.LookRotation (transform, m_Camera.transform);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
//dont move the rigidbody if the character is on top of it
if (m_CollisionFlags == CollisionFlags.Below)
{
return;
}
if (body == null || body.isKinematic)
{
return;
}
body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
}
public void walkForward()
{
vertical = 1f;
}
public void walkForwardUp()
{
vertical = 0f;
}
public void walkBackward()
{
vertical = -1f;
}
}
}
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
using UnityStandardAssets.Utility;
using Random = UnityEngine.Random;
namespace UnityStandardAssets.Characters.FirstPerson
{
[RequireComponent(typeof (CharacterController))]
[RequireComponent(typeof (AudioSource))]
public class FirstPersonController : MonoBehaviour
{
[SerializeField] private bool m_IsWalking;
[SerializeField] private float m_WalkSpeed;
[SerializeField] private float m_RunSpeed;
[SerializeField] [Range(0f, 1f)] private float m_RunstepLenghten;
[SerializeField] private float m_JumpSpeed;
[SerializeField] private float m_StickToGroundForce;
[SerializeField] private float m_GravityMultiplier;
[SerializeField] private MouseLook m_MouseLook;
[SerializeField] private bool m_UseFovKick;
[SerializeField] private FOVKick m_FovKick = new FOVKick();
[SerializeField] private bool m_UseHeadBob;
[SerializeField] private CurveControlledBob m_HeadBob = new CurveControlledBob();
[SerializeField] private LerpControlledBob m_JumpBob = new LerpControlledBob();
[SerializeField] private float m_StepInterval;
[SerializeField] private AudioClip[] m_FootstepSounds; // an array of footstep sounds that will be randomly selected from.
[SerializeField] private AudioClip m_JumpSound; // the sound played when character leaves the ground.
[SerializeField] private AudioClip m_LandSound; // the sound played when character touches back on ground.
float horizontal;
float vertical;
bool walkforward;
private Camera m_Camera;
private bool m_Jump;
private float m_YRotation;
private Vector2 m_Input;
private Vector3 m_MoveDir = Vector3.zero;
private CharacterController m_CharacterController;
private CollisionFlags m_CollisionFlags;
private bool m_PreviouslyGrounded;
private Vector3 m_OriginalCameraPosition;
private float m_StepCycle;
private float m_NextStep;
private bool m_Jumping;
private AudioSource m_AudioSource;
// Use this for initialization
private void Start()
{
m_CharacterController = GetComponent<CharacterController>();
m_Camera = Camera.main;
m_OriginalCameraPosition = m_Camera.transform.localPosition;
m_FovKick.Setup(m_Camera);
m_HeadBob.Setup(m_Camera, m_StepInterval);
m_StepCycle = 0f;
m_NextStep = m_StepCycle/2f;
m_Jumping = false;
m_AudioSource = GetComponent<AudioSource>();
m_MouseLook.Init(transform , m_Camera.transform);
}
// Update is called once per frame
private void Update()
{
RotateView();
// the jump state needs to read here to make sure it is not missed
if (!m_Jump)
{
m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
}
if (!m_PreviouslyGrounded && m_CharacterController.isGrounded)
{
StartCoroutine(m_JumpBob.DoBobCycle());
PlayLandingSound();
m_MoveDir.y = 0f;
m_Jumping = false;
}
if (!m_CharacterController.isGrounded && !m_Jumping && m_PreviouslyGrounded)
{
m_MoveDir.y = 0f;
}
m_PreviouslyGrounded = m_CharacterController.isGrounded;
}
private void PlayLandingSound()
{
m_AudioSource.clip = m_LandSound;
m_AudioSource.Play();
m_NextStep = m_StepCycle + .5f;
}
private void FixedUpdate()
{
float speed;
GetInput(out speed);
// always move along the camera forward as it is the direction that it being aimed at
Vector3 desiredMove = transform.forward*m_Input.y + transform.right*m_Input.x;
// get a normal for the surface that is being touched to move along it
RaycastHit hitInfo;
Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo,
m_CharacterController.height/2f, Physics.AllLayers, QueryTriggerInteraction.Ignore);
desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized;
m_MoveDir.x = desiredMove.x*speed;
Camera.main.transform.Rotate(new Vector3(0.0f, m_MoveDir.x, 0.0f));
// transform.Rotate(new Vector3(0.0f, m_MoveDir.x,0.0f));
m_MoveDir.z = desiredMove.z*speed;
if (m_CharacterController.isGrounded)
{
m_MoveDir.y = -m_StickToGroundForce;
if (m_Jump)
{
m_MoveDir.y = m_JumpSpeed;
PlayJumpSound();
m_Jump = false;
m_Jumping = true;
}
}
else
{
m_MoveDir += Physics.gravity*m_GravityMultiplier*Time.fixedDeltaTime;
}
m_CollisionFlags = m_CharacterController.Move(m_MoveDir*Time.fixedDeltaTime);
ProgressStepCycle(speed);
UpdateCameraPosition(speed);
m_MouseLook.UpdateCursorLock();
}
private void PlayJumpSound()
{
m_AudioSource.clip = m_JumpSound;
m_AudioSource.Play();
}
private void ProgressStepCycle(float speed)
{
if (m_CharacterController.velocity.sqrMagnitude > 0 && (m_Input.x != 0 || m_Input.y != 0))
{
m_StepCycle += (m_CharacterController.velocity.magnitude + (speed*(m_IsWalking ? 1f : m_RunstepLenghten)))*
Time.fixedDeltaTime;
}
if (!(m_StepCycle > m_NextStep))
{
return;
}
m_NextStep = m_StepCycle + m_StepInterval;
PlayFootStepAudio();
}
private void PlayFootStepAudio()
{
if (!m_CharacterController.isGrounded)
{
return;
}
// pick & play a random footstep sound from the array,
// excluding sound at index 0
int n = Random.Range(1, m_FootstepSounds.Length);
m_AudioSource.clip = m_FootstepSounds[n];
m_AudioSource.PlayOneShot(m_AudioSource.clip);
// move picked sound to index 0 so it's not picked next time
m_FootstepSounds[n] = m_FootstepSounds[0];
m_FootstepSounds[0] = m_AudioSource.clip;
}
private void UpdateCameraPosition(float speed)
{
Vector3 newCameraPosition;
if (!m_UseHeadBob)
{
return;
}
if (m_CharacterController.velocity.magnitude > 0 && m_CharacterController.isGrounded)
{
m_Camera.transform.localPosition =
m_HeadBob.DoHeadBob(m_CharacterController.velocity.magnitude +
(speed*(m_IsWalking ? 1f : m_RunstepLenghten)));
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_Camera.transform.localPosition.y - m_JumpBob.Offset();
}
else
{
newCameraPosition = m_Camera.transform.localPosition;
newCameraPosition.y = m_OriginalCameraPosition.y - m_JumpBob.Offset();
}
m_Camera.transform.localPosition = newCameraPosition;
}
private void GetInput(out float speed)
{
horizontal = CrossPlatformInputManager.GetAxis("Horizontal");
vertical = CrossPlatformInputManager.GetAxis("Vertical");
bool waswalking = m_IsWalking;
#if !MOBILE_INPUT
// On standalone builds, walk/run speed is modified by a key press.
// keep track of whether or not the character is walking or running
m_IsWalking = !Input.GetKey(KeyCode.LeftShift);
#endif
// set the desired speed to be walking or running
speed = m_IsWalking ? m_WalkSpeed : m_RunSpeed;
m_Input = new Vector2(horizontal, vertical);
// normalize input if it exceeds 1 in combined length:
if (m_Input.sqrMagnitude > 1)
{
m_Input.Normalize();
}
// handle speed change to give an fov kick
// only if the player is going to a run, is running and the fovkick is to be used
if (m_IsWalking != waswalking && m_UseFovKick && m_CharacterController.velocity.sqrMagnitude > 0)
{
StopAllCoroutines();
StartCoroutine(!m_IsWalking ? m_FovKick.FOVKickUp() : m_FovKick.FOVKickDown());
}
}
private void RotateView()
{
m_MouseLook.LookRotation (transform, m_Camera.transform);
}
private void OnControllerColliderHit(ControllerColliderHit hit)
{
Rigidbody body = hit.collider.attachedRigidbody;
//dont move the rigidbody if the character is on top of it
if (m_CollisionFlags == CollisionFlags.Below)
{
return;
}
if (body == null || body.isKinematic)
{
return;
}
body.AddForceAtPosition(m_CharacterController.velocity*0.1f, hit.point, ForceMode.Impulse);
}
public void walkForward()
{
vertical = 1f;
}
public void walkForwardUp()
{
vertical = 0f;
}
public void walkBackward()
{
vertical = -1f;
}
}
}
fps shooter (PlayerScript)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
public class PlayerScript : MonoBehaviour
{
public Animator Zombieanim;
public float health = 100f;
public Slider healthbar;
public GameObject GameOverScreen;
public float speed = 5.0f;
private float rot = 0.0f;
//public GameObject zombie;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// CrossPlatformInputManager.GetAxis("Vertical");
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "Enemy"&& !col.GetComponent<Enemy_AI>().isDead) {
health = health - 0.1f;
Zombieanim.SetBool ("attack",true);
}
}
void OnTriggerStay(Collider col)
{
if (col.tag == "Enemy"&& !col.GetComponent<Enemy_AI>().isDead) {
health = health - 0.1f;
healthbar.value = health;
if (health < 0f )
{
print ("you died");
GameOverScreen.SetActive(true);
}
}
}
void OnTriggerExit(Collider col)
{
if (col.tag == "Enemy") {
Zombieanim.SetBool ("attack",false);
}
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
public class PlayerScript : MonoBehaviour
{
public Animator Zombieanim;
public float health = 100f;
public Slider healthbar;
public GameObject GameOverScreen;
public float speed = 5.0f;
private float rot = 0.0f;
//public GameObject zombie;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// CrossPlatformInputManager.GetAxis("Vertical");
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "Enemy"&& !col.GetComponent<Enemy_AI>().isDead) {
health = health - 0.1f;
Zombieanim.SetBool ("attack",true);
}
}
void OnTriggerStay(Collider col)
{
if (col.tag == "Enemy"&& !col.GetComponent<Enemy_AI>().isDead) {
health = health - 0.1f;
healthbar.value = health;
if (health < 0f )
{
print ("you died");
GameOverScreen.SetActive(true);
}
}
}
void OnTriggerExit(Collider col)
{
if (col.tag == "Enemy") {
Zombieanim.SetBool ("attack",false);
}
}
}
FPS SHOOTER (Raycast Shoot Script)
using UnityEngine;
using System.Collections;
public class RaycastShootComplete : MonoBehaviour {
public int gunDamage = 1;
public float fireRate = 0.25f;
public float weaponRange = 50f;
public float hitForce = 100f;
public Transform gunEnd;
public GameObject Particle;
public GameObject zombie;
public Animator zombieAnimator;
public EnemyGenerator enemyGenerator;
private Camera fpsCam;
private WaitForSeconds shotDuration = new WaitForSeconds(0.07f);
private AudioSource gunAudio;
private LineRenderer laserLine;
private float nextFire;
private Animator anim;
void Start ()
{
anim = GetComponent<Animator> ();
// Get and store a reference to our LineRenderer component
laserLine = GetComponent<LineRenderer>();
// Get and store a reference to our AudioSource component
gunAudio = GetComponent<AudioSource>();
// Get and store a reference to our Camera by searching this GameObject and its parents
fpsCam = GetComponentInParent<Camera>();
}
private IEnumerator ShotEffect()
{
// Gun.getInstance.PlayAnim ();
// this.gameObject.GetComponentInParent<Rigidbody>() .AddForce (new Vector3 (-50f, 0, 0), ForceMode.Impulse);
GameObject particle = Instantiate (Particle, gunEnd.transform.position, Particle.transform.rotation);
Destroy (particle, 0.5f);
// Play the shooting sound effect
gunAudio.Play ();
// Turn on our line renderer
//laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
public void Fire()
{
if ( Time.time > nextFire )
{//Input.GetButtonDown("Fire1")&& Time.time > nextFire
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
anim.SetTrigger("Shooting");
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect());
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
// Set the start position for our visual effect for our laser to the position of gunEnd
laserLine.SetPosition(0, gunEnd.position);
// Check if our raycast has hit anything
if (Physics.Raycast(rayOrigin, fpsCam.transform.forward, out hit, weaponRange))
{
// Set the end position for our laser line
laserLine.SetPosition(1, hit.point);
// Check if the object we hit has a rigidbody attached
if (hit.rigidbody != null)
{
if (hit.collider.tag == "Enemy")
{
zombieAnimator = hit.transform.gameObject.GetComponent<Animator>();
zombieAnimator.SetTrigger("Death");
zombie = hit.transform.gameObject;
zombie.GetComponent<Enemy_AI>().isDead = true;
enemyGenerator.SpawnZombie();
}
// Add force to the rigidbody we hit, in the direction from which it was hit
hit.rigidbody.AddForce(-hit.normal * hitForce);
}
}
else
{
// If we did not hit anything, set the end of the line to a position directly in front of the camera at the distance of weaponRange
laserLine.SetPosition(1, rayOrigin + (fpsCam.transform.forward * weaponRange));
}
}
}
}
using System.Collections;
public class RaycastShootComplete : MonoBehaviour {
public int gunDamage = 1;
public float fireRate = 0.25f;
public float weaponRange = 50f;
public float hitForce = 100f;
public Transform gunEnd;
public GameObject Particle;
public GameObject zombie;
public Animator zombieAnimator;
public EnemyGenerator enemyGenerator;
private Camera fpsCam;
private WaitForSeconds shotDuration = new WaitForSeconds(0.07f);
private AudioSource gunAudio;
private LineRenderer laserLine;
private float nextFire;
private Animator anim;
void Start ()
{
anim = GetComponent<Animator> ();
// Get and store a reference to our LineRenderer component
laserLine = GetComponent<LineRenderer>();
// Get and store a reference to our AudioSource component
gunAudio = GetComponent<AudioSource>();
// Get and store a reference to our Camera by searching this GameObject and its parents
fpsCam = GetComponentInParent<Camera>();
}
private IEnumerator ShotEffect()
{
// Gun.getInstance.PlayAnim ();
// this.gameObject.GetComponentInParent<Rigidbody>() .AddForce (new Vector3 (-50f, 0, 0), ForceMode.Impulse);
GameObject particle = Instantiate (Particle, gunEnd.transform.position, Particle.transform.rotation);
Destroy (particle, 0.5f);
// Play the shooting sound effect
gunAudio.Play ();
// Turn on our line renderer
//laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
public void Fire()
{
if ( Time.time > nextFire )
{//Input.GetButtonDown("Fire1")&& Time.time > nextFire
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
anim.SetTrigger("Shooting");
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect());
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
// Set the start position for our visual effect for our laser to the position of gunEnd
laserLine.SetPosition(0, gunEnd.position);
// Check if our raycast has hit anything
if (Physics.Raycast(rayOrigin, fpsCam.transform.forward, out hit, weaponRange))
{
// Set the end position for our laser line
laserLine.SetPosition(1, hit.point);
// Check if the object we hit has a rigidbody attached
if (hit.rigidbody != null)
{
if (hit.collider.tag == "Enemy")
{
zombieAnimator = hit.transform.gameObject.GetComponent<Animator>();
zombieAnimator.SetTrigger("Death");
zombie = hit.transform.gameObject;
zombie.GetComponent<Enemy_AI>().isDead = true;
enemyGenerator.SpawnZombie();
}
// Add force to the rigidbody we hit, in the direction from which it was hit
hit.rigidbody.AddForce(-hit.normal * hitForce);
}
}
else
{
// If we did not hit anything, set the end of the line to a position directly in front of the camera at the distance of weaponRange
laserLine.SetPosition(1, rayOrigin + (fpsCam.transform.forward * weaponRange));
}
}
}
}
Subscribe to:
Posts (Atom)