- Home /
Unable to see custom object in Inspector.
Hello,
I'm following this tutorial: https://www.youtube.com/watch?v=xenW67bXTgM&t=639s and I'm at the point when he makes the bullet shoot in the direction of his gun (around 18th minute). My problem is that I can't make the public field for his RotateToMouse class show in the SpawnProjectile script. I've tried using Serialized fields but didn't or I didn't use them properly. Resetting scripts after editing also didn't help, and I don't know where could be the issue.
Here is my BulletToMouse script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletToMouse : MonoBehaviour
{
public Camera dashCam;
public float maxLength;
private Ray rayMouse;
private Vector3 pos;
private Vector3 direction;
private Quaternion rotation;
// Update is called once per frame
void Update()
{
if(dashCam != null){
RaycastHit hit;
var mousePos = Input.mousePosition;
rayMouse = dashCam.ScreenPointToRay(mousePos);
if(Physics.Raycast(rayMouse.origin,rayMouse.direction,out hit, maxLength)){
RotateMouseDirection(gameObject, hit.point);
} else {
var pos = rayMouse.GetPoint(maxLength);
RotateMouseDirection(gameObject, pos);
}
}
}
void RotateMouseDirection(GameObject obj, Vector3 destination){
direction = destination - obj.transform.position;
rotation = Quaternion.LookRotation(direction);
obj.transform.localRotation = Quaternion.Lerp(obj.transform.rotation, rotation, 1);
}
public Quaternion GetRotation(){
return rotation;
}
}
And BullerSpawn script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpawnBullet : MonoBehaviour
{
public BulletToMouse bulletToMouse;
public GameObject firePoint;
public GameObject gun;
public GameObject[] vfx;
private GameObject effectToSpawn;
void Start()
{
effectToSpawn = vfx[0];
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButton(0)){
SpawnVFX();
}
}
void SpawnVFX()
{
GameObject vfx;
if(firePoint != null){
vfx = Instantiate(effectToSpawn, firePoint.transform.position, firePoint.transform.rotation);
if( bulletToMouse != null){
vfx.transform.localRotation = bulletToMouse.GetRotation();
}
}
}
}
Thanks in advance.
Sorry, you say RotateTo$$anonymous$$ouse is supposed to be on your SpawnBullet script?? Do you mean BulletTo$$anonymous$$ouse?? Because I don’t see RotateTo$$anonymous$$ouse in your script. If it is supposed to be BulletTo$$anonymous$$ouse, select the object which has SpawnBullet in the hierarchy and drag the BulletTo$$anonymous$$ouse script into the respective field which should be displayed in the inspector.
BulletTo$$anonymous$$ouse it's just my na$$anonymous$$g of RotateTo$$anonymous$$ouse. But I've figured that for some reason Unity was not updating script, like it didn't recognise I added more code. $$anonymous$$aybe it has something to do with me using Visual Studio Code. Anyway, Thank you for the response.
You always have to save in Visual Studio for changes to appear in unity
Your answer
Follow this Question
Related Questions
How to preserve array of custom objects in inspector? 0 Answers
Change bullet direction with player direction 1 Answer
making bullet go travel at angle fired and limit gun rotation in Unity C# version 5.2 2D 1 Answer
Custom Inspector when Selecting from Project Tree? 0 Answers
[2D] Object at X distance to Y direction from point 1 Answer