using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerControl : MonoBehaviour {
SkinnedMeshRenderer[] skin;
[SerializeField]
SkinnedMeshRenderer head;
[SerializeField]
SkinnedMeshRenderer hand;
[SerializeField]
SkinnedMeshRenderer foot;
[SerializeField]
ETCJoystick joyStick;
[SerializeField]
ETCButton attack,a3;
Animator ani;
[SerializeField]
Slider slider;
CharacterController cc;
AnimatorStateInfo stateInfo;
float time,time1,time2,time3;
// Use this for initialization
void Start () {
ani=GetComponent<Animator>();
cc=GetComponent<CharacterController>();
joyStick.onMoveStart.AddListener (onMoveStart);
//joyStick.onMove.AddListener (onMove);
joyStick.onMoveEnd.AddListener (onMoveEnd);
attack.onDown.AddListener (onAttackBtnDown);
a3.onDown.AddListener (onA3BtnDown);
skin=GetComponentsInChildren<SkinnedMeshRenderer>();
foreach (var item in skin) {
item.material.color=Info.color;
}
head.sharedMesh = Info.head;
hand.sharedMesh = Info.hand;
foot.sharedMesh = Info.foot;
}
void onMoveStart()
{
ani.SetBool ("Run",true);
}
void onMove(Vector2 v2)
{
if(stateInfo.IsName("Run")){
transform.LookAt(transform.position+new Vector3(v2.x,0,v2.y));
cc.SimpleMove(transform.forward*250f*Time.deltaTime);
Vector3 currentPos=transform.position;
currentPos.x=Mathf.Clamp(currentPos.x,-10,10);
currentPos.z=Mathf.Clamp(currentPos.z,-10,10);
transform.position=currentPos;
}
}
void onMoveEnd()
{
ani.SetBool ("Run",false);
}
void onAttackBtnDown()
{
if(time>1)
{
ani.SetTrigger("Attack");
Invoke("Attacking",0.7f);
time=0;
}
}
// Update is called once per frame
private void Update () {
time += Time.deltaTime;
time1 += Time.deltaTime;
time2 += Time.deltaTime;
time3 += Time.deltaTime;
stateInfo = ani.GetCurrentAnimatorStateInfo (0);
}
void onA3BtnDown()
{
stateInfo = ani.GetCurrentAnimatorStateInfo(0);
if (stateInfo.IsName("Stand") || stateInfo.IsName("Run")) {
if (time1 > 1f)
{
ani.SetTrigger("a1");
Invoke("A1", 0.1f);
time1 = 0;
}
ani.ResetTrigger("a3");
}
if (stateInfo.IsName("a1") &&stateInfo.normalizedTime>0.5f) {
if (time2 > 1f)
{
ani.SetTrigger("a2");
Invoke("A2", 0.7f);
time2 = 0;
}
ani.ResetTrigger("a1");
}
if (stateInfo.IsName("a2")&&stateInfo.normalizedTime>0.5f) {
if (time3 > 1)
{
ani.SetTrigger("a3");
Invoke("A3", 0.5f);
time3 = 0;
}
ani.ResetTrigger("a2");
}
}
void Attacking() {
foreach (GameObject obj in EnemyManger.Instance.enemies) {
float dis = Vector3.Distance(transform.position,obj.transform.position);
if (dis <= Info.Attackdis) {
obj.GetComponent<EnemyControl>().DamagedByPlayer(10f);
}
}
}
public void Damaged(float DamagedValue) {
if (slider.value <= 0)
{
return;
}
else
{
slider.value -= DamagedValue;
if (slider.value <= 0)
{
ani.SetTrigger("Die");
Invoke("HasDied", 1f);
}
}
}
void HasDied() {
Destroy(slider);
Time.timeScale = 0;
}
void A1() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(12f);
}
}
}
void A2() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(13f);
}
}
}
void A3() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(15f);
}
}
}
private void OnTriggerEnter(Collider other)
{
Destroy(other.gameObject);
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PlayerControl : MonoBehaviour {
SkinnedMeshRenderer[] skin;
[SerializeField]
SkinnedMeshRenderer head;
[SerializeField]
SkinnedMeshRenderer hand;
[SerializeField]
SkinnedMeshRenderer foot;
[SerializeField]
ETCJoystick joyStick;
[SerializeField]
ETCButton attack,a3;
Animator ani;
[SerializeField]
Slider slider;
CharacterController cc;
AnimatorStateInfo stateInfo;
float time,time1,time2,time3;
// Use this for initialization
void Start () {
ani=GetComponent<Animator>();
cc=GetComponent<CharacterController>();
joyStick.onMoveStart.AddListener (onMoveStart);
//joyStick.onMove.AddListener (onMove);
joyStick.onMoveEnd.AddListener (onMoveEnd);
attack.onDown.AddListener (onAttackBtnDown);
a3.onDown.AddListener (onA3BtnDown);
skin=GetComponentsInChildren<SkinnedMeshRenderer>();
foreach (var item in skin) {
item.material.color=Info.color;
}
head.sharedMesh = Info.head;
hand.sharedMesh = Info.hand;
foot.sharedMesh = Info.foot;
}
void onMoveStart()
{
ani.SetBool ("Run",true);
}
void onMove(Vector2 v2)
{
if(stateInfo.IsName("Run")){
transform.LookAt(transform.position+new Vector3(v2.x,0,v2.y));
cc.SimpleMove(transform.forward*250f*Time.deltaTime);
Vector3 currentPos=transform.position;
currentPos.x=Mathf.Clamp(currentPos.x,-10,10);
currentPos.z=Mathf.Clamp(currentPos.z,-10,10);
transform.position=currentPos;
}
}
void onMoveEnd()
{
ani.SetBool ("Run",false);
}
void onAttackBtnDown()
{
if(time>1)
{
ani.SetTrigger("Attack");
Invoke("Attacking",0.7f);
time=0;
}
}
// Update is called once per frame
private void Update () {
time += Time.deltaTime;
time1 += Time.deltaTime;
time2 += Time.deltaTime;
time3 += Time.deltaTime;
stateInfo = ani.GetCurrentAnimatorStateInfo (0);
}
void onA3BtnDown()
{
stateInfo = ani.GetCurrentAnimatorStateInfo(0);
if (stateInfo.IsName("Stand") || stateInfo.IsName("Run")) {
if (time1 > 1f)
{
ani.SetTrigger("a1");
Invoke("A1", 0.1f);
time1 = 0;
}
ani.ResetTrigger("a3");
}
if (stateInfo.IsName("a1") &&stateInfo.normalizedTime>0.5f) {
if (time2 > 1f)
{
ani.SetTrigger("a2");
Invoke("A2", 0.7f);
time2 = 0;
}
ani.ResetTrigger("a1");
}
if (stateInfo.IsName("a2")&&stateInfo.normalizedTime>0.5f) {
if (time3 > 1)
{
ani.SetTrigger("a3");
Invoke("A3", 0.5f);
time3 = 0;
}
ani.ResetTrigger("a2");
}
}
void Attacking() {
foreach (GameObject obj in EnemyManger.Instance.enemies) {
float dis = Vector3.Distance(transform.position,obj.transform.position);
if (dis <= Info.Attackdis) {
obj.GetComponent<EnemyControl>().DamagedByPlayer(10f);
}
}
}
public void Damaged(float DamagedValue) {
if (slider.value <= 0)
{
return;
}
else
{
slider.value -= DamagedValue;
if (slider.value <= 0)
{
ani.SetTrigger("Die");
Invoke("HasDied", 1f);
}
}
}
void HasDied() {
Destroy(slider);
Time.timeScale = 0;
}
void A1() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(12f);
}
}
}
void A2() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(13f);
}
}
}
void A3() {
foreach (GameObject obj in EnemyManger.Instance.enemies)
{
float dis = Vector3.Distance(transform.position, obj.transform.position);
if (dis <= Info.Attackdis)
{
obj.GetComponent<EnemyControl>().DamagedByPlayer(15f);
}
}
}
private void OnTriggerEnter(Collider other)
{
Destroy(other.gameObject);
}
}