Quote:var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;
var weapons : Transform;
function Update ()
{
if (Input.GetButtonDown("Fire2"))
{
weapons.animation.Play ("Punch 2");
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward),hit))
{
Distance = hit.distance;
if (Distance < MaxDistance)
{
hit.transform.SendMessage("ApplyDamage",TheDamage, SendMessageOptions.DontRequireReceiver);
}
}
}
}
var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo
if (Input.GetButtonDown("Fire2") && comboList == 0)
{
weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
comboList = 1;
//ต้องเช็คเวลากดครั้งต่อไปด้วย
}else
if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}
//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่
(02-24-2014, 12:11 AM)Author Wrote: โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง
คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ simple ก็เช็คดักต่อง่ายๆ สมมุติในโค้ด
เพิ่มตัวแปรมาดัก combo ซักตัว
Code:var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo
if (Input.GetButtonDown("Fire2") && comboList == 0)
{
weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
comboList = 1;
//ต้องเช็คเวลากดครั้งต่อไปด้วย
}else
if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}
//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่
ถ้าจะเอา Advance หน่อย แนะนำ Animation Event (กด Ctrl + 6) ครับ
มันใช้รัน Method ระหว่างเล่น Animation ได้ ดัก Combo ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ