간시유니티 10기 학습회 제3회(6/22)

1. 개요


시작:19:59
끝:1:40
참가자: 여덟, 여덟, 여덟, 안, 여덟.

2. 옆의 삽화 강좌(하나)


오늘 강좌: 겨드랑이 낫을 만들고 싶다!
방법
1. 먼저 타원 도구를 선택하여 두 개의 타원을 만든다(색상 변경 가능)



2. 좋은 느낌을 쌓기

3. 두 개 선택

4. 쉐이프를 사용하여 도구가 겹치는 부분을 잘라냅니다.



2 겨드랑이 게임에서 무기를 얻는 메커니즘을 알고 싶다!


옆의 게임.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour {

    float item1 = 1.0f;            //アイテム指定用の変数(確率)を入れる箱
    public GameObject punch;    //パンチ、キックのゲームオブジェクトを定義
    public GameObject kick;


    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {


        //キー入力がある かつ “item1”によってどのアイテムを生成するかを選択(割合操作)(Invoke)
        if (Input.GetKeyDown(KeyCode.Slash) && 1.0f <= item1 && item1 < 4.0f ){
            Invoke(punch1", 0);
        }

        if (Input.GetKeyDown(KeyCode.Slash) && 4.0f <= item1 && item1 < 10.0f ){
            Invoke(kick1, 0);
        }


        //キー入力があったら“1tem1"内の数値をランダムで変更(random)
        if (Input.GetKeyDown (KeyCode.Slash) ) {
            item1 = Random.Range (1.0f, 10.0f);
        }



    }


    //以下自分で定義したアクション
    //パンチ、キックのオブジェクトをスクリプトをつけた人の場所に生成(Instantiate)
    void punch1(){
        Instantiate (punch, transform.position, transform.rotation);
    }
    void kick1(){
        Instantiate (kick, new Vector2 (transform.position.x, transform.position.y - 0.5f), transform.rotation);
    }

}
※ 학습회에서 직접 나에게 가르침을 청했다.

3. Send Messege에서 다른 스크립트로 데미지를 주려고 했는데 잘 안 돼...


이유: SendMessege를 보내는 함수는 서로 다른 스크립트로 같은 이름으로 만들어집니다.
다음은 실패한 예를 간단히 쓰겠습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test1 : MonoBehaviour {

void Start(){

}

void Update(){

if(hit.if (hit.collider.tag == "Enemy") {
        hit.collider.SendMessage ("Damage1");
}
}
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test2 : MonoBehaviour {

void Start(){

}

void Update(){

}

void Damage1(){

//何かしらの処理

}
}


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test3 : MonoBehaviour {

void Start(){

}

void Update(){

}

void Damage1(){
//何かしらの別の処理
}
}

4. 총알은 어떻게 날아요?


싸구려 흉내만 내면 되는 거 아니야?
다음은 안미마법이 날아오르게 하는 코드입니다.

using UnityEngine;
using System.Collections;

public class Mahou1 : MonoBehaviour {

    // Mahou prefab
    public GameObject WhityBomb;

    // 発射点
    public Transform unitychan;

    // 魔法の速度
    public float speed = 100;

    RaycastHit hit;


    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        // z キーが押された時
        if (Input.GetKeyDown (KeyCode.A) ) {

            // 魔法の複製
            GameObject WhityBombs = GameObject.Instantiate (WhityBomb)as GameObject;
            //5秒後に破壊
            Destroy (WhityBombs, 5);

            Vector3 force;
            force = this.gameObject.transform.forward * speed;
            // Rigidbodyに力を加えて発射
            WhityBombs.GetComponent<Rigidbody> ().AddForce (force);
            // 魔法の位置を調整
            WhityBombs.transform.position = unitychan.position;


            Mahou ();
        }
    }

    void Mahou(){   

    Vector3 center = new Vector3 (Screen.width / 2, Screen.height / 2, 0);
        Ray ray = Camera.allCameras[0].ScreenPointToRay (center);
        float distance = 10f;
        if (Physics.Raycast (ray, out hit, distance)) {
            if (hit.collider.tag == "Enemy") {
                hit.collider.SendMessage ("Damage1");

            }
        }
    }
}
이상입니다.이번 학습회 수고하셨습니다!!
서기: 안녕히 주무세요

좋은 웹페이지 즐겨찾기