重要なお知らせ:誠に勝手ながら当サイト(unityroom質問掲示板)は2021年10月31日をもちまして閉鎖させていただきます。ご利用誠にありがとうございました。

unityroom.com については引き続きご利用いただけます。

0 支持
27 閲覧

自分はオブジェクトに貼った画像を内側から見るということを目標にしています。そのため、「Nature/Tree Soft Occlusion Leaves」というシェーダーにしているのですが、光の陰影があるため、こちらのサイト(https://techacademy.jp/magazine/15964)の「Custom/SampleShader2」を使用させてもらっています。

問題点は、Shader.Find()の部分を「Nature~」から「Custom/SampleShader2」に変えたところ、画像の左側のようなテクスチャが反映されない結果になりました。プロジェクト設定の「常に含まれるシェーダー」は変更済みです。また、下記のスクリプトはこちらのサイト(https://qiita.com/yukienko/items/e4108aad3806ab40bf95)から引用させてもらっています。

回答よろしくお願いします。

using System.Collections;

using UnityEngine;
using UnityEngine.Networking;

public class Cube : MonoBehaviour
{

//画像リンクから画像をテクスチャにする
public Texture texture;
//テクスチャをマテリアル化するので生成しておく
public Material material;

public Renderer m_Renderer;

public Shader shader;
//画像リンク
string url = "https://touhoucannonball.com/assets/img/character/img_008.jpg";

void Start()
{

    m_Renderer = GetComponent<Renderer>();

    //先にマテリアルのシェーダを変更しておく
    string s = "Nature/Tree Soft Occlusion Leaves";
    m_Renderer.material.shader = Shader.Find(s);
    StartCoroutine(Connect());
}

//テクスチャを読み込む
private IEnumerator Connect()
{

    UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);

    yield return www.SendWebRequest();

    if (www.isNetworkError || www.isHttpError)
    {
        Debug.Log(www.error);
    }
    else
    {
        //textureに画像が入るよ
        texture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        //textureをマテリアルにセット
        m_Renderer.material.SetTexture("_MainTex", texture);

        material = m_Renderer.material;
    }
}

}

初心者 (120 ポイント) | 27 閲覧

ログインまたはユーザー登録してから回答してください。

関連する質問

0 支持
1 回答
物理屋さん 初心者 (400 ポイント) 1/27 質問 | 191 閲覧
0 支持
1 回答
0 支持
0 回答
ポテトおもち 初心者 (120 ポイント) 1/12 質問 | 65 閲覧
0 支持
1 回答
2021-02-08 質問・回答をMarkdownで入力できるようにしました。
2020-09-03 新たなスパム対策を導入しました。

181 質問

161 回答

165 コメント

221 ユーザー