irpg Community

Full Version: อยากสอบถามเรื่องการทำ combo hit ครับ
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
คือตามหัวข้อเลยนะครับ ผมอยากทำระบบเกมให้มีคอมโบ ด้วยตอนนี้ใช้แค่ melee attack ธรรมดา

นี่คือสคริปต์ที่ผมใช้ครับ
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);
}
}
}
}


ฝากขอบคุณล่วงหน้าเลนนะครับ ConfusedConfused
คอมโบที่ว่านี่เป็นในลักษณะไหนครับ ยังไม่ค่อยเข้าใจเน้อ
โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง

คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ 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 ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ
(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 ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ

ขอบคุณมากๆเลยครับ ฮ่าๆ Blush