// Call this method once per every frame. void Update() { // スキルのフラグがオフならば if (!skillFlag) { // クリックされたら if (Input.GetMouseButtonDown(0)) { // その画像の上にマウスの座標があるなら if (col.OverlapPoint(Input.mousePosition)) { GameObject obj = GameObject.Instantiate(this.gameObject); // 自分を複製する obj.AddComponent <MoveSprite>(); // 移動用スクリプトをアタッチする obj.GetComponent <DuplicateSprite>().enabled = false; // 複製用スクリプトをオフにする obj.AddComponent <RemoveSprite>().enabled = false; // 削除用スクリプトをアタッチし、オフにする //obj.transform.SetParent(this.transform.parent); // 親を付ける obj.transform.SetParent(mainCanvas.transform); obj.transform.localScale = new Vector3(1f, 1f, 1f); SetSkillIcon.moveImage = obj; } } } // スキルのフラグがオンならば else { // クリックされたら if (Input.GetMouseButtonDown(0)) { if (scrollOnMouseCheck.GetMouseFlag()) { // その画像の上にマウスの座標があるなら if (col.OverlapPoint(Input.mousePosition)) { // スキルのIDを取得する int skillID = transform.parent.GetComponent <OverLapPoint>().SkillCanvas.GetComponent <SkillText>().SkillID; // スキルのレベルが0以下ならば if (SkillControl.GetSkill(skillID).level <= 0) { return; } GameObject obj = GameObject.Instantiate(this.gameObject); // 自分を複製する obj.AddComponent <MoveSprite>(); // 移動用スクリプトをアタッチする obj.GetComponent <DuplicateSprite>().enabled = false; // 複製用スクリプトをオフにする obj.AddComponent <RemoveSprite>().enabled = false; // 削除用スクリプトをアタッチし、オフにする //obj.transform.SetParent(this.transform.parent); // 親を付ける obj.transform.SetParent(mainCanvas.transform); // 親を付ける obj.GetComponent <UseSkill>().skillID = skillID; obj.transform.localScale = new Vector3(1f, 1f, 1f); SetSkillIcon.moveImage = obj; } } } } }
void Update() { // ☆毎フレームこのスクリプト分GetComponentは重い処理、一度設定して使いまわすが吉 // ScrollOnMouseCheck a = gameObject.transform.parent.parent.parent.gameObject.GetComponent<ScrollOnMouseCheck>(); // ☆この順番で処理を行うよりは最初に大きい方の当り判定を取り、次に細かい方の当り判定を取るのが正解 // if (boxCol.OverlapPoint(Input.mousePosition) && scrollOnMouseCheck.GetMouseFlag()) // スクロールする位置にマウスカーソルが存在するかどうか if (scrollOnMouseCheck.GetMouseFlag()) { // スキル画像の上にマウスカーソルが存在するかどうか if (boxCol.OverlapPoint(Input.mousePosition)) { // オブジェクト存在しない時 if (!objectInstance) { // オブジェクトのインスタンスを作成する objectInstance = GameObject.Instantiate(SkillCanvas); } // ☆探す処理は重い処理、変数化したものを呼び出した方が遥かに効率的 // テクスチャー?(テクスチャ―ってなに?)を非表示 // transform.Find("dummy").GetComponent<Image>().enabled = false; // 暗くするイメージ画像を非表示にする blackSprite.enabled = false; } // スキル画像の上にマウスカーソルが存在しない場合 else { // オブジェクトのインスタンスが存在するならば if (objectInstance) { // オブジェクトを破壊する GameObject.Destroy(objectInstance); // ☆重い処理 // テクスチャー(テクスチャ―ってなに?)を表示 // transform.Find("dummy").GetComponent<Image>().enabled = true; // 暗くするイメージ画像を表示する blackSprite.enabled = true; } } } // スクロール画像の上にマウスカーソルが無ければ else { // オブジェクトのインスタンスが存在するならば if (objectInstance) { // オブジェクトを破壊する GameObject.Destroy(objectInstance); // ☆重い処理 // テクスチャー(テクスチャ―ってなに?)を表示 // transform.Find("dummy").GetComponent<Image>().enabled = true; // 暗くするイメージ画像を表示する blackSprite.enabled = true; } } }