private void StartLandingAnimation(RoadJoint rj) { ToggleLandingAnimation(); if (rj) { Invoke("ToggleLandingAnimation", rj.landingWaitTime); if (rj.landingEffect) { (Instantiate(rj.landingEffect) as GameObject).transform.position = transform.position; } if (rj.landingCamera) { Instantiate(rj.landingCamera); } } }
// Use this for initialization void Start() { if (debugMode) { Player p = FindObjectOfType <Player>(); if (p) { RoadJoint rj = p.roadJoint; for (int i = 0; i < orderNum; i++) { rj = rj.nextJoint.GetComponent <RoadJoint>(); } p.transform.position = rj.transform.position + Vector3.up * 20; } } }
private void OnTriggerEnter(Collider collider) { try { SpecialFloor sf = collider.gameObject.GetComponent <SpecialFloor>(); sf.Execute(this); return; } catch { //print("not special floor"); } try { RoadJoint rj = collider.gameObject.GetComponent <RoadJoint>(); if (rj.landing) { StartLandingAnimation(rj); } roadJoint = rj.nextJoint.GetComponent <RoadJoint>(); UpdateRoadJointIs(); if (generateJumpEffect) { Destroy(generateJumpEffect.gameObject); generateJumpEffect = null; } if (generateCircle) { // ステータスが良ければエフェクト生成 if (generateCircle.state > 0) { } Destroy(generateCircle.gameObject); generateCircle = null; } if (roadJoint.nextJoint) { if (roadJoint.nextJoint.name.Contains("Parabola") || roadJoint.nextJoint.name.Contains("Jump")) { if (roadJoint.nextJoint.GetComponent <RoadJoint>().NotCircle == false) { generateCircle = (Instantiate(circle) as GameObject).GetComponent <Circle>(); generateCircle.player = gameObject; generateCircle.targetPosition = roadJoint.transform.position.Clone(); } } } Physics.gravity = Vector3.down * 39.2f; if (roadJointIs["Wall"]) { Physics.gravity = (Vector3.up * 1.5f + roadJoint.transform.up) / 2 * -39.2f; transform.LookAt(roadJoint.transform); } else if (roadJointIs["Parabola"]) { //演出Jump Vector3 p = new Vector3(0.0f, 0.0f, 0.0f); Vector3 p0 = new Vector3(0.0f, 0.0f, 0.0f); Vector3 p1 = new Vector3(0.0f, 0.0f, 0.0f); Vector3 p2 = new Vector3(0.0f, 0.0f, 0.0f); Vector3 p3 = new Vector3(0.0f, 0.0f, 0.0f); t = 0; rigidbody.velocity = new Vector3(0, 0, 0); // p0 = roadJoint.prevJoint.transform.position; p0 = roadJoint.prevJoint.transform.position.Clone(); p3 = roadJoint.transform.position.Clone(); Vector3 dir = p3 - p0; p1 = p0 + dir * 0.2f; p2 = p0 + dir * 0.8f; p1.y = p2.y = (p0.y > p3.y) ? p0.y + 30 : p3.y + 30; myBezier = new Bezier(p0, p1, p2, p3); //******************** サウンド処理(担当:野村) ******************** SoundSpeaker SoundDevice = GetComponent <SoundSpeaker>(); //ダッシュ床オブジェクトに内包されているSoundSpeakerスクリプトを取得する SoundDevice.PlaySE((int)(CommonSound.SE_NAME.SE_JUMP), false); //ダッシュ床用SEを再生する } if (roadJointIs["Wall"] || roadJointIs["Jump"] || roadJointIs["Parabola"]) { rigidbody.velocity = Vector3.zero; } return; } catch { roadJoint = null; //print("not road joint"); } }