C#

衝突判定を一瞬無くす

C#

例えばhashigoとmyCharaのレイヤーを作って それぞれのオブジェクトに振り分けてから コルーチンに下記のように書く //hashigoレイヤーの番号を変数layerHashigoに入れる int layerHashigo = LayerMask.NameToLayer("hashigo"); //マイキャラのレイヤーの番…

敵がマイキャラを等速で追いかけるスクリプト

C#

考え方 このスクリプトは敵のほうにつけるとしたら publicにマイキャラのオブジェクトを入れて マイキャラの位置を取得 マイキャラから敵の位置を引いて距離を出す その距離をnormalizedで正規化して その値を 0.01f以上は1 ー0.01f以下は-1 にして自分(敵の…

列挙

C#

inspectorで敵のタイプを指定してタイプごとに違う処理をする場合 //列挙するタイプを指定 public enum type { teki1, teki2 } //変数に列挙で指定した値を入れる public type tekiType; update関数でチェック //tekiTypeがteki2の場合 if (tekiType == type…

textの更新

C#

頭に下記モジュールをimport using UnityEngine.UI; 変数scoreに値を入れる。 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //scoreを管理 public class scoreManager : MonoBehaviour { //score…

他のスクリプトから関数を呼ぶ

C#

色んなやりかたあるけど、今作ってるゲームで使ってる使い方を書いておきます。 まず自分以外のスクリプトから呼び出してほしい関数をこんな感じで書いておく それをGameobjectにアタッチします。 public void seTeki1Damage() { print("hoge"); } そして関…

Canvasに存在するRectTransformの位置を弄る

C#

localPosition にしなくちゃいけない 例えばGameObjectをhogeで取得したら public GameObject hoge; 下記のように書く hoge.transform.localPosition = new Vector3(-319, -260, 0);

ifでそれ以外

C#

!を入れる if(!controller.isGrounded) { print("床に接していない状態") }

Colliderで衝突判定

C#

例えば弾丸を飛ばして敵に衝突判定を持たせたい場合弾丸に ColliderとRigidbodyを付けて Tagをdanganにしておく ColliderのTriggerにはチェックをいれておく。敵のColliderはTriggerにチェックを入れなくて良い 敵には下記スクリプトをアタッチ //敵に弾丸が…

Albedoの色相をスクリプトで変える

C#

UnityEngine.Color.HSVToRGB関数を使ってHSVの値を調節しています using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class hsv : MonoBehaviour { //inspectorにsliderで0~1までのfloatで表示…

瞬きをループ(コルーチンを使って指定した秒数ごとにテクスチャを切り替える)

C#

using UnityEngine; using System.Collections; public class EyeBlink : MonoBehaviour { public Texture _textureA; public Texture _textureB; public Material _mat; void Start() { //BlinkLoop_コルーチン呼び出し StartCoroutine(BlinkLoop_()); } pr…

自身の親の親のオブジェクトのComponentを入れる

C#

単純で.parent.parentというように二回「.parent」を入れるだけ //親の親のgameobjectを入れる変数 private GameObject _parent; //AnimatorComponentを入れる変数anim private Animator anim; void Start(){ //自身の親の親のgameobjectを_parentに入れる _…

使いそうなMathf関数

C#

Deg2Rad, Rad2Deg degree(度)からradian(ラジアン)の変換 float deg = 30.0f;//度 float rad = deg * Mathf.Deg2Rad;//ラジアン radian(ラジアン)からdegree(度)の変換 float rad = 10.0f;//ラジアン float deg = rad * Mathf.Rad2Deg;//度 ちなみに三角関数…

Animatorのステートがonの状態になったら何かしら実行する

using System.Collections; using System.Collections.Generic; using UnityEngine; public class state_on : MonoBehaviour { //自分のAnimatorComponentを入れる変数anim private Animator anim; void Start() { //変数animに自分のAnimatorのcomponentを…

関数の呼び出し

C#

関数の呼び出し //最初にa関数を呼び出す void Start(){ //ここの()の中は数値、文字、真偽値を入れる。何も入れなくてもよい a(99.99f); } //a関数は実数のx(ここの()の中でもらった数値を変数に代入する) void a(float x){ Debug.Log(x); } 関数に初期値…

instantiateとenabledのメリットデメリット

C#

・instantiateでそのつど出現させてる場合 メリット:Destroyするので、出現していない間はメモリに負荷がかからない デメリット:instantiateが重いので、生成時に一瞬負荷がスパークする ・enabledで表示させている場合 メリット:enabledが軽いので、負荷…

マテリアルの値をスクリプトで変える方法2 (指定したマテリアルを使用しているオブジェクト全てに反映する)

C#

変数の定義に下記のような感じで変数を作っておいてinspectorでマテリアルを設定 public Material Material_a;あとは下記のようにマテリアルにアクセスすれば良い Material_a.SetColor("_Color", new Color(1f, 0.0f, 0.0f, 1.0f));

マテリアルの値をスクリプトで変える方法_1 (マテリアルは同じだが、個別に変える方法)

C#

using System.Collections; using System.Collections.Generic; using UnityEngine; public class emission : MonoBehaviour { //オブジェクトを指定 public GameObject obj_1; //データ型Colorを入れるcolor変数 private Color color; //データ型Rendererを…

ImageEffectをSceneでonにしない方法

C#

ImageEffectのscriptで [ExecuteInEditMode] と書いてある部分を消すかコメントアウト [ExecuteInEditMode]はplayしてなくてもスクリプトが発動する 消すかコメントアウトしてからinspectorでスクリプトをon/offすればシーンに反映される

スクリプトをアクティブor非アクティブにすると呼ばれる関数

C#

アクティブにすると呼ばれる関数 void OnEnable(){ print("hoge"); } 非アクティブにすると呼ばれる関数 void OnDisable(){ print("hoge") }

コルーチン

C#

1フレーム待つ StartCoroutine ("Test"); private IEnumerator Test() { yield return null; Debug.Log ("hoge"); } 1秒待つ StartCoroutine ("Test"); private IEnumerator Test() { yield return new WaitForSeconds (1.0f); Debug.Log ("hoge"); }

Skyboxを回転する方法

C#

下記のスクリプトをカメラにアタッチする using UnityEngine; using System.Collections; public class rotateSkybox : MonoBehaviour { public float angle = 0.1f; float rotate = 0.0f; void Start(){ } void Update() { //rotateにangleを足していく rot…

アニメーションをもう一度頭から再生する

下記スクリプトのobjに適用したいオブジェクトをアタッチすると スペースキーを押すたびにアニメーションが頭から再生する using System.Collections; using System.Collections.Generic; using UnityEngine; public class restart : MonoBehaviour { //アニ…